2012-12-07 39 views
2

在itext 2中,以下代碼運行良好,在itext 5中失敗。 沒有人有如何將圖像添加到PDF上的圖像字段的示例?可填寫形式的itext圖像字段

這是我的代碼...

public static void atsSetFieldImage(AcroFields form, PdfStamper stamper, String fieldName, Image img) 
{ 
    try 
    { 
     float[] photograph = form.getFieldPositions(fieldName); 
     Rectangle rect = new Rectangle(photograph[1] 
          , photograph[2] 
          , photograph[3] 
          , photograph[4]); 

     //Image img = Image.getInstance(imageName); 
       image1.scaleToFit(rect.getWidth(), rect.getHeight()); 
       image1.setAbsolutePosition(
            photograph[1] + (rect.getWidth() - image1.getScaledWidth())/2 
            , photograph[2] + (rect.getHeight() - image1.getScaledHeight())/2); 

     PdfContentByte cb = stamper.getOverContent((int)photograph[0]); 
         cb.addImage(image1); 

    } 
    catch(Exception e) 
    { 
     //e.printStackTrace(); 
    } 
} 

回答

1

如何將圖像添加到acroForm場:

Rectangle rect = form.getFieldPositions(fieldName)[0].position; 
int page = form.getFieldPositions(fieldName)[0].page; 
//Scale it 
image1.scaleAbsolute(rect.getWidth(), rect.getHeight()); 
//Position it 
img.setAbsolutePosition(rect.getLeft(), rect.getBottom()); 
//Add it to the correct page 
stamper.getOverContent(page).addImage(img); 
+0

而不是使用浮點值的數組,你現在得到一個FieldPosition對象給你一個矩形和一個頁碼。這比以前好多了。 –

+0

我試過這個和form.getFieldPositions錯誤,並說它需要是一個列表,我試着將它轉換爲一個列表,並且出現了更多的錯誤。 – user1884129

+0

如果它很重要,我正在使用iText 5.3.4,這是我得到的確切錯誤「表達式的類型必須是數組類型,但它解析爲列表」 – user1884129