2011-11-18 16 views
6

Varolan bir PDF Belgesine birkaç resim eklemem gereken bir Sistem geliştiriyorum.iText'i kullanarak PDF'ye İçerik ekleme PdfStamper

Bu, iText 5.1.3 ile harika çalışır ancak PDF'de taranan bir görüntü içeren herhangi bir nedenle, resimlerden hiçbirini eklemez.

İşte PdfStamper

ile değiştirilemez PDF Document bağlantısı şudur ve burada

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(); 

cevap

4

PDF sayfa (0, 0) onun sol alt köşesine olması gerekmez kod. Koordinat sisteminde herhangi bir yerde olabilir. Dolayısıyla bir A4 sayfası (0, 0, 595, 842) olabilir, ancak (1000, 2000, 1595, 2842) da olabilir.

img.setAbsolutePosition(0, 0); 

Ama bu belgenin sayfa (0, 15366, 469, 15728) olarak tanımlanır:

Sen (0, 0) de görüntüyü konumlandırma vardır. Görüntü aslında çıktı belgesine eklenmiştir, ancak sayfanın görünen alanının dışındadır.

Görüntünün konumlandırılması için sayfanın koordinatlarını almanız gerekir. Döngünün içinde şunu yapın:

img.setAbsolutePosition(reader.getPageSize(i).getLeft(), reader.getPageSize(i).getBottom()); 
İlgili konular