未定义带有JavaEE方法PdfCopy addDocument的iTextpdf 5.5.8

未定义带有JavaEE方法PdfCopy addDocument的iTextpdf 5.5.8,java,jakarta-ee,itextpdf,Java,Jakarta Ee,Itextpdf,我正在尝试用pdfcopy创建一个pdf,它由一张卡片的两面组成。 我正在和Jetty合作。但我一直在犯这样的错误: [ERROR] The method addDocument(PdfReader) is undefined for the type PdfCopy 我的代码: import com.itextpdf.text.pdf.PdfCopy; public static File exportCards(Person p) throws IOException, Document

我正在尝试用pdfcopy创建一个pdf,它由一张卡片的两面组成。 我正在和Jetty合作。但我一直在犯这样的错误:

[ERROR] The method addDocument(PdfReader) is undefined for the type PdfCopy
我的代码:

import com.itextpdf.text.pdf.PdfCopy;

public static File exportCards(Person p) throws IOException, DocumentException {   

    Document document = new Document();
    File temp = File.createTempFile("temp_file_name_", ".tmp");

    PdfCopy copy = new PdfSmartCopy(document, new FileOutputStream(temp));
    document.open();


    PdfReader reader;
    PdfReader reader_2;
    reader = new PdfReader("FrontStatic.pdf");
    reader_2 = new PdfReader("BackStatic.pdf");
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(temp+"_f"));
    PdfStamper stamper_2 = new PdfStamper(reader_2, new FileOutputStream(temp+"_r"));

    AcroFields form = stamper.getAcroFields();
    AcroFields form_2 = stamper_2.getAcroFields();
    form.removeXfa();

    //Recto
    form.setField("form1[0].#subform[0].firstname[0]", p.getFirstName());
    form.setField("form1[0].#subform[0].lastname[0]", p.getLastName());        

    //Verso
    form_2.setField("form1[0].#subform[0].number[0]", String.valueOf(p.getIdentityID()));

    copy.addDocument(reader);
    copy.addDocument(reader_2);

    stamper.close();
    stamper_2.close();
    reader.close();
    reader_2.close();

    //copy.close();
    //document.close();

    return temp;
我在一个新程序上运行相同的代码,只测试这一部分,而不测试其他部分,并且它正在运行,至少我得到了带有数据的2 temp文件“Stamp”。我没有得到合并的文档。 即使我在获取最终文档的方法上仍然存在问题,但只有de服务器Web程序才会出现错误

有人有主意吗


谢谢您的时间。

您的代码不符合逻辑规则。请扔掉它,重新开始。我没有时间给你一个更好的答案,因为我今天有不同的会议。刚才你忽略了文档,你写的代码永远无法工作。我也不理解代码。你说你想创建一个PDF,然后创建三个。你没有提到任何表格,但开始填写一些表格。因此,请调整您的问题,使您对所需内容的描述与代码在某种程度上匹配。哦,对不起。我在编程方面比较新。但我找到了一种合并PDF的方法。但这里的目标是打印卡片的两面(比如身份证)。我使用了两个现有的pdf文件(正面和背面)。我在AcrobatLiveCycle上创建的pdf文件中填充了字段,然后用我的“Person”数据“戳”这些字段。也许我不太了解Stamper是如何工作的。我为“自动擦除”创建了临时文件,而不关心所使用的操作系统,只需通过StreamContent将PDFcopy.add()的结果发送给用户。正如你所看到的,英语不是我的母语。