کتابخانه جاوا منبع باز برای اسناد صفحه گسترده

فایل‌های Excel را در برنامه‌های جاوا از طریق API منبع باز تبدیل کنید.

Documents4J یک API جاوا منبع باز برای تبدیل مایکروسافت اکسل به فرمت های فایل دیگر است. این با واگذاری تبدیل به هر برنامه بومی که تبدیل فایل داده شده به فرمت مورد نظر را درک می کند، به دست می آید. API دو نوع پیاده سازی محلی و راه دور را ارائه می دهد. با استفاده از سند نسخه محلی را می توان در همان دستگاهی که کابل تبدیل فرمت فایل درخواستی را دارد، تبدیل کرد. با استفاده از Remote API، سندی را با استفاده از REST-API به سرور ارسال می‌کنید و سرور تبدیل درخواستی را انجام می‌دهد.

Documents4J شفاف و ساده برای استفاده است. توسعه دهندگان می توانند در حین توسعه با نسخه محلی API کار کنند و زمانی که توسعه دهندگان برنامه را در تولید منتشر می کنند، می توان از نسخه راه دور استفاده کرد.

Previous Next

شروع کار با 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();
}
}
 فارسی