Java での HTML から PDF への変換
Contents
[
Hide
]
Aspose.PDF for Java は、ローカルの HTML ファイル、アーカイブされた MHTML コンテンツ、ライブ Web ページを PDF ドキュメントに変換できます。変換パイプラインは、HtmlLoadOptions および MhtLoadOptions を使用して制御でき、レイアウトのスケーリング、CSS メディアの処理、ページルールの優先度、フォントの埋め込み、リソースの解決、単一ページのレンダリング動作に影響を与えます。
HTML から PDF への変換
ローカルの HTML ファイルを直接 PDF 文書に変換する必要がある場合は、この例を使用してください。
HtmlLoadOptionsインスタンスを作成し、インポート中に HTML ソースがどのように解釈されるかを構成してください。HtmlPageLayoutOptionをScaleToPageWidthに設定し、幅の広い HTML コンテンツが切り取られるのではなく、対象の PDF ページ幅に合わせてスケーリングされるようにしてください。- 構成したロードオプションとパスを
Documentのコンストラクタに渡して、ソース HTML ファイルを開いてください。 - 生成された
Documentを、対象の出力パスに PDF ファイルとして保存してください。
public static void convertHtmlToPdf(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
メディアタイプオプションを使用した HTML から PDF への変換
HTML 変換中に CSS メディアタイプの処理を制御する必要がある場合は、この例を使用してください。
HtmlLoadOptionsインスタンスを作成し、変換設定を行ってください。HtmlMediaTypeをScreenに設定し、HTML を画面表示用の CSS ルールでレンダリングするようにしてください。- 変換中にメディアクエリ依存のスタイルが適用されるよう、設定されたロードオプションで HTML ファイルを開いてください。
- 結果を
Documentとして PDF ファイルに保存してください。
public static void convertHtmlToPdfMediaType(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setHtmlMediaType(HtmlMediaType.Screen);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
CSS ページルールの優先順位を考慮して HTML の PDF への変換
CSS の @page ルールが最終的な PDF ページレイアウトに影響を与える必要がある場合は、この例をご利用ください。
- HTML ファイルを開く前に、
HtmlLoadOptionsインスタンスを作成してください。 - その他のレイアウト設定を CSS の
@page宣言より優先させる場合は、setPriorityCssPageRule(false)を設定してください。 - 構成されたオプションを使用して、HTML コンテンツを
Documentにロードし、インポート中にページレイアウトが解決されるようにしてください。 - 生成された PDF ファイルを保存してください。
public static void convertHtmlToPdfPriorityCssPageRule(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPriorityCssPageRule(false);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
HTML の埋め込みフォントで PDF への変換
出力 PDF に HTML フォントを埋め込んで保持する必要がある場合は、この例を使用してください。
- HTML インポート構成用に
HtmlLoadOptionsインスタンスを作成してください。 setEmbedFonts(true)を有効にしてください。これにより、HTML のレンダリング中に解決されたフォントが、出力 PDF に保存されます。- これらの読み込みオプションを使用して HTML ソースを開いてください。これにより、最終文書で元のタイポグラフィを利用可能に保つことができます。
Documentを、埋め込まれたフォントリソースを含む PDF として保存してください。
public static void convertHtmlToPdfEmbedFonts(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setEmbedFonts(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
単一の PDF ページへの HTML コンテンツのレンダリング
長い HTML コンテンツを複数ページにまたがらず、1 ページの PDF に収める必要がある場合は、この例を使用してください。
HtmlLoadOptionsインスタンスを作成し、変換設定を行ってください。setRenderToSinglePage(true)を有効にしてください。これにより、インポートされた HTML が複数のページに分割されるのではなく、1 つの PDF ページにレイアウトされます。- 構成された読み込みオプションでソース HTML を開き、Aspose.PDF に
Document内でページレイアウトを構築させてください。 - 出力 PDF ファイルを保存してください。
public static void convertHtmlToPdfRenderContentToSamePage(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setRenderToSinglePage(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
インライン SVG を含む HTML の変換
HTML ソースにインライン SVG データが含まれ、PDF にレンダリングする必要がある場合は、この例を使用してください。
- 変換時に関連リソースを一貫して解決できるように、HTML ファイルの親ディレクトリをベースパスとして指定した
HtmlLoadOptionsインスタンスを作成してください。 - インライン SVG マークアップを含む HTML ファイルを、ソースパスとロードオプションを
Documentコンストラクタに渡して開いてください。 - Aspose.PDF が HTML DOM と埋め込まれた SVG 要素を PDF ページのコンテンツにレンダリングできるようにしてください。
- 生成された PDF ドキュメントを保存してください。
public static void convertHtmlToPdfWithSvgData(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(inputFile.getParent().toString());
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
ウェブページの PDF への変換
ライブのウェブ URL を PDF ドキュメントとしてレンダリングし、保存する場合はこの例を使用してください。
- スタイルシートや画像などの相対リソースを対象 URL に対して解決できるように、その URL を指定した
HtmlLoadOptionsインスタンスを作成してください。 - URL 文字列を
URLオブジェクトに変換し、その入力ストリームを開いてライブ HTML コンテンツを取得してください。 - ダウンロードしたページを正しいベース URL で処理できるように、レスポンスストリームと設定済みの読み込みオプションから
Documentを作成してください。 - レンダリングされたウェブページを PDF ファイルとして保存し、try-with-resources を使用してストリームリソースを自動的に閉じてください。
public static void convertWebPageToPdf(String urlString, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(urlString);
try {
URL url = URI.create(urlString).toURL();
try (InputStream inputStream = url.openStream()) {
try (Document document = new Document(inputStream, loadOptions)) {
document.save(outputFile.toString());
}
}
System.out.println(url + " converted into " + outputFile);
} catch (Exception e) {
e.printStackTrace();
}
}
MHTML を PDF に変換
アーカイブされた MHTML ファイルを PDF ドキュメントに変換する必要がある場合は、この例を使用してください。
MhtLoadOptionsのインスタンスを作成し、Aspose.PDF にソースを MIME HTML コンテンツとしてロードさせるように指定してください。.mhtまたは.mhtmlファイルのパスと MHTML のロードオプションをDocumentのコンストラクタに渡して、ファイルを開いてください。- Aspose.PDF にアーカイブされた HTML コンテンツとその埋め込まれたリソースを PDF ドキュメントモデルに解析させてください。
- 生成された PDF ファイルを保存してください。
public static void convertMhtmlToPdf(Path inputFile, Path outputFile) {
MhtLoadOptions loadOptions = new MhtLoadOptions();
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}