I am using PdfiumAndroid. renderPageBitmap -> uses FPDF_RenderPageBitmap as native function
void openPdf(ImageView iv,String pdfName,int pageNum) {
try {
InputStream inputStream = getContext().getAssets().open(pdfName);
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = inputStream.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
byte bytes[] = output.toByteArray();
/*Uri uri = Uri.parse("file:///android_asset/landscape_full.pdf");
ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(uri, "r");*/
PdfiumCore pdfiumCore = new PdfiumCore(getContext());
PdfDocument pdfDocument = pdfiumCore.newDocument(bytes);
pdfiumCore.openPage(pdfDocument, pageNum);
int width = pdfiumCore.getPageWidthPoint(pdfDocument, pageNum)*2;
int height = pdfiumCore.getPageHeightPoint(pdfDocument, pageNum)*2;
// ARGB_8888 - best quality, high memory usage, higher possibility of OutOfMemoryError
// RGB_565 - little worse quality, twice less memory usage
Bitmap bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
pdfiumCore.renderPageBitmap(pdfDocument, bitmap, pageNum, 0, 0,
width, height);
//if you need to render annotations and form fields, you can use
//the same method above adding 'true' as last param
iv.setImageBitmap(bitmap);
//printInfo(pdfiumCore, pdfDocument);
pdfiumCore.closeDocument(pdfDocument); // important!
} catch(IOException ex) {
ex.printStackTrace();
}
}Op donderdag 21 december 2017 04:27:04 UTC+1 schreef Lei Zhang: