C#/VB.NET创建PDF文档的示例代码
通过代码创建 PDF 文档有许多好处。例如,您可以轻松地合并动态内容,如用户输入、数据库记录或实时数据。通过使用代码生成的 PDF 文件可以实现更高程度的定制和自动化,从而最大限度地减少手动干预以创建高度定制化的文档。在本教程中,我们将为您展示如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中从头开始创建 PDF 文档。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
背景知识
Spire.PDF 中的页面(由 PdfPageBase 类表示)由内容区域和四周的页边距组成。内容区是供用户编写各种内容的区域,页边距通常为空白边缘。
如下图所示,页面上坐标系的原点位于内容区域的左上角,x 轴水平向右延伸,y 轴垂直向下延伸。添加到内容区域的所有元素都必须基于指定的坐标。
此外,下表列出了重要的类和方法,这些类和方法可以帮助您轻松理解下一节中提供的代码片段。
成员 | 描述 |
PdfDocument 类 | 表示 PDF 文档模型。 |
PdfPageBase 类 | 表示 PDF 文档中的页面。 |
PdfSolidBrush 类 | 表示用纯色填充任何对象的笔刷。 |
PdfTrueTypeFont 类 | 表示 true Type 字体。 |
PdfStringFormat 类 | 表示文本格式信息,如对齐方式、字符间距和缩进。 |
PdfTextWidget 类 | 表示具有跨多页功能的文本区域。 |
PdfTextLayout 类 | 表示文本布局信息。 |
PdfDocument.Pages.Add() 方法 | 将页面添加到PDF文档中。 |
PdfPageBase.Canvas.DrawString() 方法 | 使用指定的字体和笔刷对象在页面上的指定位置绘制字符串。 |
PdfTextWidget.Draw() 方法 | 在指定位置绘制页面上的文本小部件。 |
PdfDocument.Save() 方法 | 将文档保存为 PDF 文件。 |
在 C# 和 VB.NET 中从头开始创建 PDF 文档
虽然 Spire.PDF for .NET 支持向 PDF 文档中添加各种元素,但本文仅演示如何使用纯文本创建 PDF 文档。以下是详细的步骤。
- 创建 PdfDocument 对象。
- 使用 PdfDocument.Pages.Add() 方法添加页面。
- 创建笔刷和字体对象。
- 使用 PdfPageBase.Canvas.DrawString() 方法在页面上指定坐标处绘制字符串。
- 创建一个 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) { //创建PdfDocument对象 PdfDocument doc = new PdfDocument(); //添加页面 PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f)); //指定标题文本 String titleText = "什么是AI?"; //创建实体笔刷 PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue)); PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black)); //创建true type字体 PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("宋体", 18f, FontStyle.Bold), true); PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("宋体", 12f, FontStyle.Regular), true); //通过PdfStringFormat类设置文本对齐方式 PdfStringFormat format = new PdfStringFormat(); format.Alignment = PdfTextAlignment.Center; //在页面中心绘制标题 page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format); //从.txt文件中获取段落内容 string paraText = File.ReadAllText("C:\\Users\\Administrator\\Desktop\\文本.txt"); //创建一个PdfTextWidget对象来保存段落内容 PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush); //创建一个放置段落内容的矩形 RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height); //将PdfLayoutType设置为Paginate以使内容自动分页 PdfTextLayout layout = new PdfTextLayout(); layout.Layout = PdfLayoutType.Paginate; //在页面上绘制小部件 widget.Draw(page, rect, layout); //保存文件 doc.SaveToFile("创建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()) '创建PdfDocument对象 Dim doc As PdfDocument = New PdfDocument() '添加页面 Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, New PdfMargins(35F)) '指定标题文本 Dim titleText = "什么是AI?" '创建实体笔刷 Dim titleBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Blue)) Dim paraBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Black)) '创建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类设置文本对齐方式 Dim format As PdfStringFormat = New PdfStringFormat() format.Alignment = PdfTextAlignment.Center '在页面中心绘制标题 page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format) '从.txt文件中获取段落内容 Dim paraText = File.ReadAllText("C:\Users\Administrator\Desktop\文本.txt") '创建一个PdfTextWidget对象来保存段落内容 Dim widget As PdfTextWidget = New PdfTextWidget(paraText, paraFont, paraBrush) '创建一个放置段落内容的矩形 Dim rect As RectangleF = New RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height) '将PdfLayoutType设置为Paginate以使内容自动分页 Dim layout As PdfTextLayout = New PdfTextLayout() layout.Layout = PdfLayoutType.Paginate '在页面上绘制小部件 widget.Draw(page, rect, layout) '保存文件 doc.SaveToFile("创建PDF文档.pdf") doc.Dispose() End Sub End Class End Namespace
效果图
到此这篇关于C#/VB.NET创建PDF文档的示例代码的文章就介绍到这了,更多相关C#创建PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
这篇文章主要介绍了C#实现XML与实体类之间相互转换的方法,涉及C#序列化与反序列化操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2016-06-06基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理
最近刚做完一个项目,项目架构师使用mvc5+ef6+Bootstrap,用的是vs2015,数据库是sql server2014。下面小编把mvc5+ef6+Bootstrap项目心得之身份验证和权限管理模块的实现思路分享给大家,需要的朋友可以参考下2016-06-06C#中Convert.ToString和ToString的区别分析
这篇文章主要介绍了C#中Convert.ToString和ToString的区别,是C#初学者需要牢固掌握的技巧,需要的朋友可以参考下2014-08-08
最新评论