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

PdfCopy中的iText mergeFields创建无效pdf

杨凌
2023-03-14
public class TestForms {

 @Test
 public void testNoForms() throws DocumentException, IOException {
     test("pdf/hello.pdf", "pdf/hello_memory.pdf");
 }

 @Test
 public void testForms() throws DocumentException, IOException {
     test("pdf/subscribe.pdf", "pdf/filled_form_1.pdf");
 }

 private void test(String first, String second) throws DocumentException, IOException {
    OutputStream out = new FileOutputStream("/tmp/out.pdf");
    InputStream stream = getClass().getClassLoader().getResourceAsStream(first);
    PdfReader reader = new PdfReader(new RandomAccessFileOrArray(
            new RandomAccessSourceFactory().createSource(stream)), null);
    InputStream stream2 = getClass().getClassLoader().getResourceAsStream(second);
    PdfReader reader2 = new PdfReader(new RandomAccessFileOrArray(
            new RandomAccessSourceFactory().createSource(stream2)), null);

    Document pdfDocument = new Document(reader.getPageSizeWithRotation(1));
    PdfCopy pdfCopy = new PdfCopy(pdfDocument, out);
    pdfCopy.setFullCompression();
    pdfCopy.setCompressionLevel(PdfStream.BEST_COMPRESSION);
    pdfCopy.setMergeFields();
    pdfDocument.open();
    pdfCopy.addDocument(reader);
    pdfCopy.addDocument(reader2);
    pdfCopy.close();
    reader.close();
    reader2.close();
 }
}
    null
    null

共有1个答案

红弘盛
2023-03-14

您对pdfcopy.setMergeFields()的使用是正确的,您的合并代码也是正确的。

您所描述的问题是由于已经蔓延到5.4.5中的bug造成的。它们应该在Rev.6152中被修复,并且这些修复将包含在下一个版本中。

谢谢你让我们注意到这一点。

 类似资料:
  • 我正在使用iText(特别是iTextSharp 4.1.6),我想通过组合现有PDF中的页面来创建一个PDF,但也要插入从图像创建的新页面。 我已经分别使用PdfCopy和PdfWriter实现了这两个部分的工作。从图像创建页面的代码如下所示: 现在,由于PdfCopy继承自PdfWriter,我想我可以使用相同的技术将这样的“图像页面”添加到我的PdfCopy对象中,但这不起作用(如果在上面的

  • 我正在使用iText4.2.1生成pdf报告。所以基本上我有一个PDF模板,它包含一个封面页,结束页和一个内容页(只包含一个图像头)。 我正在使用pdfcopy&pdfimportedpage复制我的模板,并使用pageStamp动态添加我的内容。 需要:我需要多次使用内容页:与报表中的内容页一样多。 下面是一个代码示例: -->在第2页中,我将看到我的文本1和文本2 我尝试使用相同的pdfimp

  • 我使用iText一遍又一遍地在PDF表单上盖印,并尝试将生成的单页PDF编译成一个在RAM中包含许多页的单页PDF,然后在http响应中返回它。不管我做什么,一个无效的PDF都出来了。如果我做同样的事情没有拷贝为一个单一的页面,PDF是完美的。我尝试过使用PdfSmartCopy和PdfCopy,但结果总是无效。我想我正在做的一切就像网上的例子所显示的那样,但我一定是遗漏了什么。谢谢你的建议! .

  • 我编写了一个函数,使用iText 5.5.13(使用iText教程中的说明)将文件作为附件嵌入到PDF/A-3A文档中。 如果我使用类PdfCopy附加文件,结果是一个正确的PDF文件,但它并不声称是PDF/a(也许它匹配了所有的要求,但它没有说)。

  • 我在Firestore中有一个数据库,其中有许多集合,我已经定义了读、创建、更新和删除操作的安全规则。 这是火库规则中的一个问题吗?或者有什么解决办法?

  • 我想使用iText 7对pdf文档进行数字签名。签名由仅返回PKCS1签名的外部服务创建。然后我必须创建和应用PKCS7。 iText中有一个很好的关于此场景的文档:https://kb.itextpdf.com/home/it7kb/examples/how-to-use-a-digital-signing-service-dss-such-as-globalsign-with-itext-7