[英]PDF Annotations using JAVA
我一直在嘗試使用iText API和較早的Lowagie版本將注釋添加到現有的PDF中。 但是,我需要API的替代方法,因為它似乎無法滿足我們的要求。
要求是將批注放入具有以下詳細信息的現有PDF中:
使用iText,我可以添加注釋,但是我需要在A4尺寸頁面中應放置的像素中近似。 最接近的近似使用
PdfReader reader = new PdfReader(headerFilePath.concat(xmlFileName));
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(headerFilePath.concat(xmlFileNameNew)));
PdfAnnotation annotation = PdfAnnotation.createText(stamper.getWriter(), new Rectangle(0, 842, 5, 842), "some text", "some text", true, null);
annotation.setColor(Color.WHITE);
stamper.addAnnotation(annotation, 1);
reader.close();
stamper.close();
此代碼段將其放在左上角,但我不確定它是否為0mm,0mm。 而且它是黑色的,我無法指定字體。
非常感謝對此事的任何幫助。 謝謝!
您可以嘗試豐富的文本annotions描述在這里 :
annotation.put(PdfName.RC, new PdfString( "<font size=\"whatever\">" +
some text+
"</font>" ) );
myStamper.setGenerateAppearances( false );
但是我懷疑這是您所需要的。 如果添加外觀,則會在左上角獲得一個矩形圖標。 如果您將鼠標懸停在其上,則可以彈出形式閱讀注釋。 而且即使注釋文字的字體顏色為白色,也無法隱藏注釋本身的矩形圖標...
您想要一種白色字體顏色,它表示您要“傳輸”一些隱藏的信息(白色背景上的白色)。 也許在這種情況下,您可以使用以下機制(通常用於添加水印等):
String text;
int pageNumber
PdfContentByte overContent = stamper.getOverContent(pageNumber);
overContent.beginText();
overContent.setFontAndSize(yourFont, yourFontSize);
//overContent.setGrayFill(...);
overContent.showTextAligned(PdfContentByte.ALIGN_CENTER, yourText + " Center", 150, 760, 0);
overContent.endText();
更新 :要將注釋設置為不可見,請添加到您的代碼中:
annotation.setColor(Color.WHITE);
//set visibility to 0 (invisble). All values between 0...1 are possible
//so 0.5 means 50% opacity
annotation.put(PdfName.CA, new PdfNumber(0));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.