我不能把图章使用itext7使用Java语言只对skia生成的pdf (skia是由谷歌使用的pdf库;如果有人已经在谷歌文档->点击打印->另存为Pdf )。它的盖章不正确;如果我在pdf页面的左上角位置盖章,那么它将在左下角盖章,并显示(反转镜像)图像和(反转镜像)文本。对于所有其他pdf,它会给出正确的戳记。由skia生成的pdf似乎缺少元-data。
发布于 2018-07-05 21:53:30
由于您没有共享任何代码,也没有共享任何文档,所以我使用Google docs创建了一个PDF文档,并使用我在回答Itextsharp 7 - Scaled and Centered Image as watermark问题时编写的代码在中间添加了一个水印。
结果如下所示:
正如您在文档属性中看到的,原始文档是使用Skia/PDF m67创建的;使用iText®7.1.3进行了修改。
您需要在左上角添加一个水印,因此我将代码修改为:
public void createPdf(String src, String dest) throws IOException {
PdfDocument pdfDoc = new PdfDocument(
new PdfReader(src), new PdfWriter(dest));
Document document = new Document(pdfDoc);
PdfCanvas over;
PdfExtGState gs1 = new PdfExtGState();
gs1.setFillOpacity(0.5f);
int n = pdfDoc.getNumberOfPages();
Rectangle pagesize;
ImageData img = ImageDataFactory.create(IMG);
float iW = img.getWidth();
float iH = img.getHeight();
float x, y;
for (int i = 1; i <= n; i++)
{
PdfPage pdfPage = pdfDoc.getPage(i);
pagesize = pdfPage.getPageSize();
x = pagesize.getLeft();
y = pagesize.getTop() - iH;
over = new PdfCanvas(pdfDoc.getPage(i));
over.saveState();
over.setExtGState(gs1);
over.addImage(img, iW, 0, 0, iH, x, y);
over.restoreState();
}
document.close();
pdfDoc.close();
}
结果如下所示:
图像不是镜像的;它位于页面的左上角位置。简而言之:使用Skia/PDF m67创建的PDF似乎没有任何问题。
https://stackoverflow.com/questions/51184120
复制相似问题