谁能告诉我如何在android中使用iText API来转换已经在图库中捕获的图像并将其保存为pdf文档。需要尽快帮助。主要目标是创建 android 应用程序,从而能够从图库中获取多个图像并将其保存为 pdf 格式。
问问题
4651 次
2 回答
1
要从图库中获取图像,您必须启动 startActivityForResult 并在 onActivityResult 中,您可以将图像存储在 pdf 文件中:-
首先将画廊意图称为:-
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
然后在onActivityResult中获取位图并写入PDF
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch(requestCode){
case SELECT_PICTURE:
Uri selectedImageUri = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImageUri,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap bmp = BitmapFactory.decodeFile(picturePath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
Document document = new Document();
File f=new File(Environment.getExternalStorageDirectory(), "SimpleImages.pdf");
PdfWriter.getInstance(document,new FileOutputStream(f));
document.open();
document.add(new Paragraph("Simple Image"));
Image image = Image.getInstance(stream.toByteArray());
document.add(image);
document.close();
break;
}
}
}
希望这可以帮助..
于 2013-05-08T10:55:46.907 回答
0
由于我无法对 bakriOnFire 的答案发表评论,因此我必须针对该主题写一个答案。
谢谢你的解决方案。顺便说一句,这行代码在做什么 b.compress(Bitmap.CompressFormat.PNG, 100, stream); 什么是b?– 柴 2013 年 5 月 8 日 11:20
代码的行应该是:
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
位图正在使用 PNG 编码进行压缩并写入 ByteArrayOutputStream。这是必需的,因为 Image.getInstance() 只能处理 ByteArrays。
于 2014-05-22T07:47:22.363 回答