1. منتجات
  2.   جدول
  3.   Java
  4.   Documents4J
 
  

مكتبة جافا مفتوحة المصدر لمستندات جداول البيانات

قم بتحويل ملفات Excel في تطبيقات Java عبر Open Source API.

Documents4J هي واجهة برمجة تطبيقات Java مفتوحة المصدر من تحويل Microsoft Excel إلى تنسيقات ملفات أخرى. يتم تحقيق ذلك من خلال تفويض التحويل إلى أي تطبيق أصلي يفهم تحويل الملف المحدد إلى التنسيق الهدف المطلوب. تقدم API نوعين من التطبيقات المحلية والبعيدة. باستخدام وثيقة الإصدار المحلي يمكن تحويلها على نفس الجهاز وهو كابل تحويل تنسيق الملف المطلوب. باستخدام Remote API ، يمكنك إرسال مستند إلى الخادم باستخدام REST-API ويقوم الخادم بإجراء التحويل المطلوب.

يتسم موقع Documents4J بالشفافية وسهولة الاستخدام. يمكن للمطورين العمل مع الإصدار المحلي من API أثناء التطوير ويمكن استخدام الإصدار البعيد عندما ينشر المطورون التطبيق على الإنتاج.

Previous Next

الشروع في Documents4J

بادئ ذي بدء ، تحتاج إلى إنشاء نسخة من documents4j على جهازك المحلي. ما عليك سوى استنساخ مستودع documents4j باستخدام git أو استنساخه مباشرة على GitHub. بمجرد استنساخ المستودع ، يمكنك بناء المشروع باستخدام Mave

قم بتثبيت Documents4J عبر GitHub


git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
            

تحويل Microsoft Excel باستخدام Java

Documents4J هي واجهة برمجة تطبيقات بطلاقة لإجراء تحويل المستندات. لا تكشف واجهة برمجة التطبيقات (API) عن أي تفاصيل تتعلق بتنفيذ محول الدعم. لإجراء تحويل المستندات ، تقدم API واجهة IConverter. باستخدام هذه الواجهة ، يمكنك تحويل تنسيق ملف Microsoft Excel إلى تنسيق الملف المطلوب. لمعرفة تنسيقات ملفات التحويل المدعومة ، يمكنك الاستعلام عن طريقة getSupportedConversion () التي ستعيد المصدر وتنسيقات الملف الهدف.

قم بتحويل ملف Excel إلى تنسيق ملف آخر عبر Java


Const WdExportFormatPDF = 17
Const MagicFormatPDF = 999
Dim arguments
Set arguments = WScript.Arguments
' Transforms a file using MS Excel into the given format.
Function ConvertFile( inputFile, outputFile, formatEnumeration )
  Dim fileSystemObject
  Dim excelApplication
  Dim excelDocument
  ' Get the running instance of MS Excel. If Excel is not running, exit the conversion.
  On Error Resume Next
  Set excelApplication = GetObject(, "Excel.Application")
  If Err <> 0 Then
    WScript.Quit -6
  End If
  On Error GoTo 0
  ' Find the source file on the file system.
  Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
  inputFile = fileSystemObject.GetAbsolutePathName(inputFile)
  ' Convert the source file only if it exists.
  If fileSystemObject.FileExists(inputFile) Then
    ' Attempt to open the source document.
    On Error Resume Next
    Set excelDocument = excelApplication.Workbooks.Open(inputFile, , True)
    If Err <> 0 Then
      WScript.Quit -2
    End If
    On Error GoTo 0
    On Error Resume Next
    If formatEnumeration = MagicFormatPDF Then
      excelDocument.ExportAsFixedFormat xlTypePDF, outputFile
    Else
      excelDocument.SaveAs outputFile, formatEnumeration
    End If
    ' Close the source document.
    excelDocument.Close False
    If Err <> 0 Then
      WScript.Quit -3
    End If
    On Error GoTo 0
    ' Signal that the conversion was successful.
    WScript.Quit 2
  Else
    ' Files does not exist, could not convert
    WScript.Quit -4
  End If
End Function
' Execute the script.
Call ConvertFile( WScript.Arguments.Unnamed.Item(0), WScript.Arguments.Unnamed.Item(1), CInt(WScript.Arguments.Unnamed.Item(2)) )

تحويل مستندات Office إلى PDF عبر Java

تضمنت مكتبة Documents4J مفتوحة المصدر العديد من الميزات المهمة لتحويل مستندات Microsoft Office مثل ملفات Word و Excel و PowerPoint إلى تنسيقات ملفات دعم أخرى مثل PDF أو الصورة وما إلى ذلك. يوضح المثال التالي مدى سهولة تحميل مبرمجي البرامج وتحويل ملف Microsoft Word Docx إلى ملف PDF ببضع سطرين فقط من التعليمات البرمجية.

قم بتحويل ملف Office Docx إلى PDF عبر مكتبة Java


public class NewMain {
    /**
     * @param args the command line arguments
     * @throws java.io.FileNotFoundException
     */
    public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException, ExecutionException {
    ByteArrayOutputStream bo = new ByteArrayOutputStream();
    InputStream in = new BufferedInputStream(new FileInputStream(System.getProperty("user.dir") + File.separator +"out.rtf"));
    IConverter converter = LocalConverter.builder()
            .baseFolder(new File(System.getProperty("user.dir") + File.separator +"test"))
            .workerPool(20, 25, 2, TimeUnit.SECONDS)
            .processTimeout(5, TimeUnit.SECONDS)
            .build();
    Future conversion = converter
            .convert(in).as(DocumentType.RTF)
            .to(bo).as(DocumentType.PDF)
            .prioritizeWith(1000) // optional
            .schedule();
    conversion.get();
    try (OutputStream outputStream = new FileOutputStream("out.pdf")) {
        bo.writeTo(outputStream);
    }
    in.close();
    bo.close();
}
}
 عربي