如何在 Python 中用文字和圖片建立 PDF 文件
在這個數位時代,生成包含動態內容的PDF文件,其中包括文字和圖像,是一項常見需求。 Python是一種受歡迎的程式語言,使自動化例行流程以節省時間和精力變得容易。 擁有一個適合用於Python中建立帶有文字和圖像的PDF文件的程式庫,對自動生成報告、收據或發票非常方便。 IronPDF,一個多功能的Python程式庫,簡化了建立豐富內容PDF的過程。
在本文中,我們將探討如何在Python專案中使用IronPDF生成包含文字和圖像的PDF。
如何在Python中建立帶有文字和圖像的PDF文件
- 安裝IronPDF for Python 程式庫
- 實例化ChromePdfRenderer
- 新增文字內容
- 新增圖像作為二進位資料
- 建立包含文字和圖像的HTML字串
- 使用RenderHtmlAsPdf將HTML渲染為PDF
- 使用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文件的過程之前,請確認您已經具備以下預備事項:
- 已安裝Python: Python需要安裝在您的電腦上。 您可以從Python官方網站(https://www.python.org/)下載並安裝最新版本。
- PyCharm IDE: 使用PyCharm或其他任何您選擇的Python IDE。PyCharm是一個受歡迎的整合開發環境,為Python開發提供了一個舒適的工作空間。
- IronPDF: 您可以從這裡下載IronPDF程式庫或使用PIP(Python Package Manager)安裝。 要成功使用IronPDF功能還需要Microsoft .NET運行時。 Linux、Mac和Windows使用者可以通過此下載連結下載.NET 6.0版本。
在PyCharm中建立Python專案
一旦滿足預備條件,打開PyCharm並建立一個新的Python專案。 為您的專案設置一個虛擬環境,以有效地管理依賴項。
- 單擊檔案 > 新專案。
- 在"新專案"窗口中:
- 在"位置"欄位中輸入您的專案名稱。
- 選擇您希望保存專案文件的位置。
- 在"專案直譯器"下,選擇Python直譯器。 如果您安裝了Python,它將自動檢測Python直譯器。
- 選擇專案型別。 對於一個簡單的Python專案,您可以堅持使用預設設置。
如何在Python中建立帶有文字和圖像的PDF文件:圖2 - 打開PyCharm IDE。進入檔案選單 - 單擊新專案。 輸入您的Python專案的名稱和位置。 接下來,在"專案直譯器"下選擇Python直譯器。 單擊"建立"按鈕以建立專案。 一旦建立了Python專案,打開一個新的python文件並用它來編寫程式碼以使用IronPDF生成PDF文件。
- 單擊建立以建立專案。
- 打開一個新的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 base64from ironpdf import ChromePdfRenderer
import base64步驟2:實例化ChromePdfRenderer
在這裡,我們將建立一個ChromePdfRenderer的實例,它將用於渲染HTML內容為PDF。
# Instantiate Renderer
renderer = ChromePdfRenderer()# Instantiate Renderer
renderer = ChromePdfRenderer()步驟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>
"""步驟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>
"""步驟5:合併文字和圖片HTML字串
這一步將文字和圖片的HTML字串合併,建立完整的HTML內容(full_html_content),將被渲染為PDF輸出文件。
full_html_content = html_content + imgHtmlfull_html_content = html_content + imgHtml步驟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)步驟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")輸出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")在這個進階程式碼範例中,我們進一步利用外部資源嵌入圖像。 在RenderHtmlAsPdf方法中,HTML內容包含指向圖像文件(iron.png)的標籤,該文件位於指定的資產目錄C:\site\assets\。 此外,此目錄設置為BasePath參數。
在RenderHtmlAsPdf中,您可以像上述步驟中那樣提交完整的HTML網頁。 CSS文件可以使用基準路徑作為第二個可選參數參考。 有關生成PDF格式或修改現有PDF文件的其他方法的詳細資訊,請存取程式碼範例和文件頁面。
結論
在這篇文章中,我們探討了如何在Python專案中使用IronPDF來建立帶有文字和圖像的PDF文件。 憑藉其直觀的API和強大的功能,IronPDF使開發者可以輕鬆地生成動態且視覺上吸引人的PDF文件。 無論是建立報告、文件還是任何其他型別的內容,IronPDF都提供了一個可靠且靈活的解決方案來生成Python中的PDF。 嘗試進行自定義選項實驗,以根據特定的設計需求調整您的PDF,使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中建立視覺上吸引人的文件變得容易。









