2013-09-17 3 views
0
{ 
    Document document = new Document(PageSize.A3, 32, 32, 32, 32); 
    PdfWriter.getInstance(document, response.getOutputStream()); 
    document.open(); 
    HTMLWorker htmlWorker = new HTMLWorker(document); 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "", ""); 
    Statement st=con.createStatement(); 
    ResultSet rs=st.executeQuery("Select * from test3"); 
    List arrlist = new ArrayList(); 
    while(rs.next()){ 
    String xa =rs.getString("display"); 
    if(xa.equals("1")){ 
    arrlist.add(rs.getString("question_text")); 
    } 
} 
Collections.shuffle(arrlist); 
for(int i=0;i<5;i++){ 
    String str = (String) arrlist.get(i); 
    htmlWorker.parse(new StringReader(str)); 
    htmlWorker.parse(new StringReader("<br>")); 
} 
document.close(); 
} 

Выше приведен фрагмент кода, который получает данные из базы данных и отображает на pdf. Как добавить заголовок, логотип, дату и страницу на это? Пожалуйста, если кто-нибудь может помочь Я использую itext.Добавить текст в pdf используя его текст

ответ

0

Пожалуйста, ознакомьтесь с некоторыми из page event examples. В настоящее время вы создаете экземпляр unnamed PdfWriter. Измените это в именованный экземпляр писатель и объявить событие страницы перед открытием экземпляра документа:

PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream()); 
writer.setPageEvent(new MyPageEvents()); 

MyPageEvents класс должен быть написан вами. Он должен реализовать интерфейс PdfPageEvent или, еще лучше, расширить класс PdfPageEventHelper.

Добавление заголовка, логотипа, даты, ... в заголовке осуществляется путем применения метода onEndPage(). НЕ используйте метод onStartPage(), не читая документацию !!!

Используйте эти onEndPage() examples для вдохновения.

Чтобы добавить изображение, добавить переменную-член img на вашу страницу события, и добавьте в конструкторе:

Image img = Image.getInstance(pathToImage); 
img.setAbsolutePosition(36, 806); 

Затем в методе onEndPage(), сделайте следующее:

writer.getDirectContent().addImage(img); 

Это добавит изображение в положение x = 36, y = 806 (около левого верхнего края страницы). Обратите внимание, что важно, чтобы вы не создавали новый экземпляр Image для каждой новой страницы, потому что это привело бы к раздутому файлу PDF. Создав Image в конструкторе события вашей страницы и повторно используя объект, байты изображения будут присутствовать только один раз в файле PDF.

+0

Я закончил с номером страницы и заголовком. Мне нужно знать, как разместить логотип. – user1932600

+0

Я добавлю несколько дополнительных строк в свой ответ. –

+0

Я не понимал, кто мне ответил до сегодняшнего дня. Огромное, чтобы услышать от вас, сэр. – user1932600

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