Java 如何在Android中从位图图像创建PDF文件
我正在尝试将位图图像转换为PDF文件。我正在从gallery中选择图像,并希望将该图像文件转换为pdf文档。我正试图这样做,但我得到了空的PDF文件 下面是我的代码:Java 如何在Android中从位图图像创建PDF文件,java,android,Java,Android,我正在尝试将位图图像转换为PDF文件。我正在从gallery中选择图像,并希望将该图像文件转换为pdf文档。我正试图这样做,但我得到了空的PDF文件 下面是我的代码: public class Convert extends AppCompatActivity { private static final int REQ_CODE = 99; Bitmap bitmap = null; ImageView image; Button convert; @Override protected
public class Convert extends AppCompatActivity {
private static final int REQ_CODE = 99;
Bitmap bitmap = null;
ImageView image;
Button convert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_convert);
image = findViewById(R.id.image);
convert = findViewById(R.id.convert);
openGallery();
convert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// create a new document
PdfDocument document = new PdfDocument();
// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(100, 100, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
// Draw the bitmap onto the page
Canvas canvas = new Canvas();
canvas.drawBitmap(bitmap, 0f, 0f, null);
document.finishPage(page);
String path = android.os.Environment.getExternalStorageDirectory().toString();
try {
document.writeTo(new FileOutputStream(path + "/example.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
document.close();
}
});
}
private void openGallery(){
int pref = ScanConstants.OPEN_MEDIA;
Intent in = new Intent(Convert.this, ScanActivity.class);
in.putExtra(ScanConstants.OPEN_INTENT_PREFERENCE,pref);
startActivityForResult(in,REQ_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQ_CODE && resultCode == Activity.RESULT_OK){
Uri uri = data.getExtras().getParcelable(ScanConstants.SCANNED_RESULT);
try{
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),uri);
if(uri != null){
getContentResolver().delete(uri,null,null);
image.setImageBitmap(bitmap);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
我做错了什么?我想你不是在写PdfDocument.Page画布对象,所以这是你应该尝试的
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
// Draw the bitmap onto the page
Canvas canvas = page.getCanvas();
canvas.drawBitmap(bitmap, 0f, 0f, null);
document.finishPage(page);
请注意,我们更喜欢这里的技术风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,闲聊的材料和缩写的txtspk,恳求,你被困多久了,投票建议,元评论等。只需解释你的问题,并展示你已经尝试了什么,你期望什么,实际上发生了什么。pdf格式的图像非常大。我怎样才能得到pdf格式的原始图像大小。