Java 将PDF与iText 7合并可使可打印层始终可见

Java 将PDF与iText 7合并可使可打印层始终可见,java,pdf,itext,pdf-generation,itext7,Java,Pdf,Itext,Pdf Generation,Itext7,使用iText7,我试图将各种PDF文档合并到一个PDF中,但文档中的每个可打印层最终都是永久可见的 在维护图层特性的同时,是否可以复制或合并这些文档?似乎iText触发了可打印标志,这与任何文档可视化工具中的任何“打印到PDF”选项都不一样 第一个文档的每页上始终有一个层标记为可打印,该层由以下内容生成: PdfCanvas canvas=新的PdfCanvas(第页); PdfLayer printLayer=新的PdfLayer(“打印”,pdfDocument); Canvas canv

使用iText7,我试图将各种PDF文档合并到一个PDF中,但文档中的每个可打印层最终都是永久可见的

在维护图层特性的同时,是否可以复制或合并这些文档?似乎iText触发了可打印标志,这与任何文档可视化工具中的任何“打印到PDF”选项都不一样

第一个文档的每页上始终有一个层标记为可打印,该层由以下内容生成:

PdfCanvas canvas=新的PdfCanvas(第页);
PdfLayer printLayer=新的PdfLayer(“打印”,pdfDocument);
Canvas canvasModel=新画布(Canvas,pdfDocument,page.getPageSize());
layerImprimir.setOn(假);
LayerPrimir.setOnPanel(假);
layerImprimir.setPrint(“打印”,真);
canvas.beginLayer(打印层);
段落=新段落().setWidth(lineHeight).add(someText);
canvasModel.showTextAligned(段落、XPO、YPO、页码、TextAlignment.CENTER、VerticalAlignment.MIDDLE、radAngle);
canvas.endLayer();
canvasModel.close();
之后,第一个文档与可能包含或不包含可打印层的其他PDF合并。我使用了PdfCopyPdfMerger

使用PdfCopy

Document finalDocument=新文档();
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
PdfCopy副本=新的PdfCopy(最终文件,BAS);
PDF阅读器;
finalDocument.open();
reader=新的PDF阅读器(第一个文档);
副本。添加文件(读卡器);
reader.close();
阅读器=新的PDF阅读器(第二个文档);
副本。添加文件(读卡器);
reader.close();
finalDocument.close();
使用PdfMerger

PdfDocument pdf=新的PdfDocument(新的PdfWriter(dest));
PdfMerger合并=新PdfMerger(pdf);
//从第一个文档添加页面
PdfDocument firstSourcePdf=新PdfDocument(新PDF阅读器(SRC1));
merge.merge(firstSourcePdf,1,firstSourcePdf.getNumberOfPages());
//添加第二个pdf文档中的页面
PdfDocument secondSourcePdf=新PdfDocument(新PDF阅读器(SRC2));
merge.merge(secondSourcePdf,1,secondSourcePdf.getNumberOfPages());
firstSourcePdf.close();
secondSourcePdf.close();
pdf.close();