Как я могу изменить размер шрифта аннотации в iTextPdf? - PullRequest
1 голос
/ 17 марта 2011

Я программирую систему, которая генерирует 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");

Ответы [ 3 ]

0 голосов
/ 17 марта 2011

Я никогда не использовал iTextPdf, но его API говорит, что класс PdfAnnotation не имеет setFontSize() метода.

Однако он содержит setDefaultAppearanceString() method , который принимает a PdfContentByte в качестве аргумента.И PdfContentByte имеет a setFontAndSize() метод .

0 голосов
/ 17 марта 2011

У вас есть два варианта.

  1. Вы можете установить шрифт и размер по умолчанию, как описано лордом Торгамусом.

  2. Вы можете использовать значение расширенного текста аннотации, котороеВы должны получить прямой доступ, используя методы PdfAnnotation, унаследованные от PdfDictionary:

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

Обратите внимание, что iText не может отображать появление полей Rich Text (по крайней мере, непока), поэтому вам нужно отключить генерацию внешнего вида, чтобы полученный PDF попросил зрителя это сделать:

myStamper.setGenerateAppearances( false );

Да, придется использовать штамп.

Возможно, это просто прощепойти с предложением Торг ... но учти кролика.Это не очень хорошо сочетается с другими.

PS: трюк Splash setAppearance() сработает, но тогда вам придется рисовать все самому: фон, границы и расположение текста (чтонамного проще благодаря ColumnText).

0 голосов
/ 17 марта 2011

Из того, что я вижу в API, я бы сказал: нет, это невозможно.

Может быть, вы можете использовать метод setAppearance.На веб-сайте iText есть пример , который создает объект PdfAppearance, которому принадлежит метод setFontAndSize.

...