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

ページのテキストを Webview に表示する必要があります。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 に答える