チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.Doc for Python»変換»Python:HTML を PDF に変換する方法
2025-02-06

Python:HTML を PDF に変換する方法

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に変換

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()

PythonコードでHTML文字列をPDFに変換

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 80 times