跳至页脚内容
PDF 工具
如何在 C# (.NET 5) 中使用 PDFsharp 生成 PDF

如何从 PDF 文件中提取页面——分步指南

该视频是一个关于如何使用PDFSharp库使用C#代码生成PDF文件的指导教程。 演讲者开始介绍PDFSharp作为一个棘手但有效的生成PDF文件的库。 该库具有高级功能,与许多竞争者不同,它完全免费。 演讲者强调尽管其复杂性,PDFSharp是使用C#生成PDF文件的绝佳选择。

为了开始教程,演讲者展示了一个生成的PDF文件示例,该文件由三行文本组成。 第一行文本并不完全位于最前面,而第三行文本则出现在底部右角。 演讲者指出,一旦他们仔细研究了代码,文本的顺序就会变得有意义。 他们还解释了他们将使用.NET 5演示PDFSharp的工作原理。 要更全面地了解如何使用 C# 从头开始创建 PDF ,IronPDF 提供了一种简化的替代方法。

快速看看PDFSharp和IronPDF在.NET PDF项目中最相关功能上的区别:

特征 IronPDF PDFSharp
HTML 转 PDF Yes
数字签名 Yes
加密 Yes
HTML、CSS 和 JavaScript Yes
专业支持 Yes
许可 商业 麻省理工学院(开源)

以下各节将对每项差异进行详细解释并提供代码示例。 比较这两个库的团队可以通过免费30天试用测试IronPDF的功能。

安装和设置

在进入代码之前,演讲者特别指出设置PDFSharp的环境可能相当具有挑战性。 他们解释说,在使用PDFSharp NuGet包细节之前,必须安装三个NuGet包。 第一个包是PDFSharp本身,由于其版本较旧,它可能会生成与.NET不匹配的警告。 另外两个包是System.Drawing.CommonSystem.Text.Encoding.CodePages

如何使用PDFSharp在C# (.NET 5)中生成PDF:图1

演讲者强调,在使用PDFSharp之前必须安装所有三个包,否则代码将抛出错误。 他们解释System.Text.Encoding.CodePages包尤其重要,因为它提供了生成PDF文件所需的编码支持。 演讲者还指出,如果没有正确安装这些包,可能很难解决问题。 希望完全避免这种多包设置的团队可以参考PDFSharp到IronPDF迁移指南进行逐步过渡。

安装相关库

为了让PDFSharp正常工作,演讲者解释说,必须为System.Text.Encoding注册一个提供者。 提供者来自System.Text.Encoding.CodePages包,演讲者强调注册该包以确保PDFSharp正常工作的重要性。 他们解释说,如果不注册提供者会导致错误,这可能很难解决。

创建PDF文件

接下来,演讲者介绍了一个简单的控制台应用程序,它使用PDFSharp生成一个PDF文件。他们解释说在使用库之前,必须声明PDFSharp Drawing和PDFSharp PDF的using语句。 演讲者随后展示了生成PDF文件的代码,这涉及创建一个新文档,添加一个新页面,并在页面上绘制文本。

using PdfSharp.Drawing;
using PdfSharp.Pdf;

namespace PdfSharpExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            PdfDocument document = new PdfDocument();
            // Add a new page
            PdfPage page = document.AddPage();
            // Prepare to draw on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define a font
            XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

            // Draw a string to the page
            gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
                new XRect(0, 0, page.Width, page.Height),
                XStringFormats.Center);

            // Save the document
            const string filename = "HelloWorld.pdf";
            document.Save(filename);  
        }
    }
}
using PdfSharp.Drawing;
using PdfSharp.Pdf;

namespace PdfSharpExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            PdfDocument document = new PdfDocument();
            // Add a new page
            PdfPage page = document.AddPage();
            // Prepare to draw on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define a font
            XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

            // Draw a string to the page
            gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
                new XRect(0, 0, page.Width, page.Height),
                XStringFormats.Center);

            // Save the document
            const string filename = "HelloWorld.pdf";
            document.Save(filename);  
        }
    }
}
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf

Namespace PdfSharpExample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim document As New PdfDocument()
			' Add a new page
			Dim page As PdfPage = document.AddPage()
			' Prepare to draw on the page
			Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
			' Define a font
			Dim font As New XFont("Verdana", 20, XFontStyle.Bold)

			' Draw a string to the page
			gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

			' Save the document
			Const filename As String = "HelloWorld.pdf"
			document.Save(filename)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

