Java 如何更改iTextPdf中批注的字体大小?

Java 如何更改iTextPdf中批注的字体大小?,java,pdf,annotations,itext,Java,Pdf,Annotations,Itext,我正在编写一个系统,生成一个包含用户提交的评论的PDF文件。我想减小注释的大小,即每个注释的字体大小。我使用的是Java版本的iTextPdf 我的代码: PdfAnnotation annotation = PdfAnnotation.createText(pdfStamper.getWriter(), new Rectangle(x, valor, x+100f, valor+100f), "authors", comentario.getComentario(), tru

我正在编写一个系统,生成一个包含用户提交的评论的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");

从API中我可以看到,我会说:不,这是不可能的


也许您可以使用setAppearance方法。iText网站上有一个创建了拥有setFontAndSize方法的PDFaAppearance对象的API。我从未使用过iTextPdf,但它的API说没有setFontSize方法


但是,它确实包含一个,作为参数。PdfContentByte有两个选项。

您有两个选项

您可以设置默认字体和大小,如Torgamus勋爵所述

您可以使用批注的富文本值,必须使用从PdfDictionary继承的方法PdfAnnotation直接访问该值:

是的,必须使用压模

也许更容易接受Torg的建议。。。但是小心兔子。它和其他人玩得不好

PS:Splash的setAppearance技巧会奏效,但是你必须自己画整个东西。。。背景、边框和文本布局由于ColumnText而变得更加简单

annotation.put(PdfName.RC, new PdfString( "<font size=\"whatever\">" + 
                                          comentario.getComentario() + 
                                          "</font>" ) );
myStamper.setGenerateAppearances( false );