首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法仅在skia生成的pdf上使用itext7和Java语言放置图章(显示反转图章)

无法仅在skia生成的pdf上使用itext7和Java语言放置图章(显示反转图章)
EN

Stack Overflow用户
提问于 2018-07-05 13:46:49
回答 1查看 241关注 0票数 0

我不能把图章使用itext7使用Java语言只对skia生成的pdf (skia是由谷歌使用的pdf库;如果有人已经在谷歌文档->点击打印->另存为Pdf )。它的盖章不正确;如果我在pdf页面的左上角位置盖章,那么它将在左下角盖章,并显示(反转镜像)图像和(反转镜像)文本。对于所有其他pdf,它会给出正确的戳记。由skia生成的pdf似乎缺少元-data。

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 21:53:30

由于您没有共享任何代码,也没有共享任何文档,所以我使用Google docs创建了一个PDF文档,并使用我在回答Itextsharp 7 - Scaled and Centered Image as watermark问题时编写的代码在中间添加了一个水印。

结果如下所示:

正如您在文档属性中看到的,原始文档是使用Skia/PDF m67创建的;使用iText®7.1.3进行了修改。

您需要在左上角添加一个水印,因此我将代码修改为:

代码语言:javascript
运行
复制
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似乎没有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51184120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档