HTML は Web ページを作成するための標準マークアップ言語であり、PDF は異なるプラットフォーム間で一貫した書式を保持しながらドキュメントを共有・保存するための広く採用されている形式です。HTML を PDF に変換することで、印刷可能なドキュメントを作成したり、Web コンテンツをオフラインで共有したり、レポートを簡単に生成したりできます。本記事では、Spire.Doc for Python を使用して、HTML ファイルや HTML 文字列を PDF に変換する方法を解説します。
Spire.Doc for Python のインストール
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Python で HTML ファイルを PDF に変換
Document.LoadFromFile() メソッドは、Doc や Docx ファイルだけでなく、HTML ファイルの読み込みにも対応しています。このメソッドを使用して HTML ファイルを読み込み、Document.SaveToFile() メソッドを使用して PDF ファイルとして保存できます。Python で HTML ファイルを PDF に変換する手順は以下のとおりです。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して HTML ファイルを読み込みます。
- Document.SaveToFile() メソッドを使用して PDF ファイルとして保存します。
- Python
from spire.doc import Document, FileFormat, XHTMLValidationType
# Document のインスタンスを作成する
doc = Document()
# HTMLファイルを読み込む
doc.LoadFromFile("Sample.html", FileFormat.Html, XHTMLValidationType.none)
# PDF形式で保存する
doc.SaveToFile("output/HTMLToPDF.pdf", FileFormat.PDF)
doc.Close()
Python で HTML 文字列を PDF に変換
単純な HTML 文字列(通常はテキストとその書式)を Word ページ上にレンダリングする場合、Paragraph.AppendHTML() メソッドを使用できます。作成した Word ドキュメントは Document.SaveToFile() メソッドで PDF として保存可能です。Python で HTML 文字列を PDF に変換する手順は以下のとおりです。
- Document オブジェクトを作成します。
- Document.AddSection() メソッドを使用してセクションを追加します。
- Section.AddParagraph() メソッドを使用して段落を追加します。
- HTML 文字列を指定します。
- Paragraph.AppendHTML() メソッドを使用して段落に HTML 文字列を追加します。
- Document.SaveToFile() メソッドを使用して PDF ファイルとして保存します。
- Python
from spire.doc import Document, FileFormat
# Document のインスタンスを作成する
doc = Document()
# 文書にセクションを追加する
section = doc.AddSection()
# セクションに段落を追加する
paragraph = section.AddParagraph()
# HTML文字列を定義する
htmlString = """
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>哲学的パステル研究</title>
<style>
body {
font-family: 'Yu Gothic', Meiryo, sans-serif;
margin: 0;
padding: 0;
background: linear-gradient(135deg, #f0e6ff, #e0d6ff);
color: #4a4453;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.container {
max-width: 600px;
width: 90%;
background-color: #fff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
margin: 2rem;
padding: 2rem;
}
h1, h2 {
color: #6b5b95;
text-align: center;
margin-bottom: 1rem;
}
.section {
margin: 1.5rem 0;
padding: 1.5rem;
background: linear-gradient(135deg, #faf7ff, #f2eefc);
border-radius: 8px;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.section:hover {
transform: translateY(-5px);
box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
}
ul {
list-style-type: disc;
padding-left: 1.5rem;
}
p, li {
line-height: 1.6;
}
@media (max-width: 640px) {
.container {
padding: 1.5rem;
}
.section {
padding: 1rem;
}
}
</style>
</head>
<body>
<div class="container">
<h1>色彩形而上学研究所</h1>
<div class="section">
<h2>紫紺色の効果</h2>
<p>紫紺色は時間延長効果を持つとされています。</p>
</div>
<div class="section">
<h2>基本色相分類</h2>
<ul>
<li>アウリウム: 創造性の覚醒</li>
<li>ヴェルディト: 時間知覚の変化</li>
</ul>
</div>
</div>
</body>
</html>
"""
# HTML文字列を文書に挿入する
paragraph.AppendHTML(htmlString)
# 文書をPDF形式で保存する
doc.SaveToFile("output/HTMLStringToPDF.pdf", FileFormat.PDF)
doc.Close()
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。