2015-04-28 5 views
0

Я хочу добавить изображение в определенное место в файле PDF, используя iText в Android. Это заполняемая форма, и я добавил текстовое поле, которое является владельцем места для изображения, и что я хочу сделать, так это получить это текстовое поле и изображение.Добавить изображение в определенное место с помощью iText в Android

public class FormFill { 
    public static void fill(AcroFields form, Person person) throws IOException, DocumentException{ 
     form.setField("firstname", person.getFirstName()); 
     form.setField("lastname", person.getLastName()); 
     form.setField("imagetextbox", "???"); 

    } 

У меня есть Ури изображения как так

Uri imageUri = Uri.parse(person.getImagePath()); 

Любая помощь будет оценена.

+0

Там хороший пример здесь: http://stackoverflow.com/questions/8656844/how-can-i-set-an-image- to-a-pdf-field-in-existing-pdf-file –

+0

Бруно большое вам спасибо, но по какой-то причине я не могу заставить этот пример работать, я в конечном итоге использовал PdfContentByte –

ответ

1

попробуйте это. Я использовал эту функцию для добавления изображения в документ.

public void addLogo(Document document) throws DocumentException { 
    try { // Get user Settings GeneralSettings getUserSettings = 

     Rectangle rectDoc = document.getPageSize(); 
     float width = rectDoc.getWidth(); 
     float height = rectDoc.getHeight(); 
     float imageStartX = width - document.rightMargin() - 315f; 
     float imageStartY = height - document.topMargin() - 80f; 

     System.gc(); 

     InputStream ims = getAssets().open("splashscreen.jpg"); 
     Bitmap bmp = BitmapFactory.decodeStream(ims); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 

     bmp.compress(Bitmap.CompressFormat.JPEG, 50, stream); 

     byte[] byteArray = stream.toByteArray(); 
     // PdfImage img = new PdfImage(arg0, arg1, arg2) 

     // Converting byte array into image Image img = 
     Image img = Image.getInstance(byteArray); // img.scalePercent(50); 
     img.setAlignment(Image.TEXTWRAP); 
     img.scaleAbsolute(200f, 50f); 
     img.setAbsolutePosition(imageStartX, imageStartY); // Adding Image 
     document.add(img); 

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

} 
+0

Wow, это решение отлично выглядит и Мне жаль, что я не могу заставить его работать, у меня нет экземпляра документа, хотя у меня есть экземпляр Stamper. Я постараюсь посмотреть, смогу ли я заставить его работать. –

0

Я закончил добавления изображения, как так

   Image image = Image.getInstance(stream.toByteArray()); 
       PdfContentByte overContent = stamper.getOverContent(1); 
       overContent.addImage(image); 
Смежные вопросы