演讲者指出,可以调整生成 PDF 文件的代码,使其包含更复杂的功能,例如添加图像(请参阅如何使用 IronPDF将图像转换为 PDF )、表格和图表。 他们还解释了PDFSharp提供的各种字体操作功能,包括将字体嵌入到PDF文件中。

如何使用PDFSharp在C# (.NET 5)中生成PDF:图2

演讲者解释了通过安装必要的NuGet包和为System.Text.Encoding注册提供者来正确设置环境的重要性。 他们还演示了使用PDFSharp生成PDF文件的简单控制台应用程序,并演示了如何调整代码以包含更复杂的功能。 此视频是对任何感兴趣使用C#和PDFSharp生成PDF文件的人的极佳资源。

创建列表和更复杂的项目

在视频的第二部分,演讲者首先介绍了创建PDF文档的更复杂的示例。 他强调拥有一个空的PDF文档是毫无意义的,并接着解释如何使用PDFSharp库创建一个新页面。 他指出,该过程类似于在Excel或PowerPoint插件中创建东西,并且一旦页面创建,就可以使用一个引用,而不需要调用另一个方法。

如何使用PDFSharp在C# (.NET 5)中生成PDF:图3

然后,演讲者介绍了XGraphics变量,它提供了绘制文本、线条和图像的方法——功能IronPDF通过其文本和图像加印API处理,无需手动坐标计算。 还介绍了XFont变量用来设置PDF文档中使用的字体。 演讲者指出,字体可以在其他地方生成,但如果有更复杂的安排,将其全局设置是很有用的。

接下来,演讲者讨论了DrawString方法,它将文本写入PDF文件。他指出该方法复杂的部分是确定文本将绘制的位置,并解释涉及的各种参数,比如字体、颜色以及文本可能对齐的边界。 他还解释了XBrushes变量的使用来设置文本的颜色。

解释DrawString和其他方法

演讲者接着展示了使用不同参数调用DrawString方法的几个示例,例如在中心对齐文本、在左下角对齐文本以及指定文本放置的确切坐标。 他指出,最后一种选择是最具可自定义性,并提供了很大的灵活性。

如何使用PDFSharp在C# (.NET 5)中生成PDF:图4

演讲者解释如何使用C#编程语言中的图形功能创建表格。 它们涵盖了如何插入图像、字符串和线条,以及如何使用图形功能绘制弧线和条形码——IronPDF 通过其边距、标题和 DPI 的渲染选项简化了这些任务。 他们还解释了在使用坐标时尝试和错误的重要性,以及如何画线来分割行。

演讲者还讨论了表头以及为值和线条设置起点的必要性。 他们解释了如何调整y位置和添加记录行,以及当表格超出一定数量的记录时,如何移动到另一页。 最后,他们提到为每个页面重置值的重要性。

你应该选择哪个库?

总之,演讲者强调在使用PDFSharp时熟悉Microsoft Office插件的重要性,并提供了他自己的关于该主题的课程。 他还指出,该库具有很高的灵活性,可用于创建各种PDF文档,从简单的文本文档到具有图像、图形和自定义布局的更复杂的文档。

什么是 IronPDF?

IronPDF 是一个 C# PDF 库,用于创建、编辑和操作 PDF 文档。 它作为一个单一的NuGet包——Install-Package IronPdf发布,并集成到.NET应用程序中,无需额外的依赖设置。

PDFSharp提供了扎实的低级绘图控制和许可协议下的开放性MIT许可证——这两个是真正的优点,使其成为许多.NET项目中的基础。 团队经常遇到的摩擦点在于,当需求从基于坐标的渲染扩展到 HTML 到 PDF 的转换、数字签名或文档加密等领域时。IronPDF是一个商业支持的库,它将这些场景作为一流的操作来处理,并提供专业的支持和 API 接口,该接口围绕常见的文档生成工作流程而设计,包括 HTML、CSS 和 JavaScript 渲染。

功能特性

功能 IronPDF PDFSharp
将HTML转换为PDF
专业支持
HTML、CSS和JavaScript支持
数字签名
加密

IronPDF 的一个关键特性是它能够使用IronPDF将 HTML 转换为 PDF ,从而可以轻松地从网页创建 PDF 文档。 HTML到PDF的转换超出了PDFSharp当前的范围——它在坐标绘图级别操作——因此需要此功能的团队通常会添加单独的渲染库或评估IronPDF的内置Chromium引擎。

