2011-11-18 298 views
6

我正在開發一個系統,我必須將一些圖像添加到現有的PDF文檔中。如何使用iText將內容添加到PDF PdfStamper

這適用於iText 5.1.3,但由於某種原因,在包含掃描圖像的PDF中,它不會添加任何圖像。

這裏的鏈接到PDF Document不能用PdfStamper

進行修改和這裏的代碼

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

回答

4

PDF頁面不需要在(0, 0)有它的左下角。它可以在座標系中的任何地方。所以A4頁面可以是(0, 0, 595, 842),但它可能是(1000, 2000, 1595, 2842)

您在(0, 0)形象定位:

img.setAbsolutePosition(0, 0); 

但這文檔的頁面被定義爲(0, 15366, 469, 15728)。圖像實際上被添加到輸出文檔,但它在頁面的可見區域之外。

您必須獲取頁面的座標以定位圖像。在循環內部執行此操作:

img.setAbsolutePosition(reader.getPageSize(i).getLeft(), reader.getPageSize(i).getBottom()); 
相關問題