私はアンドロイドアプリケーションのHTMLドキュメントをHTMLドキュメントに変換するためにiTextPdf(Android用iTextG)ライブラリを使用しています。領収書のロゴを除いてすべてがうまくいきます。私のHTMLはAndroid ItextGイメージタグはレンダリングされません
<img src="http...."></img>
は、PDFはイメージを持っていません作成したイメージのソースのHTTP URLで<img>
タグが含まれています。私のJavaアプリケーションで実行されている同じコードとhtmlは、作成されたPDFでロゴを表示しています(画像へのアクセスに問題はないことを示しています)。私はこの機能がJavaとのみ互換性があり、Androidと互換性がないのだろうかと思っていますか? 私は次の依存関係を使用して使用しています:
compile 'com.itextpdf:itextg:5.5.10'
compile 'com.itextpdf.tool:xmlworker:5.5.10'
HTMLコード:主な活動で
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="English">
<head>
<title>Title</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>
<body>
<img src="https://image.flaticon.com/teams/slug/google.jpg"></img>
<h1>Fischerstube</h1>
</body>
</html>
機能:
private void htmlToPdf(String html) throws DocumentException, IOException {
try {
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "logo.pdf");
OutputStream fileOutputStream = new FileOutputStream(file);
Document document = new Document();
document.setPageSize(new Rectangle(201,720));
PdfWriter writer = PdfWriter.getInstance(document, fileOutputStream);
document.open();
InputStream is = new ByteArrayInputStream(html.getBytes());
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
document.close();
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
そのだけ<h1>
タグをレンダリングし、FischerstubeしかしANDROIRDには画像を表示デバイス。 これに関して私を助けてくれる人は、感謝します。
iTextGとXMLWorkerのバージョンが同じである必要があります。 –
@AmedeeVanGasse:xmlworkerとitextgの両方で5.5.10とチェックして、同じ動作(画像なし)を取得しました。 この組み合わせはJavaではうまく動作していますが、Androidでは問題ありません。 –
@AmedeeVanGasse私がAndroidで使用している情報を更新したことを確認してください。 –