Преобразование растрового изображения в изображение iText для использования в PDF - PullRequest
0 голосов
/ 03 октября 2018

Я делаю фотографию с помощью камеры и сохраняю значение фотографии в растровом изображении.Я хотел бы использовать эту фотографию в itext для создания PDF.

Это код, который у меня есть.

Bitmap bitmap;    
public void Picture()
{
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent,0);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    bitmap=(Bitmap)data.getExtras().get("data");
    PDF();
}
public void PDF()
    {
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            Image img = Image.getInstance(bitmap);
            Document document = new Document();
            PdfWriter.getInstance(document, out);
            document.open();
            document.add(new Paragraph("Example"));
            document.close();
}

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вы должны скачать файл itextpdf-5.3.2.jar и приложить его к своему проекту.

Вы можете использовать его в качестве примера:

public class WritePdfActivity extends Activity 
{
  private static String FILE = "mnt/sdcard/FirstPdf.pdf";

  static Image image;
  static ImageView img;
  Bitmap bmp;
  static Bitmap bt;
  static byte[] bArray;

  @Override
public void onCreate(Bundle savedInstanceState) 
{   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    img=(ImageView)findViewById(R.id.imageView1);

    try 
    {
        Document document = new Document();

        PdfWriter.getInstance(document, new FileOutputStream(FILE));
        document.open();

        addImage(document);
        document.close();
    }

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

}
  private static void addImage(Document document) 
  {

    try 
    {
        image = Image.getInstance(bArray);  ///Here i set byte array..you can do bitmap to byte array and set in image...
    } 
    catch (BadElementException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch (MalformedURLException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch (IOException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     // image.scaleAbsolute(150f, 150f);
      try 
      {
        document.add(image);
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 }
 }

Вот ссылка, пожалуйста, проверьте введите описание ссылки здесь

Одна важная вещь: лучше использовать библиотеку PDFBox для преобразования изображения в PDF

0 голосов
/ 03 октября 2018
        bitmap=(Bitmap)data.getExtras().get("data");
        ByteArrayOutputStream stream3 = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream3);
        Image maimg = Image.getInstance(stream3.toByteArray());

        maimg.setAbsolutePosition(490, 745);
        maimg.scalePercent(40);
        document.add(maimg);  
...