2016-06-22 2 views
2

Я использую iText 7 в течение нескольких дней для создания pdf-файлов, к сожалению, iText 7 сильно отличается от iText 5, и документация по-прежнему очень неполна.iText 7: Как создать абзац, смешивающий разные шрифты?

Я пытаюсь построить пункт, который смешивает два шрифта или два шрифта стиля (пример: есть жирный текст в середине абзаца)

Использование IText 5 это будет сделано с помощью Куски:

Font regular = new Font(FontFamily.HELVETICA, 12); 
Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD); 
Phrase p = new Phrase("NAME: ", bold); 
p.add(new Chunk(cc_cust_dob, regular)); 
PdfPCell cell = new PdfPCell(p); 

Использование iText 7, я до сих пор не нашел способ сделать это.

Кто-нибудь пытался сделать это, используя последнюю версию iText?

Примечание: Я использую Csharp но Java также полезно

Спасибо,

Луиш Pinho

ответ

5

Пожалуйста, прочитайте документацию, более конкретно iText 7: building blocks "Chapter 1: Introducing the PdfFont class"

В этой главе вы я обнаружил, что гораздо проще переключать шрифты при использовании iText 7, потому что вы можете работать со стандартными шрифтами и размерами шрифтов, вы можете определять и повторно использовать объекты Style и т. д.

Пример:

Style normal = new Style(); 
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN); 
normal.setFont(font).setFontSize(14); 
Style code = new Style(); 
PdfFont monospace = PdfFontFactory.createFont(FontConstants.COURIER); 
code.setFont(monospace).setFontColor(Color.RED) 
    .setBackgroundColor(Color.LIGHT_GRAY); 
Paragraph p = new Paragraph(); 
p.add(new Text("The Strange Case of ").addStyle(normal)); 
p.add(new Text("Dr. Jekyll").addStyle(code)); 
p.add(new Text(" and ").addStyle(normal)); 
p.add(new Text("Mr. Hyde").addStyle(code)); 
p.add(new Text(".").addStyle(normal)); 
document.add(p); 

Сначала определим Style, что мы называем normal и использует 14 пт Times-Roman. Затем мы определяем Style, который мы называем code, и который использует 12 pt Courier в Red с серым фоном.

Затем мы составляем Paragraph с использованием Text объектов, использующих эти стили.

Обратите внимание, что вы можете цепи add() комментарии, как это сделано в следующем примере:

Text title1 = new Text("The Strange Case of ").setFontSize(12); 
Text title2 = new Text("Dr. Jekyll and Mr. Hyde").setFontSize(16); 
Text author = new Text("Robert Louis Stevenson"); 
Paragraph p = new Paragraph().setFontSize(8) 
    .add(title1).add(title2).add(" by ").add(author); 
document.add(p); 

Мы устанавливаем размер шрифта вновь созданного Paragraph до 8 пт. Этот размер шрифта будет наследоваться всеми объектами, добавленными в Paragraph, если только объекты не переопределяют этот размер по умолчанию. Это относится к title1, для которого мы определили размер шрифта 12 pt и для title2, для которого мы определили размер шрифта 16 pt. Содержимое, добавленное как String (" by "), и контент, добавленный как объект Text, для которого не был определен размер шрифта, наследует размер шрифта 8 pt от Paragraph, к которому они добавлены.

Это копия/вставка из официального учебника. Надеюсь, этого достаточно для StackOverflow, где ответы «только для ссылок» недопустимы. Это правило «нет ответа только на ссылку» не должно приводить к копированию/вставке полной главы руководства ...

+2

Привет, Бруно, спасибо за информацию. Я искал эту информацию на сайте, и я не смог ее найти, где находится точка входа на сайт? (кроме того, нажав ссылку, которую вы опубликовали) Учебное пособие на сайте указывает мне на: http: //developers.itextpdf.ком/содержание/IText-7-прыжок-старт-учебник – lpinho

Смежные вопросы