用另一个图像pdf框替换PDF中的图像

时间:2013-07-02 10:51:51

标签: image pdf pdfbox

如何使用其他图像pdf框替换PDF中的图像。怎么做?

我想用另一张图片更改pdf上的VisualSignature。

我得到像这样的Visual Apereance:

PDDocument doc= PDDocument.load(new FileInputStream("c:\\temp\\template.pdf")); 
File dir= new File("c:\\temp\\");

Iterator<Entry<COSObjectKey, Long>> xrefEntriesIt =
    doc.getDocument().getXrefTable().entrySet().iterator();
while( xrefEntriesIt.hasNext() ) {
    COSObject object = doc.getDocument().getObjectFromPool(
        xrefEntriesIt.next().getKey() );
    if ( object.getDictionaryObject( COSName.SUBTYPE ) == COSName.IMAGE ) {
        changeImage( object, doc);
    }
}

和更改图像的方法

private static void changeImage(COSObject obj, PDDocument doc) {

    PDXObjectImage imageInPdf =
        (PDXObjectImage) PDXObject.createXObject(
            (COSStream) obj.getObject());

    File inputFile = new File("C:\\temp\\SIGNATURE.jpg");
    PDXObjectImage newImage = new PDJpeg(
        doc, new FileInputStream(inputFile));
    imageInPdf.getCOSStream().replaceWithStream(newImage.getCOSStream());
}

我测试了。 imageInPdf是来自签名签名字段的视觉外观的拉力图像。

现在如何删除并添加签名签名字段的新视觉外观?

1 个答案:

答案 0 :(得分:3)

我刚刚添加了doc.save()。这都是