مكتبة جافا مفتوحة المصدر لمستندات جداول البيانات
قم بتحويل ملفات Excel في تطبيقات Java عبر Open Source API.
Documents4J هي واجهة برمجة تطبيقات Java مفتوحة المصدر من تحويل Microsoft Excel إلى تنسيقات ملفات أخرى. يتم تحقيق ذلك من خلال تفويض التحويل إلى أي تطبيق أصلي يفهم تحويل الملف المحدد إلى التنسيق الهدف المطلوب. تقدم API نوعين من التطبيقات المحلية والبعيدة. باستخدام وثيقة الإصدار المحلي يمكن تحويلها على نفس الجهاز وهو كابل تحويل تنسيق الملف المطلوب. باستخدام Remote API ، يمكنك إرسال مستند إلى الخادم باستخدام REST-API ويقوم الخادم بإجراء التحويل المطلوب.
يتسم موقع Documents4J بالشفافية وسهولة الاستخدام. يمكن للمطورين العمل مع الإصدار المحلي من API أثناء التطوير ويمكن استخدام الإصدار البعيد عندما ينشر المطورون التطبيق على الإنتاج.
الشروع في 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();
}
}