IronPDF 还支持数字签名和带密码保护的 PDF 加密,这对于需要安全处理的敏感文档至关重要。 PDFSharp不是为了解决这些安全场景而设计的,因此需要合规或文档保护要求的团队常常在评估IronPDF时发现这是一个自然的拐点。

IronPDF提供了更广泛的功能集和更全面的支持服务,相较于PDFSharp,涵盖了HTML渲染、加密和数字签名,并集成为一个单独的NuGet包。 不过,它是一个商业产品,因此需求适合于PDFSharp的坐标绘图模型且不需要HTML转换或内置安全功能的团队,可能更喜欢PDFSharp以MIT许可证开源的方式。

除了许可证成本外,总项目成本还包括开发人员花费的时间来组装单独的渲染库,管理基于坐标的复杂文档的页面布局,以及排除由PDFSharp多包设置带来的集成问题。 对于评估多年项目生命周期成本的团队来说,这些集成和维护成本往往会超过开源许可和商业许可之间的差异。

准备好了解IronPDF如何融入您的工作流程了吗? [下载免费 30 天试用版](trial-license to test every feature covered in this comparison.

[{i:(PDFsharp是其各自所有者的注册商标。 本网站与PDFsharp无关,未获得其认可或赞助。所有产品名称、徽标和品牌均为其各自所有者的财产。 比较仅用于信息目的,并反映撰写时可公开获得的信息。)]

常见问题解答

如何使用 PDFsharp 在 C# 中生成 PDF 文件?

要使用 PDFsharp 生成 PDF,您需要创建一个新的 PDF 文档,添加一页,并使用 XGraphics 对象绘制文本或图形。确保包括 PdfSharp.DrawingPdfSharp.Pdf 命名空间的使用语句。

PDFsharp 所需的基本 NuGet 包是什么?

为了高效地使用 PDFsharp,您需要安装以下 NuGet 包:PDFsharp、System.Drawing.Common 和 System.Text.Encoding.CodePages。这些包对于编码支持和正确生成 PDF 至关重要。

IronPDF 在 C# 中的 PDF 生成与 PDFsharp 的比较如何?

IronPDF 是一个商业库,提供高级功能,如 HTML 到 PDF 转换、数字签名和加密,这些功能在 PDFsharp 中不可用。它还提供更好的文档和专业支持,使其在复杂任务中更为用户友好。

using PDFsharp 进行 PDF 生成的限制是什么?

PDFsharp 不支持 HTML、CSS 或 JavaScript,这限制了其使用场景。对于复杂文件,它需要对编码设置和 Microsoft Office 插件有良好的理解,这使其相比 IronPDF 更不直观。

为什么 System.Text.Encoding.CodePages 包对 PDFsharp 很重要?

System.Text.Encoding.CodePages 包在使用 PDFsharp 生成 PDF 文件时提供必要的编码支持。如果没有正确安装和注册此包,您可能会遇到与编码相关的错误。

我可以使用免费的 C# 库将 HTML 转换为 PDF 吗?

不能,PDFsharp 不支持 HTML 到 PDF 转换。对于这样的功能,您需要像 IronPDF 这样的商业库,它提供此功能以及其他高级功能。

如何处理 PDFsharp 中的常见错误?

PDFsharp 中常见的错误常常是由于 NuGet 包设置不正确或编码问题导致的。确保所有必需的包,包括 System.Text.Encoding.CodePages,已正确安装和注册以解决这些问题。

为 C# 开发者提供的 IronPDF 提供哪些高级功能?

IronPDF 提供高级功能,如 HTML 到 PDF 转换、数字签名、加密以及处理 CSS 和 JavaScript 的能力。它还提供与 .NET 应用程序的集成和专业支持,使其成为开发人员的一款强大工具。

如何在 PDFsharp 中自定义 PDF 的文本布局?

using PDFsharp,您可以利用 XGraphics 类的 DrawString 方法在 PDF 中自定义文本布局。这允许您在指定的边界内设置字体、颜色和文本对齐等属性。

PDFsharp 适合在 C# 中创建复杂的 PDF 文档吗?

PDFsharp 可以创建复杂的 PDF 文档,但它需要对编码和 Microsoft Office 插件有扎实的理解。由于其更直观的 API 和附加功能,IronPDF 可能是复杂任务的更好选择。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我