Imprimir numero de paginas no IText

3 respostas
E

Pessoal gostaria de saber se há um modo de imprimir numero de páginas no IText desta forma:
1 de 10; 2 de 10 e etc até 10 de 10
e quando houve apenas 1 página imprimir no rodapé “Página única”

Alguém já fez algo assim?

valeu :smiley:

3 Respostas

_

http://www.google.com/search?q=itext+page+number

Os tutoriais parecem bons:
http://itextdocs.lowagie.com/tutorial/directcontent/pageevents/index.php
http://itextdocs.lowagie.com/tutorial/rtf/features/pagenumber/index.php

E

Filipe Sabella:
http://www.google.com/search?q=itext+page+number

Os tutoriais parecem bons:
http://itextdocs.lowagie.com/tutorial/directcontent/pageevents/index.php
http://itextdocs.lowagie.com/tutorial/rtf/features/pagenumber/index.php

Hahaha vlw a intenção, mandar o google :wink:
Mas a solução que eu preciso é mais complicada, tive q criar um método e iterar as linhas somando um numero X de linhas eu adiciono uma pagina . :smiley:

A

ai brother depois de inumeras tentativas consegui colocar isso no topo da pagina tenho que agradecer meus amigos Juliana e Rodrigo Vascaino por me ajudar..

o codigo é o seguinte, vc vai criar um classe assim,

package creacorp.util;

import java.awt.Color;

import com.lowagie.text.Document;
import com.lowagie.text.ExceptionConverter;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPageEventHelper;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;

public class Paginacao extends PdfPageEventHelper {

	
	protected PdfTemplate total;     
	protected BaseFont helv;
	protected PdfContentByte cb;
	
	public void onOpenDocument(PdfWriter writer, Document document) {
		
	  total = writer.getDirectContent().createTemplate(100, 100);
	  
	  total.setBoundingBox(new Rectangle(87,26,102,26));
	  try {
	    helv = BaseFont.createFont(BaseFont.HELVETICA,     
	      BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
	  } catch (Exception e) {
	    throw new ExceptionConverter(e);
	  }
	}
	
	public void onEndPage(PdfWriter writer, Document document) {
	  cb = writer.getDirectContent();
	  cb.saveState();
	  String text = "Folha: " + writer.getPageNumber() + "/";
	  float textBase = document.top();
	  float textSize = helv.getWidthPoint(text, 8);
	  float adjust = helv.getWidthPoint("0", 80);
	  cb.beginText();
	  cb.setFontAndSize(helv, 8);
	  cb.setColorFill(new Color(0,0,0));
	  cb.setColorStroke(new Color(0,0,0));
	 
                                           
	    cb.setTextMatrix(document.right() - textSize - adjust, textBase);
	    cb.showText(text);
	    
	    cb.endText();
	    cb.addTemplate(total, document.right() - adjust , textBase);
	  
	  cb.restoreState();
	}
	
	public void onCloseDocument(PdfWriter writer, Document document) {
	  	
	  total.beginText();
	  total.setFontAndSize(helv, 8);
	  total.setTextMatrix(0,0);                                         
	  total.showText(String.valueOf(writer.getPageNumber() -1));
	  total.endText();
	}
	
	

    
}

vc vai setar o Evento dentro da classe de criacao do pdf la onde vc faz write bla bla bla

Document documento = new document........

writer.setEvent(new nomedaclasseAcima);

e GG

Att,

Alan Rodrigo.

Criado 3 de julho de 2008
Ultima resposta 4 de nov. de 2008
Respostas 3
Participantes 3