2011-11-18 31 views
6

Tôi đang phát triển một Hệ thống trong đó tôi phải thêm một số hình ảnh vào Tài liệu PDF hiện có.Cách thêm nội dung vào một tệp PDF bằng iText PdfStamper

Điều này hoạt động tuyệt vời với iText 5.1.3, nhưng vì một lý do nào đó trong tệp PDF có chứa hình ảnh được quét, nó sẽ không thêm bất kỳ hình ảnh nào.

Dưới đây là các liên kết đến các PDF Document mà không thể được sửa đổi với PdfStamper

và đây là mã

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

Trả lời

4

trang A PDF không cần phải có góc dưới bên trái của nó tại (0, 0). Nó có thể ở bất cứ đâu trong hệ tọa độ. Vì vậy, một trang A4 có thể là (0, 0, 595, 842), nhưng nó cũng có thể là (1000, 2000, 1595, 2842).

Bạn đang định vị hình ảnh ở (0, 0):

img.setAbsolutePosition(0, 0); 

Nhưng trang của tài liệu này được định nghĩa là (0, 15366, 469, 15728). Hình ảnh thực sự được thêm vào tài liệu đầu ra, nhưng nó nằm ngoài vùng hiển thị của trang.

Bạn phải nhận tọa độ của trang để định vị hình ảnh. Bên trong vòng lặp, hãy thực hiện điều này:

img.setAbsolutePosition(reader.getPageSize(i).getLeft(), reader.getPageSize(i).getBottom()); 
Các vấn đề liên quan