我正在编写一个系统,用于生成包含用户提交的注释的PDF文件。我想减小注释的大小,即每个注释的字体大小。我正在使用Java版的iTextPdf。
我的代码:
PdfAnnotation annotation = PdfAnnotation.createText(pdfStamper.getWriter(),
new Rectangle(x, valor, x+100f, valor+100f), "authors",
comentario.getComentario(), true, "Comment");
annotation.setColor(Color.ORANGE);
我可以像这样缩小字体大小吗?
annotation.setFontSize("2px");
答案 0 :(得分:0)
从API中我可以看到,我会说:不,这是不可能的。
也许您可以使用setAppearance
方法。在iText网站上有一个example,它会创建一个拥有PdfAppearance
方法的setFontAndSize
对象。
答案 1 :(得分:0)
我从未使用iTextPdf,但其API表示the PdfAnnotation
class没有setFontSize()
方法。
但是,它确实包含setDefaultAppearanceString()
method,它以a PdfContentByte
为参数。 PdfContentByte
有a setFontAndSize()
method。
答案 2 :(得分:0)
您有两种选择。
您可以设置默认字体&正如Lord Torgamus所描述的那样。
您可以使用注释的Rich Text值,您必须使用从PdfDictionary继承的方法PdfAnnotation直接访问该注释:
annotation.put(PdfName.RC, new PdfString( "<font size=\"whatever\">" +
comentario.getComentario() +
"</font>" ) );
请注意,iText无法呈现富文本字段外观(至少尚未呈现),因此您必须关闭外观生成,以便生成的PDF将要求查看者执行此操作:
myStamper.setGenerateAppearances( false );
是的,必须使用压模。
与Torg的建议相比,这可能更容易......但请注意兔子。它不适合其他人。
PS:Splash的setAppearance()
技巧会起作用,但是你必须自己画出整个东西......背景,边框和文字布局(由于ColumnText
而更加容易)