2016-04-09 1 views
3

У меня есть следующая титульная страница. Мне нужно добавить значения для Лицензиат, введите и заполните поле с другим текстом. Как это можно сделать с помощью iText. Любая помощь приветствуется. enter image description hereiText Добавить значения в заполнители на титульной странице PDF динамически

ответ

5

Сначала вам нужно создать форму, которая будет действовать как шаблон для всего вашего документа лицензии. Раздел 5.3.5 из Chapter 6 of "iText in Action" (раздел, который можно скачать бесплатно) объясняет, как создать такую ​​форму с помощью OpenOffice, но есть много альтернативных способов сделать это. Я создал такую ​​форму с помощью программы Adobe Acrobat: CertificateOfExcellence.pdf

enter image description here

Я обратил внимание на поля, так что вы можете увидеть, где я добавил их. Есть четыре:

  • курс: название курса в 14pt Helvetica, с центром выравнивания
  • Имя: имя студента в Helvetica, выравнивание по левому краю
  • Дата: дата курса в Helvetica, выравнивание влево
  • описание курса: имя студента в Helvetica, выравнивание по левому краю с многострочным флагом.

Теперь я могу легко заполнить форму (см FillForm):

public void manipulatePdf(String src, String dest) throws DocumentException, IOException { 
    PdfReader reader = new PdfReader(src); 
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
    AcroFields form = stamper.getAcroFields(); 
    form.setField("course", "Copying and Pasting from StackOverflow"); 
    form.setField("name", "Some dude on StackOverflow"); 
    form.setField("date", "April 10, 2016"); 
    form.setField("description", 
     "In this course, people consistently ignore the existing documentation completely. " 
     + "They are encouraged to do no effort whatsoever, but instead post their questions " 
     + "on StackOverflow. It would be a mistake to refer to people completing this course " 
     + "as developers. A better designation for them would be copy/paste artist. " 
     + "Only in very rare cases do these people know what they are actually doing. " 
     + "Not a single student has ever learned anything substantial during this course."); 
    stamper.setFormFlattening(true); 
    stamper.close(); 
} 

Результирующий PDF выглядит следующим образом: certificate.pdf

enter image description here

Как вы можете видеть, код очень просто. Все это очень хорошо документировано для тех, кто тратит время на чтение документации. Возможно, вы также можете взглянуть на раздел под названием Interactive forms на official web site.

+0

Большое спасибо. Это было именно то, что я хотел сделать. :) –

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