کتابخانه جاوا منبع باز برای اسناد صفحه گسترده
فایلهای Excel را در برنامههای جاوا از طریق API منبع باز تبدیل کنید.
Documents4J یک API جاوا منبع باز برای تبدیل مایکروسافت اکسل به فرمت های فایل دیگر است. این با واگذاری تبدیل به هر برنامه بومی که تبدیل فایل داده شده به فرمت مورد نظر را درک می کند، به دست می آید. API دو نوع پیاده سازی محلی و راه دور را ارائه می دهد. با استفاده از سند نسخه محلی را می توان در همان دستگاهی که کابل تبدیل فرمت فایل درخواستی را دارد، تبدیل کرد. با استفاده از Remote API، سندی را با استفاده از REST-API به سرور ارسال میکنید و سرور تبدیل درخواستی را انجام میدهد.
Documents4J شفاف و ساده برای استفاده است. توسعه دهندگان می توانند در حین توسعه با نسخه محلی API کار کنند و زمانی که توسعه دهندگان برنامه را در تولید منتشر می کنند، می توان از نسخه راه دور استفاده کرد.
شروع کار با Documents4J
اول از همه، باید یک کپی از document4j در دستگاه محلی خود ایجاد کنید. به سادگی مخزن document4j را با استفاده از git یا با شبیه سازی مستقیم آن در GitHub کلون کنید. هنگامی که مخزن کلون شد، می توانید پروژه را با استفاده از Mave بسازید
Documents4J را از طریق GitHub نصب کنید
git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
تبدیل مایکروسافت اکسل با استفاده از جاوا
Documents4J یک API روان برای انجام تبدیل اسناد است. API هیچ جزئیاتی از اجرای مبدل پشتیبان را نشان نمی دهد. برای انجام تبدیل سند، API رابط IConverter را ارائه می دهد. با استفاده از این رابط می توانید فرمت فایل Microsoft Excel را به فرمت فایل مورد نظر خود تبدیل کنید. برای یافتن فرمتهای فایل تبدیل پشتیبانیشده، میتوانید از متد ()getSupportedConversion که منبع و فرمتهای فایل هدف را برمیگرداند، پرس و جو کنید.
تبدیل فایل اکسل به فرمت فایل دیگر از طریق جاوا
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)) )
تبدیل اسناد آفیس به PDF از طریق جاوا
کتابخانه منبع باز Documents4J دارای چندین ویژگی مهم برای تبدیل اسناد آفیس مایکروسافت مانند فایل های Word، Excel و PowerPoint به فرمت های فایل های پشتیبانی دیگر مانند PDF یا تصویر و غیره است. مثال زیر نشان می دهد که برنامه نویسان نرم افزار به راحتی می توانند یک فایل Microsoft Word Docx را بارگیری و تبدیل کنند. به فایل PDF تنها با چند خط کد.
تبدیل فایل Office Docx به PDF از طریق کتابخانه جاوا
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();
}
}