将PDF文件转换为位图图像

4

我正在处理PDF文件,希望能在我的PDF文件中实现页面查看器。我的想法是将PDF文件转换为BMP图像,然后使用ViewPager进行查看。但是我卡在了将PDF转换为位图上。有什么建议吗?


这个和这个可能会对你有所帮助:链接1链接2 - MAC
我建议查看这个链接https://dev59.com/p2oy5IYBdhLWcg3wCpoz。 希望能有所帮助! - Debora Martins
2个回答

0

在你的 Gradle 文件中包含依赖项

compile 'com.github.barteksc:android-pdf-viewer:2.8.1'

使用以下函数将PDF页面转换为位图图像。
private  Bitmap generateImageFromPdf(String assetFileName, int pageNumber, int width, int height) {

    PdfiumCore pdfiumCore = new PdfiumCore(mActivity);
    try {
        File f = FileUtils.fileFromAsset(mActivity, assetFileName);
        ParcelFileDescriptor fd = ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
        PdfDocument pdfDocument = pdfiumCore.newDocument(fd);
        pdfiumCore.openPage(pdfDocument, pageNumber);
        //int width = pdfiumCore.getPageWidthPoint(pdfDocument, pageNumber);
        //int height = pdfiumCore.getPageHeightPoint(pdfDocument, pageNumber);
        Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        pdfiumCore.renderPageBitmap(pdfDocument, bmp, pageNumber, 0, 0, width, height);
        //saveImage(bmp, filena);
        pdfiumCore.closeDocument(pdfDocument);

        return bmp;
    } catch(Exception e) {
        //todo with exception
    }
    return null;
}

1
不起作用兄弟,它返回空位图。 - Adnan Bashir

0

这是一种将PDF渲染为图像的方法 它需要20到25秒来将PDF文件渲染为图像 它适用于Android 10、Android 9和所有更低版本

private  void generateImageFromPdf() {

        try {
            PDDocument doc=PDDocument.load(new File(fileurl));
            PDFRenderer pdfRenderer = new PDFRenderer(doc);
            Bitmap bffim = pdfRenderer.renderImageWithDPI(0, 100, Bitmap.Config.RGB_565);
            String fileName = "image-" + 0 + ".png";

            img.setImageBitmap(bffim);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接