2011-11-18 62 views
6

Estoy desarrollando un sistema en el que tengo que agregar algunas imágenes a un documento PDF existente.Cómo agregar contenido a un PDF usando iText PdfStamper

Esto funciona muy bien con iText 5.1.3, pero por alguna razón en un PDF que contiene una imagen escaneada no agregará ninguna de las imágenes.

Aquí está el enlace a la PDF Document que no puede ser modificado con PdfStamper

y aquí está el código

PdfReader reader = new PdfReader("Registro celular_OR.pdf"); 
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("DocStamped.pdf")); 
    Image img = Image.getInstance("someImage.jpg"); 
    img.setAbsolutePosition(0, 0); 
    img.scaleAbsolute(50f, 50f); 
    PdfContentByte over = null; 

    int total = reader.getNumberOfPages() + 1; 
    for(int i = 1; i < total; i++) { 
    System.out.println("Procesando Pagina: " + i); 
    over = stamper.getOverContent(i); 
    over.addImage(img); 

    over.beginText(); 
    BaseFont bf_times = BaseFont.createFont(BaseFont.TIMES_ROMAN, "Cp1252", false); 
    over.setFontAndSize(bf_times, 8); 
    over.showTextAligned(PdfContentByte.ALIGN_CENTER, "TEXTO PRUEBA", 50, 50, 0); 
    over.endText(); 
    } 
    stamper.close(); 

Respuesta

4

página A PDF no necesita tener su esquina inferior izquierda en (0, 0). Puede estar en cualquier lugar del sistema de coordenadas. Entonces una página A4 puede ser (0, 0, 595, 842), pero bien podría ser (1000, 2000, 1595, 2842).

esté posicionando la imagen en (0, 0):

img.setAbsolutePosition(0, 0); 

Pero la página de este documento se define como (0, 15366, 469, 15728). La imagen se agrega realmente al documento de salida, pero está fuera del área visible de la página.

Debes obtener las coordenadas de la página para colocar la imagen. Dentro del ciclo, haga esto:

img.setAbsolutePosition(reader.getPageSize(i).getLeft(), reader.getPageSize(i).getBottom()); 
Cuestiones relacionadas