当前位置: 首页 > 知识库问答 >
问题:

在应用程序中显示PDF文件

羊舌新荣
2023-03-14

我发现这两种可能性显示一个pdf文件。

>

  • 打开webView,使用:

    webview.loadURL(“https://docs.google.com/gview?embedded=true&url=”+URI);

    使用外部应用程序打开pdf文件:

    Intent Intent=新的意图(Intent.action_view);Intent.SetDataAndType(URI.FromFile(outFile),“Application/PDF”);Intent.SetFlags(Intent.Flag_Activity_NO_History);startActivity(意图);

    他们两个都工作。但我的问题是pdf仅供内部使用,在这两个示例中,用户可以下载它或保存在另一个文件夹中。

    我在iOS开发中了解这方面的框架,我正在寻找一个与Android兼容的解决方案。

  • 共有2个答案

    施俊哲
    2023-03-14

    许多库可用于在您自己的应用程序中显示PDF。

    • Android PDF查看器
    • vudroid
    • APDFViewer
    • DroidReader
    • 安卓-PDF
    • MUPDF
    • 安卓-pdfview

    有关使用android-pdfview的工作示例,请参阅这篇博文。它演示了库的基本用法,以垂直和水平滑动的方式将pdf显示到视图上。

    pdfView = (PDFView) findViewById(R.id.pdfView);
    pdfView.fromFile(new File("/storage/sdcard0/Download/pdf.pdf")).defaultPage(1).enableSwipe(true).onPageChange(this).load();
    
    越姚石
    2023-03-14

    Android现在提供了PDF API,使用它可以很容易地在应用程序内部显示PDF内容。

    您可以在这里找到详细信息

    下面是从assets文件夹中的pdf文件中呈现的示例片段。

        private void openRenderer(Context context) throws IOException {
        // In this sample, we read a PDF from the assets directory.
        File file = new File(context.getCacheDir(), FILENAME);
        if (!file.exists()) {
            // Since PdfRenderer cannot handle the compressed asset file directly, we copy it into
            // the cache directory.
            InputStream asset = context.getAssets().open(FILENAME);
            FileOutputStream output = new FileOutputStream(file);
            final byte[] buffer = new byte[1024];
            int size;
            while ((size = asset.read(buffer)) != -1) {
                output.write(buffer, 0, size);
            }
            asset.close();
            output.close();
        }
        mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
        // This is the PdfRenderer we use to render the PDF.
        if (mFileDescriptor != null) {
            mPdfRenderer = new PdfRenderer(mFileDescriptor);
        }
    }
    

    更新:此片段来自google开发人员提供的示例。

     类似资料:
    • 我一直试图显示pdf文件,我从一个响应中得到一个blob。pdf必须使用

    • 问题内容: 我想在Java swing应用程序中显示一个网页。与使用HTML时类似,但在Java Swing中。这可能吗?如果可以,怎么办? 问题答案: 使用:

    • 问题内容: 我一直在尝试显示我从响应中获取的pdf文件。pdf必须使用例如在应用程序内显示。 我遇到了几个堆栈帖子,但是以某种方式我的示例似乎不起作用。 JS: 根据这份文件,我继续尝试… 现在,据我所知,将创建一个临时URL,该博客可以用作参考。 HTML: 我不确定如何在Angular中处理此问题,理想情况是 (1) 将其分配给作用域, (2) 将blob“准备/重建”到pdf (3) 使用,

    • 我有一个由itext自动生成的PDF文件,我需要在HTML中显示该PDF文件。我的问题是:如何使用PDF.js在HTML中显示一个本地PDF文件?那个PDF文件应该按照某些标准生成吗?

    • 我使用文本5创建pdf文件。我参考 https://developers.itextpdf.com/examples/itext-action-second-edition/chapter-1 并获取pdf。当我打开它时,中文字符显示正常。 但是我开发了像 https://developers.itextpdf.com/examples/itext-action-second-edition/ch