簡體   English   中英

將動態 XFA 轉換為靜態 PDF

[英]Converting dynamic XFA to static PDF

要求:在移動設備上查看基於 XFA 的 PDF。
我試過的選項:

  • 由於 Adob​​e 移動閱讀器不支持 XFA,我可以將 XFA 展平為靜態 PDF。 我嘗試過,但無法使用 iText 將動態 XFA 轉換為靜態 PDF。
  • 后來我嘗試使用“Adobe PDF”作為打印服務來打印 XFA 表單。 這在手動執行時按預期工作,但在通過代碼執行時以某種方式清除表單數據。

下面是打印任務的示例代碼。 為“Adobe PDF”打印服務安裝了 Adob​​e Acrobat DC。

import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;

...
private static void writePDF(long uid, Path path) throws Exception {
        final String inFile = path.toString();
        PDDocument pdfdoc = PDDocument.load(inFile);
        PrinterJob printJob = PrinterJob.getPrinterJob();

        printJob.setPageable(new PDPageable(pdfdoc));
        // printJob.setPrintable(new PDPageable(pdfdoc));
        printJob.setPrintService(getSystemPrinter("Adobe PDF"));

        printJob.setJobName(path.getFileName().toString());
        pdfdoc.silentPrint(printJob);
    }

private static PrintService getSystemPrinter(final String printerName) {
        PrintService desiredPrinter = null;
        for (PrintService printer : PrintServiceLookup.lookupPrintServices(null, null)) {
            if (printerName.equalsIgnoreCase(printer.getName())) {
                desiredPrinter = printer;
                break;
            }
        }
        return desiredPrinter;
    }

有人請提出一種解決方法來實現所需的。 謝謝!

我使用免費的 PDF Creator 打印機解決了這個問題,該打印機配置為將文件存儲到某個目錄。 然后我創建了一個 REST API 來打印 XFA PDF 並將 PDF 1.4 返回給 API 客戶端。 它有效,但工作緩慢。 應該說結果 PDF 的質量非常好。

還嘗試通過 Ghostscript 將 Adob​​e PDF 和 Microsoft Print 打印到 PDF 打印機,但它只打印“請稍候...”頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM