跳至頁尾內容
USING IRONPDF FOR PYTHON

如何在 Python 中用文字和圖片建立 PDF 文件

在這個數位時代,生成包含動態內容的PDF文件,其中包括文字和圖像,是一項常見需求。 Python是一種受歡迎的程式語言,使自動化例行流程以節省時間和精力變得容易。 擁有一個適合用於Python中建立帶有文字和圖像的PDF文件的程式庫,對自動生成報告、收據或發票非常方便。 IronPDF,一個多功能的Python程式庫,簡化了建立豐富內容PDF的過程。

在本文中,我們將探討如何在Python專案中使用IronPDF生成包含文字和圖像的PDF。

如何在Python中建立帶有文字和圖像的PDF文件

  1. 安裝IronPDF for Python 程式庫
  2. 實例化ChromePdfRenderer
  3. 新增文字內容
  4. 新增圖像作為二進位資料
  5. 建立包含文字和圖像的HTML字串
  6. 使用RenderHtmlAsPdf將HTML渲染為PDF
  7. 使用SaveAs方法保存PDF文件

IronPDF 介紹

IronPDF是一個功能豐富的Python程式庫,為開發者提供了強大的工具,用於建立、操作和處理PDF文件。 使用IronPDF,您可以輕鬆地將文字、圖片、表格和其他元素合併到您的PDF中,這使其成為從報告生成到文件建立的一系列應用程式的寶貴資產。

如何在Python中建立帶有文字和圖像的PDF文件:圖1 - IronPDF for Python:這是Python的PDF程式庫

IronPDF的主要功能:

  • 易於整合: IronPDF無縫整合到流行的Python開發環境中,使得使用PyCharm等工具的開發者可以方便地使用。
  • 豐富的文字支援: 支援豐富的文字格式,讓開發者可以輕鬆建立視覺上吸引人的PDF文件。
  • 圖像處理: IronPDF使在PDF中包含圖片變得簡單,提供在設計和自訂文件時的彈性。
  • 跨平台相容性: IronPDF能在不同平台上運行,確保生成的PDF可以保持一致地查看和交互。

先決條件

