当前位置: 首页 > 知识库问答 >
问题:

将动态XFA转换为静态PDF

郑波
2023-03-14

要求:在移动设备上查看基于XFA的PDF。
我尝试过的选项:

  • 由于Adobe移动阅读器不支持XFA,因此我可以将XFA展平为静态PDF。我尝试过,但无法使用iText将动态XFA转换为静态PDF。
  • 后来我尝试使用“Adobe PDF”作为打印服务打印XFA表单。这在手动执行时可以正常工作,但在通过代码执行时会以某种方式清除表单数据。

下面是打印任务的示例代码。已为“Adobe PDF”打印服务安装Adobe 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;
    }

有人请建议一个解决方法来实现所需的。谢谢!

共有1个答案

车明贤
2023-03-14

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

还尝试了Adobe PDF和Microsoft通过Ghost script打印到PDF打印机,但它只打印“请稍候...”页面。

 类似资料:
  • 问题内容: 我有一个包含一堆静态文件的库,我希望从中访问它们(一个Java库,该库允许一个人从JAVA代码中动态调用`dll’),所以有办法神奇地将静态lib更改为dll吗? 代码是使用Visual Studio(相关的希望)进行编译的,我也有适当的头文件。 我无权访问源代码,我也想仅使用免费(如在啤酒中)工具进行操作。 问题答案: 我按照一个匿名人员的建议做了,我做了一个自动转换器(有人建议将_

  • 问题内容: 有没有一种方法可以自动转换此静态方法调用(): 使用以下命令进行此调用: 我知道我可以按照此答案中所述使用此配置代码完成。 我的问题是关于转换 现有的 静态方法调用。理想情况下,我不想配置“收藏夹导入”。 问题答案: 将光标放在方法名称()上,然后按。 这是“添加导入”命令的默认键盘快捷键。您也可以在“源”菜单上找到该命令。

  • 问题内容: 我有一个第三方库,主要由大量的静态()库文件组成。我可以将其编译为单个库文件,但我确实需要将其作为单个共享库文件。 有什么方法可以将静态文件转换为共享文件?或更笼统地说,是否有一种将大量静态文件和一些目标文件合并为一个文件的好方法? 问题答案: 是否这样做(当然带有适当的-L) 不是吗

  • 问题内容: 我需要知道如何将动态python对象转换为JSON。该对象必须能够具有多个级别的对象子对象。例如: 使用python 2.6的以下代码: 产生以下错误: 我不知道用户可能放入哪种子对象。是否有足够聪明的解决方案来检测属性是否是对象并自动对其进行解析? 更新 为在上包含子对象。 问题答案: 指定参数(doc):

  • 问题内容: 我已经在动态SQL中创建了一个过程,该过程具有一个select语句,并且代码如下所示: 当我使用以下语句执行此过程时: 我收到以下错误。 消息245,级别16,状态1,procedurecagroup,第33行将nvarchar值’SELECT [Gro] AS GName,’转换为数据类型int时,转换失败。 我在哪里做错了? 问题答案: 您需要在串联中将所有数字CAST转换为nva

  • 问题内容: MySQL是否可以将列转换为行,从而动态添加行所需的列数。我认为我的问题可能与数据透视表有关,但是我不确定,除了给出以下示例之外,我不知道如何构造此问题。 给定两个表A和B,它们看起来像 表A 我想编写一个如下查询: 结果表 基本上,我想将表B中的每一行变成结果表中的一列。如果有一个新条目被添加到表B中,id = 1,那么我希望结果表自动扩展一列以容纳这个额外的数据点。 问题答案: 您