C#/VB.NET創(chuàng)建PDF文檔的示例代碼
通過代碼創(chuàng)建 PDF 文檔有許多好處。例如,您可以輕松地合并動態(tài)內(nèi)容,如用戶輸入、數(shù)據(jù)庫記錄或?qū)崟r數(shù)據(jù)。通過使用代碼生成的 PDF 文件可以實現(xiàn)更高程度的定制和自動化,從而最大限度地減少手動干預(yù)以創(chuàng)建高度定制化的文檔。在本教程中,我們將為您展示如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中從頭開始創(chuàng)建 PDF 文檔。
安裝 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作為 .NET 項目中的引用。DLL 文件可以從此鏈接下載或通過 NuGet 安裝。
PM> Install-Package Spire.PDF
背景知識
Spire.PDF 中的頁面(由 PdfPageBase 類表示)由內(nèi)容區(qū)域和四周的頁邊距組成。內(nèi)容區(qū)是供用戶編寫各種內(nèi)容的區(qū)域,頁邊距通常為空白邊緣。
如下圖所示,頁面上坐標系的原點位于內(nèi)容區(qū)域的左上角,x 軸水平向右延伸,y 軸垂直向下延伸。添加到內(nèi)容區(qū)域的所有元素都必須基于指定的坐標。

此外,下表列出了重要的類和方法,這些類和方法可以幫助您輕松理解下一節(jié)中提供的代碼片段。
| 成員 | 描述 |
| PdfDocument 類 | 表示 PDF 文檔模型。 |
| PdfPageBase 類 | 表示 PDF 文檔中的頁面。 |
| PdfSolidBrush 類 | 表示用純色填充任何對象的筆刷。 |
| PdfTrueTypeFont 類 | 表示 true Type 字體。 |
| PdfStringFormat 類 | 表示文本格式信息,如對齊方式、字符間距和縮進。 |
| PdfTextWidget 類 | 表示具有跨多頁功能的文本區(qū)域。 |
| PdfTextLayout 類 | 表示文本布局信息。 |
| PdfDocument.Pages.Add() 方法 | 將頁面添加到PDF文檔中。 |
| PdfPageBase.Canvas.DrawString() 方法 | 使用指定的字體和筆刷對象在頁面上的指定位置繪制字符串。 |
| PdfTextWidget.Draw() 方法 | 在指定位置繪制頁面上的文本小部件。 |
| PdfDocument.Save() 方法 | 將文檔保存為 PDF 文件。 |
在 C# 和 VB.NET 中從頭開始創(chuàng)建 PDF 文檔
雖然 Spire.PDF for .NET 支持向 PDF 文檔中添加各種元素,但本文僅演示如何使用純文本創(chuàng)建 PDF 文檔。以下是詳細的步驟。
- 創(chuàng)建 PdfDocument 對象。
- 使用 PdfDocument.Pages.Add() 方法添加頁面。
- 創(chuàng)建筆刷和字體對象。
- 使用 PdfPageBase.Canvas.DrawString() 方法在頁面上指定坐標處繪制字符串。
- 創(chuàng)建一個 PdfTextWidget 對象來容納一塊文本。
- 使用 PdfTextWidget.Draw() 方法在頁面上的指定位置繪制文本小部件
- 使用 PdfDocument.Save() 方法將文檔保存為 PDF 文件。
C#
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
using System.IO;
namespace CreatePdfDocument
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建PdfDocument對象
PdfDocument doc = new PdfDocument();
//添加頁面
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f));
//指定標題文本
String titleText = "什么是AI?";
//創(chuàng)建實體筆刷
PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue));
PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black));
//創(chuàng)建true type字體
PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("宋體", 18f, FontStyle.Bold), true);
PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("宋體", 12f, FontStyle.Regular), true);
//通過PdfStringFormat類設(shè)置文本對齊方式
PdfStringFormat format = new PdfStringFormat();
format.Alignment = PdfTextAlignment.Center;
//在頁面中心繪制標題
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format);
//從.txt文件中獲取段落內(nèi)容
string paraText = File.ReadAllText("C:\\Users\\Administrator\\Desktop\\文本.txt");
//創(chuàng)建一個PdfTextWidget對象來保存段落內(nèi)容
PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);
//創(chuàng)建一個放置段落內(nèi)容的矩形
RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
//將PdfLayoutType設(shè)置為Paginate以使內(nèi)容自動分頁
PdfTextLayout layout = new PdfTextLayout();
layout.Layout = PdfLayoutType.Paginate;
//在頁面上繪制小部件
widget.Draw(page, rect, layout);
//保存文件
doc.SaveToFile("創(chuàng)建PDF文檔.pdf");
doc.Dispose();
}
}
}VB.NET
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Imports System.IO
Namespace CreatePdfDocument
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'創(chuàng)建PdfDocument對象
Dim doc As PdfDocument = New PdfDocument()
'添加頁面
Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, New PdfMargins(35F))
'指定標題文本
Dim titleText = "什么是AI?"
'創(chuàng)建實體筆刷
Dim titleBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Blue))
Dim paraBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Black))
'創(chuàng)建true type字體
Dim titleFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("宋體", 18F, FontStyle.Bold), True)
Dim paraFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("宋體", 12F, FontStyle.Regular), True)
'通過PdfStringFormat類設(shè)置文本對齊方式
Dim format As PdfStringFormat = New PdfStringFormat()
format.Alignment = PdfTextAlignment.Center
'在頁面中心繪制標題
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format)
'從.txt文件中獲取段落內(nèi)容
Dim paraText = File.ReadAllText("C:\Users\Administrator\Desktop\文本.txt")
'創(chuàng)建一個PdfTextWidget對象來保存段落內(nèi)容
Dim widget As PdfTextWidget = New PdfTextWidget(paraText, paraFont, paraBrush)
'創(chuàng)建一個放置段落內(nèi)容的矩形
Dim rect As RectangleF = New RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height)
'將PdfLayoutType設(shè)置為Paginate以使內(nèi)容自動分頁
Dim layout As PdfTextLayout = New PdfTextLayout()
layout.Layout = PdfLayoutType.Paginate
'在頁面上繪制小部件
widget.Draw(page, rect, layout)
'保存文件
doc.SaveToFile("創(chuàng)建PDF文檔.pdf")
doc.Dispose()
End Sub
End Class
End Namespace效果圖

到此這篇關(guān)于C#/VB.NET創(chuàng)建PDF文檔的示例代碼的文章就介紹到這了,更多相關(guān)C#創(chuàng)建PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中Array與ArrayList用法及轉(zhuǎn)換的方法
C#中Array與ArrayList用法及轉(zhuǎn)換的方法,需要的朋友可以參考一下2013-03-03
C#實現(xiàn)從Word文檔和各種Word元素中自動提取文本
手動提取文本既費時又容易出錯,尤其是在處理較長或復(fù)雜的Word文檔時,這篇文章將探討如何使用C# 從Word文檔中提取文本,我們將涵蓋不同方面的內(nèi)容,希望對大家有所幫助2025-11-11

