Itextpdf在将某些图像添加到Pdf文档时会对其进行裁剪。
我使用以下https://github.com/buda-base/buda-iiif-server/blob/master/src/test/java/io/bdrc/iiif/PDFBugDemo.java和以下图片编写了演示问题(pom)的演示:(https://github.com/buda-base/buda-iiif-server/blob/master/src/test/resources/test.tif)
该演示代码使用itext7和Apache PdfBox从同一图像生成两个不同的文件。预期的输出是PdfBox产生的。 Itext7显然会裁剪原始图像。这种情况并非一直发生,我怀疑tif文件存在特定问题。
文件位于此处,用于Itext7(https://drive.google.com/open?id=16oUhSnhbW4QWiYn2aFPsKp3xA0__yd3B)和pdfBox(https://drive.google.com/open?id=1My_-EM27VARKDBgM5tMig7FkYlTWtflG)
答案 0 :(得分:0)
事实上,问题来自PDFDocument的默认边距值。感谢Tilman Hausherr,在将图像添加到doc / page之前,我能够通过以下操作解决问题:
PdfWriter writer = new PdfWriter("testPdfItext.pdf", new WriterProperties().setPdfVersion(PdfVersion.PDF_2_0));
PdfDocument pdfDocument = new PdfDocument(writer);
Document document = new Document(pdfDocument);
document.setMargins(0, 0, 0, 0);