HTML は Web ページを作成するための標準マークアップ言語であり、PDF は異なるプラットフォーム間で一貫した書式を保持しながらドキュメントを共有・保存するための広く採用されている形式です。HTML を PDF に変換することで、印刷可能なドキュメントを作成したり、Web コンテンツをオフラインで共有したり、レポートを簡単に生成したりできます。本記事では、Spire.Doc for Python を使用して、HTML ファイルや HTML 文字列を PDF に変換する方法を解説します。 Python で HTML ファイルを PDF に変換 Python で 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 日間有効な一時ライセンスを取得してください。