C#/VB.NET創(chuàng)建PDF文檔的示例代碼
通過代碼創(chuàng)建 PDF 文檔有許多好處。例如,您可以輕松地合并動態(tài)內(nèi)容,如用戶輸入、數(shù)據(jù)庫記錄或?qū)崟r數(shù)據(jù)。通過使用代碼生成的 PDF 文件可以實(shí)現(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 項(xiàng)目中的引用。DLL 文件可以從此鏈接下載或通過 NuGet 安裝。
PM> Install-Package Spire.PDF
背景知識
Spire.PDF 中的頁面(由 PdfPageBase 類表示)由內(nèi)容區(qū)域和四周的頁邊距組成。內(nèi)容區(qū)是供用戶編寫各種內(nèi)容的區(qū)域,頁邊距通常為空白邊緣。
如下圖所示,頁面上坐標(biāo)系的原點(diǎn)位于內(nèi)容區(qū)域的左上角,x 軸水平向右延伸,y 軸垂直向下延伸。添加到內(nèi)容區(qū)域的所有元素都必須基于指定的坐標(biāo)。
此外,下表列出了重要的類和方法,這些類和方法可以幫助您輕松理解下一節(jié)中提供的代碼片段。
成員 | 描述 |
PdfDocument 類 | 表示 PDF 文檔模型。 |
PdfPageBase 類 | 表示 PDF 文檔中的頁面。 |
PdfSolidBrush 類 | 表示用純色填充任何對象的筆刷。 |
PdfTrueTypeFont 類 | 表示 true Type 字體。 |
PdfStringFormat 類 | 表示文本格式信息,如對齊方式、字符間距和縮進(jìn)。 |
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 文檔。以下是詳細(xì)的步驟。
- 創(chuàng)建 PdfDocument 對象。
- 使用 PdfDocument.Pages.Add() 方法添加頁面。
- 創(chuàng)建筆刷和字體對象。
- 使用 PdfPageBase.Canvas.DrawString() 方法在頁面上指定坐標(biāo)處繪制字符串。
- 創(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)); //指定標(biāo)題文本 String titleText = "什么是AI?"; //創(chuàng)建實(shí)體筆刷 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; //在頁面中心繪制標(biāo)題 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)) '指定標(biāo)題文本 Dim titleText = "什么是AI?" '創(chuàng)建實(shí)體筆刷 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 '在頁面中心繪制標(biāo)題 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)文章
unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周
這篇文章主要介紹了unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04C#數(shù)據(jù)類型實(shí)現(xiàn)背包、隊(duì)列和棧
本文詳細(xì)講解了C#數(shù)據(jù)結(jié)構(gòu)類型,并實(shí)現(xiàn)背包、隊(duì)列和棧的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04C#調(diào)用Polly庫實(shí)現(xiàn)捕捉異常處理的操作代碼
Polly 是一個 .NET 彈性和瞬態(tài)故障處理庫,允許開發(fā)人員以 Fluent 和線程安全的方式來實(shí)現(xiàn)重試、斷路、超時、隔離和回退策略,本文給大家介紹了C#調(diào)用Polly庫實(shí)現(xiàn)捕捉異常處理操作,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-08-08