1

我们一直在尝试在不使签名无效的情况下向现有签名 PDF 添加注释/图章,但不幸的是浏览器不会显示图章/注释。在 Adob​​e Reader 中打开时,可以在那里看到注释。欢迎任何其他想法。我们想要的只是现有签名 PDF 上的一些不会使签名无效的文本。

这是我们的代码:

    PdfReader reader = new PdfReader(pdf1);
    PdfStamper pdfStamper = new PdfStamper(reader, new FileOutputStream(RESULT), '\0', true);
    PdfContentByte pcb = new PdfContentByte(pdfStamper.getWriter());
    PdfAnnotation annot = PdfAnnotation.createFreeText(pdfStamper.getWriter(),  new Rectangle(150, 150, 200, 200), "Annotation 1", pcb);
    annot.setFlags(PdfAnnotation.FLAGS_PRINT);
    pdfStamper.addAnnotation(annot, 1);
    pdfStamper.close(); 
4

1 回答 1

0
  1. 您使用增量更新模式 ('\0', true),因此(某些)添加到 PDF 文档是可能的。这是正确的方法
  2. WebBrowser 仅对某些 PDF 功能(如表单域或注释)提供有限的支持。如果您可以在 adobe reader 中看到注释,但在某些 webbrowers 中看不到注释,则这些浏览器不支持它。你有有限的选择来改变它。

您可能有的一种可能性是不将图章添加为注释,而是添加为图像。但是,如果 acrobat reader 仍然认为签名完好无损,您必须在之后进行测试。(如前所述,仅允许添加某些内容)

PdfReader reader = new PdfReader(pdf1);
    PdfStamper pdfStamper = new PdfStamper(reader, new FileOutputStream(RESULT), '\0', true);
    Image img = Image.getInstance("URL or Filename.PathToImage.png");
    //position on the page x,y
    img.setAbsolutePosition(380f, 750f);
    img.scalePercent(20);
    //1=pagenumber and you might also try getOverContent(1)
    PdfContentByte underContent = super.stamper.getUnderContent(1);
    underContent.addImage(img);        

    pdfStamper.close(); 
于 2020-06-26T06:50:26.373 回答