在使用IronPDF建立PDF文件的過程之前,請確認您已經具備以下預備事項:

  1. 已安裝Python: Python需要安裝在您的電腦上。 您可以從Python官方網站(https://www.python.org/)下載並安裝最新版本。
  2. PyCharm IDE: 使用PyCharm或其他任何您選擇的Python IDE。PyCharm是一個受歡迎的整合開發環境,為Python開發提供了一個舒適的工作空間。
  3. IronPDF: 您可以從這裡下載IronPDF程式庫或使用PIP(Python Package Manager)安裝。 要成功使用IronPDF功能還需要Microsoft .NET運行時。 Linux、Mac和Windows使用者可以通過下載連結下載.NET 6.0版本。

在PyCharm中建立Python專案

一旦滿足預備條件,打開PyCharm並建立一個新的Python專案。 為您的專案設置一個虛擬環境,以有效地管理依賴項。

  1. 單擊檔案 > 新專案
  2. 在"新專案"窗口中:
    • 在"位置"欄位中輸入您的專案名稱。
    • 選擇您希望保存專案文件的位置。
  3. 在"專案直譯器"下,選擇Python直譯器。 如果您安裝了Python,它將自動檢測Python直譯器。
  4. 選擇專案型別。 對於一個簡單的Python專案,您可以堅持使用預設設置。

如何在Python中建立帶有文字和圖像的PDF文件:圖2 - 打開PyCharm IDE。進入檔案選單 - 單擊新專案。 輸入您的Python專案的名稱和位置。 接下來,在"專案直譯器"下選擇Python直譯器。 單擊"建立"按鈕以建立專案。 一旦建立了Python專案,打開一個新的python文件並用它來編寫程式碼以使用IronPDF生成PDF文件。

  1. 單擊建立以建立專案。
  2. 打開一個新的python文件並保存它以編寫程式碼,使用Python程式庫 - IronPDF生成PDF文件。

使用PIP安裝IronPDF for Python

要安裝IronPDF,請在您的專案終端或命令提示符中使用以下PIP命令:

pip install ironpdf

這條命令將自動下載並安裝IronPDF程式庫以及其依賴項。

如何在Python中建立帶有文字和圖像的PDF文件:圖3 - 在您的專案終端或命令提示符中使用以下命令安裝IronPDF:pip install IronPDF

建立一個簡單的帶有文字和圖像的PDF

讓我們逐步介紹如何使用IronPDF建立一個包含文字和圖片的單頁PDF文件:

步驟1:匯入IronPDF

在此步驟中,我們匯入IronPDF的所有必需模組。 我們使用ChromePdfRenderer來渲染PDF,使用base64來編碼圖片資料。

from ironpdf import ChromePdfRenderer
import base64
from ironpdf import ChromePdfRenderer
import base64
PYTHON

步驟2:實例化ChromePdfRenderer

在這裡,我們將建立一個ChromePdfRenderer的實例,它將用於渲染HTML內容為PDF。

# Instantiate Renderer
renderer = ChromePdfRenderer()
# Instantiate Renderer
renderer = ChromePdfRenderer()
PYTHON

步驟3:新增文字內容

在此步驟中,我們將定義一個包含HTML文件結構的HTML字串(html_content),包括標題、正文和一個包含文字內容的段落,這些內容稍後將被轉換為單個PDF文件。CSS樣式被用來定位文字和圖片。

# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
PYTHON

步驟4:新增圖片

在這裡,我們將以二進位方式打開並讀取一個圖像文件(IronPDF-logo.png),將其轉換為base64編碼資料URI,並嵌入到HTML字串中。 然後使用CSS樣式定位圖片,使其出現在右上角。

# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
PYTHON

步驟5:合併文字和圖片HTML字串

這一步將文字和圖片的HTML字串合併,建立完整的HTML內容(full_html_content),將被渲染為PDF輸出文件。

full_html_content = html_content + imgHtml
full_html_content = html_content + imgHtml
PYTHON

步驟6:將HTML內容渲染為PDF文件

在這裡,使用ChromePdfRenderer的方法RenderHtmlAsPdf將HTML轉換為PDF。

# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
PYTHON

步驟7:保存PDF文件

最終,生成的PDF將保存為"output_with_text_and_image_top_right.pdf"。 這個文件將包含格式化的文字和嵌入在右上角的圖片。

# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
PYTHON

輸出PDF文件

現在在執行完程式後,輸出PDF文件如下:

如何在Python中建立帶有文字和圖像的PDF文件:圖4 - 輸出:output_with_text_and_image_top_right.pdf

同樣,可以輕鬆地將多個PDF頁面新增到一個PDF文件中。

進階使用:自定義文字和圖片位置

IronPDF提供了額外的功能,可以通過外部CSS/JavaScript文件來微調PDF中文字和圖片的放置和樣式。基準路徑可以作為RenderHtmlAsPdf方法的可選參數提交,如以下程式碼所示:

# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
PYTHON

在這個進階程式碼範例中,我們進一步利用外部資源嵌入圖像。 在RenderHtmlAsPdf方法中,HTML內容包含指向圖像文件(iron.png)的 related to 進階使用:自定義文字和圖片位置標籤,該文件位於指定的資產目錄C:\site\assets\。 此外,此目錄設置為BasePath參數。

RenderHtmlAsPdf中,您可以像上述步驟中那樣提交完整的HTML網頁。 CSS文件可以使用基準路徑作為第二個可選參數參考。 有關生成PDF格式或修改現有PDF文件的其他方法的詳細資訊,請存取程式碼範例文件頁面。

結論

在這篇文章中,我們探討了如何在Python專案中使用IronPDF來建立帶有文字和圖像的PDF文件。 憑藉其直觀的API和強大的功能,IronPDF使開發者可以輕鬆地生成動態且視覺上吸引人的PDF文件。 無論是建立報告、文件還是任何其他型別的內容,IronPDF都提供了一個可靠且靈活的解決方案來生成Python中的PDF。 嘗試進行自定義選項實驗,以根據特定的設計需求調整您的PDF,使IronPDF成為滿足您文件生成需求的寶貴工具。

IronPDF 授權或您可以聯繫支援以獲取進一步的問題。

如何在Python中建立帶有文字和圖像的PDF文件:圖5 - IronPDF for Python 資訊授權

您可以從IronPDF的網站下載並安裝該程式庫。

常見問題

我如何使用Python建立包含文字和圖片的PDF?

您可以使用IronPDF的ChromePdfRenderer在Python中建立包含文字和圖片的PDF。首先,安裝IronPDF程式庫,然後建立包含所需內容的HTML字串。使用RenderHtmlAsPdf方法將HTML渲染為PDF,最後使用SaveAs方法保存PDF。

在Python中安裝PDF程式庫的步驟是什麼?

要在Python中安裝IronPDF程式庫,您可以使用PIP包管理器。在您的命令行或終端中運行pip install ironpdf命令以下載並安裝該程式庫及其依賴項。

使用Python的PDF建立程式庫需要哪些先決條件?

您需要在您的機器上安裝Python,一個如PyCharm的IDE用於開發,還有IronPDF程式庫。此外,IronPDF需要Microsoft .NET運行時才能運作。

是否可以使用Python程式庫來自訂使用外部CSS或JavaScript的PDF?

是的,IronPDF允許您使用外部CSS和JavaScript文件來自訂您的PDF的佈局和設計。此功能提供了文字和圖片放置的高級自訂選項。

PDF Python程式庫可以處理跨平台相容性嗎?

IronPDF被設計為跨平台相容,確保您生成的PDF可以在不同操作系統中一致地查看和互動。

為什麼在使用Python生成PDF的過程中要使用base64編碼圖片?

Base64編碼用於將圖片二進位資料轉換為可以直接嵌入到HTML中的字串格式。這樣允許圖片在PDF中包含,而不必引用外部文件。

IronPDF for Python的主要功能有哪些?

IronPDF提供了易於與Python環境整合的功能,支援豐富的文字和圖片,並且具有跨平台相容性。這些功能使其成為生成帶有動態內容的PDF的多功能工具。

IronPDF如何幫助生成動態PDF文件?

IronPDF提供了一個強大的API,允許開發者生成帶有文字和圖片動態內容的PDF。它支援HTML和CSS格式,讓在Python中建立視覺上吸引人的文件變得容易。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話