未定义带有JavaEE方法PdfCopy addDocument的iTextpdf 5.5.8
我正在尝试用pdfcopy创建一个pdf,它由一张卡片的两面组成。 我正在和Jetty合作。但我一直在犯这样的错误:未定义带有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
[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()的结果发送给用户。正如你所看到的,英语不是我的母语。