1

我正在尝试使用“iText”库读取 pdf 文件,并且正在使用“ getPageContent(int number) ” 获取页面

此方法返回 byte[] ,当 byte[] 加载到 WebView 时,它显示一个空视图。

try {
            PdfReader reader = new PdfReader(getAssets().open("policy.pdf"));
            int n = reader.getNumberOfPages();
            String base64 = android.util.Base64.encodeToString(
                    reader.getPageContent(1), android.util.Base64.DEFAULT);
            WebView webView = new WebView(this);

            webView.loadData(base64, "text/html", "base64");

            setContentView(webView);

        } catch (Exception e) {
            e.printStackTrace();
        }
4

1 回答 1

1

您希望页面中的文本显示在 Web 视图上。据我在 iText API 中看到的,您使用的整个方法是不正确的。

这是更正的代码(未经测试,因为我没有库许可证)

try {
    PdfReader reader = new PdfReader(getAssets().open("policy.pdf"));
    int n = reader.getNumberOfPages();


    PRTokeniser tokenizer = new PRTokeniser(reader.getPageContent(1));
    String content="";
    while (tokenizer.nextToken()) {
        if (tokenizer.getTokenType() == PRTokeniser.TokenType.STRING) {
            content = content +"\r\n<br />" + tokenizer.getStringValue();
        }
    }

    WebView webView = new WebView(this);

    webView.loadData(content, "text/html", "UTF-8");

    setContentView(webView);

} catch (Exception e) {
    e.printStackTrace();
}
于 2012-05-16T10:11:29.287 回答