質問を検索しましたが、特定の問題の解決策を見つけることができませんでした。私がする必要があるのは、画像とCSSスタイルを含むHTMLファイルをPDFに変換することです。私はiText 5を使用しており、生成されたPDFにスタイリングを含めることができました。しかし、私はまだ画像を含めて苦労しています。私は以下のコードを含んでいます。絶対パスの画像は生成されたPDFに含まれ、相対パスの画像は含まれません。私はAbstractImageProviderを実装する必要があることを知っていますが、それを行う方法はわかりません。どんな助けでも大歓迎です。iTextを使用して画像を含むHTMLをPDFに変換する
Javaファイル:
public class Converter {
static String in = "C:/Users/APPS/Desktop/Test_Html/index.htm";
static String out = "C:/Users/APPS/Desktop/index.pdf";
static String css = "C:/Users/APPS/Desktop/Test_Html/style.css";
public static void main(String[] args) {
try {
convertHtmlToPdf();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void convertHtmlToPdf() throws DocumentException, IOException {
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(out));
document.open();
XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, new FileInputStream(in), new FileInputStream(css));
document.close();
System.out.println("PDF Created!");
}
/**
* Not sure how to implement this
* @author APPS
*
*/
public class myImageProvider extends AbstractImageProvider {
@Override
public String getImageRootPath() {
// TODO Auto-generated method stub
return null;
}
}
}
Htmlのファイル:
<!DOCTYPE html>
<html lang="en">
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 5.4.2
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://wwww.someurl.com</td>
</tr>
</table>
<div class="center">
<h2>Here is an image</h2>
<div>
<img src="images/Vader_TFU.jpg" />
</div>
<div>
<img src="https://www.w3schools.com/images/picture.jpg" alt="Mountain" />
</div>
</div>
</body>
</html>
CSSファイル:
h1 {
color: #ccc;
}
table tr td {
text-align: center;
border: 1px solid gray;
padding: 4px;
}
table tr th {
background-color: #84C7FD;
color: #fff;
width: 100px;
}
.itext {
color: #84C7FD;
font-weight: bold;
}
.description {
color: gray;
}
.center {
text-align: center;
}
これは完璧に機能しました!どうもありがとうございます。 – jdubicki
@jdubicki喜んで私は手伝ってくれました。あなたがそれをアップヴォートしてそれを受け入れることができる答えがあれば忘れないでください。ありがとう – MaVRoSCy
私は助けが必要な別の問題があります。ネストされた順序付けられていないリストを読み込んでレンダリングできるようにするためにいくつかの変更を加えなければなりませんでした。私は私のヘッダータグがPDFで解析されていないことに気付きました。以下は私が作る必要がある変化です。 – jdubicki