首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将动态XFA转换为静态PDF

将动态XFA转换为静态PDF
EN

Stack Overflow用户
提问于 2016-04-08 15:18:38
回答 1查看 2.4K关注 0票数 2

需求:在移动设备上查看基于XFA的PDF。

我尝试过的选择:

  • 由于不支持XFA,所以我可以将XFA作为一个静态PDF来处理。我试过了,但是动态XFA不能使用iText转换为静态PDF。
  • 后来,我尝试使用“Adobe”作为打印服务打印XFA表单。这在手动执行时可以预期地工作,但在通过代码执行时会以某种方式清除表单数据。

下面是打印任务的示例代码。Acrobat是为“Adobe”打印服务安装的。

代码语言:javascript
运行
复制
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;
    }

有人请建议一个解决办法,以达到预期的目标。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 13:27:24

我使用免费的PDF Creator打印机解决了这个问题,该打印机被配置为将文件存储到某个目录。然后,我创建了一个REST来打印XFA PDF并将PDF1.4返回给API客户端。它起了作用,但效果很慢。应该说质量的结果PDF是非常好的。

还尝试通过Ghostscript将Adobe和Microsoft打印到PDF打印机,但它只打印“请等待.”页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36503338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档