0

我们有一个程序可以修改用于邮寄的 pdf。我们注意到docusign 信封字段和签名存在问题。当我们修改它们时,它们不会留在 pdf 上。我在pdfbox中尝试了我能想到的一切。

我发现的唯一解决方法是打印时 foxit flatten signature 和 adobe save as pdf 创建一个可以工作的扁平化 pdf。我无法将整个 pdf 呈现为图像,因为我需要以编程方式评估 pdf 文本字段。

无论如何,要使用 pdfbox 创建与 foxit 和 adobe 相同的扁平化。我好难过:(

不确定这是否有帮助,但我可以通过这种方式访问​​文档中的项目。

          PDDocument doc = PDDocument.load( myFile );

      PDPageTree allPages = doc.getDocumentCatalog().getPages();

      PDPage page1 = allPages.get(1);
      COSDictionary pageDict = page1.getCOSObject();
      COSDictionary newPageDict = new COSDictionary(pageDict);
      COSDictionary test = newPageDict.getCOSDictionary(COSName.RESOURCES);
      test = test.getCOSDictionary(COSName.XOBJECT);
      test = test.getCOSDictionary(COSName.F);
      test = test.getCOSDictionary(COSName.RESOURCES);
      test = test.getCOSDictionary(COSName.XOBJECT);

该项目存在于 COSName{X0} 中,但似乎 pdfbox 无法访问它,因此我无法将其展平。我想遍历整个文档以查找任何不可识别的 COSNames 并将其呈现为图像,因为这确实有效然后使用该图像?无论如何要这样做?

4

0 回答 0