产品比较 如何在 C# (.NET 5) 中使用 PDFSharp 生成 PDF Curtis Chau 已更新:八月 20, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 该视频是一个关于如何使用 PDFsharp 库通过 C# 代码生成 PDF 文件的指导教程。 演讲者首先介绍了PDFsharp,这是一个生成PDF文件的棘手但有效的库。 该库具有高级功能,与许多竞争者不同,它完全免费。 演讲者强调,尽管复杂,PDFsharp是使用C#生成PDF文件的绝佳选择。 为了开始教程,演讲者展示了一个生成的PDF文件示例,该文件由三行文本组成。 第一行文本并不完全位于最前面,而第三行文本则出现在底部右角。 演讲者指出,当深入了解代码时,文本的顺序将显得合理。 他们还解释说,他们将使用.NET 5来演示PDFsharp的工作原理。 安装和设置 在进入代码之前,演讲者强调为PDFsharp设置环境可能相当具有挑战性。 他们解释说,在使用PDFsharp NuGet包详情之前,必须安装三个NuGet包。 第一个包是PDFsharp本身,可能会产生一个警告,即由于其版本较旧,它可能与.NET不匹配。 另外两个包是System.Drawing.Common和System.Text.Encoding.CodePages。 演讲者强调,必须安装所有三个包才能使用PDFsharp,否则代码会抛出错误。 他们解释说,System.Text.Encoding.CodePages包特别重要,因为它提供了生成PDF文件所需的编码支持。 演讲者还指出,如果没有正确安装这些包,可能很难解决问题。 安装相关库 为了使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文件的代码可以调整以包含更复杂的功能,例如添加图像、表格和图表。 他们还解释说,PDFsharp提供了各种用于字体的功能,包括在PDF文件中嵌入字体。 演讲者解释了通过安装必要的NuGet包并为System.Text.Encoding注册提供者来正确设置环境的重要性。 他们还展示了一个使用PDFsharp生成PDF文件并演示如何调整代码以包含更复杂功能的简单控制台应用程序。 该视频是任何对使用C#和PDFsharp生成PDF文件感兴趣的人的绝佳资源。 创建列表和更复杂的项目 在视频的第二部分,演讲者首先介绍了创建PDF文档的更复杂的示例。 他强调拥有一个空的PDF文档是毫无意义的,并接着解释如何使用PDFSharp库创建一个新页面。 他指出,该过程类似于在Excel或PowerPoint插件中创建东西,并且一旦页面创建,就可以使用一个引用,而不需要调用另一个方法。 演讲者接着介绍了XGraphics变量,该变量提供了绘制文本、线条和值得等的各种方法。 还介绍了XFont变量,用于在PDF文档中设置字体。 演讲者指出,字体可以在其他地方生成,但如果有更复杂的安排,将其全局设置是很有用的。 接下来,演讲者讨论了DrawString方法,该方法用于将文本写入PDF文件中。 他注意到该方法复杂的部分是确定文本将绘制的位置,并解释涉及的各种参数,例如字体、颜色以及文本可能对齐的边界。 他还解释了使用XBrushes变量来设置文本颜色。 解释DrawString和其他方法 演讲者接着展示了使用不同参数的DrawString方法的多个示例,例如在中心对齐文本、在底部左侧对齐文本以及指定文本放置的具体坐标。 他指出,最后一种选择是最具可自定义性,并提供了很大的灵活性。 演讲者解释如何使用C#编程语言中的图形功能创建表格。 他们介绍如何插入图像、字符串和线条,并如何使用图形功能绘制弧线和条形码。 他们还解释了在使用坐标时尝试和错误的重要性,以及如何画线来分割行。 演讲者还讨论了表头以及为值和线条设置起点的必要性。 他们解释了如何调整y位置和添加记录行,以及当表格超出一定数量的记录时,如何移动到另一页。 最后,他们提到为每个页面重置值的重要性。 结论 总之,演讲者强调在使用PDFSharp时熟悉Microsoft Office插件的重要性,并提供了他自己的关于该主题的课程。 他还指出,该库具有很高的灵活性,可用于创建各种PDF文档,从简单的文本文档到具有图像、图形和自定义布局的更复杂的文档。 IronPDF:一个C# PDF库 IronPDF是一个用于创建、编辑和操作PDF文档的C# PDF库。 它旨在易于使用,并与.NET应用程序无缝集成。 与PDF Sharp相比,IronPDF提供了几个优势。 首先,它是一个商业产品,提供专业支持,而PDF Sharp没有。此外,IronPDF拥有更好的文档和更直观的API,使开发者更容易入门并使用该库。 此外,IronPDF具有更丰富的功能集,包括高级PDF创建选项以及与HTML、CSS和JavaScript协同工作的支持。 功能特性 功能 IronPDF PDFSharp 将HTML转换为PDF 有 没有 专业支持 有 没有 HTML、CSS和JavaScript支持 有 没有 数字签名 有 没有 加密 有 没有 One of the key features ofIronPDFis its ability to convert HTML to PDF using IronPDF, making it easy to create PDF documents from web pages. 此功能在PDF Sharp中不可用,这限制了其使用场景。 IronPDF还支持数字签名和加密,对于需要安全处理的敏感文档至关重要。 此功能在PDF Sharp中不可用。 IronPDF是一个比PDF Sharp更强大和用户友好的PDF库,具有额外的功能和更好的支持选项。 然而,它也是一个商业产品,因此对于寻找免费或开源解决方案的开发者可能不是最佳选择。 [{i:(PDFsharp是其各自所有者的注册商标。 本网站与PDFsharp无关,未获得其认可或赞助。所有产品名称、徽标和品牌均为其各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。] 常见问题解答 如何使用 PDFsharp 在 C# 中生成 PDF 文件? 要使用 PDFsharp 生成 PDF,您需要创建一个新的 PDF 文档,添加一页,并使用 XGraphics 对象绘制文本或图形。确保包括 PdfSharp.Drawing 和 PdfSharp.Pdf 命名空间的使用语句。 PDFsharp 所需的基本 NuGet 包是什么? 为了高效地使用 PDFsharp,您需要安装以下 NuGet 包:PDFsharp、System.Drawing.Common 和 System.Text.Encoding.CodePages。这些包对于编码支持和正确生成 PDF 至关重要。 IronPDF 在 C# 中的 PDF 生成与 PDFsharp 的比较如何? IronPDF 是一个商业库,提供高级功能,如 HTML 到 PDF 转换、数字签名和加密,这些功能在 PDFsharp 中不可用。它还提供更好的文档和专业支持,使其在复杂任务中更为用户友好。 使用 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 的文本布局? 使用 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 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十一月 13, 2025 比较 C# HTML 到 PDF 开源与 IronPDF 比较开源 HTML 到 PDF 库与 IronPDF for C#。发现哪个解决方案为您的 .NET 项目提供最佳的 PDF 生成能力。 阅读更多 已发布十月 27, 2025 哪种 ASP.NET Core PDF 库性价比最高? 发现适合ASP.NET Core应用程序的最佳PDF库。比较IronPDF的Chrome引擎与Aspose和Syncfusion的替代品。 阅读更多 已发布十月 27, 2025 如何使用 Aspose C# 与 IronPDF 创作 PDF 通过此逐步指南,学习如何使用 Aspose C# 与 IronPDF 创建 PDF,专为开发人员设计。 阅读更多 什么是iText?(使用IronPDF的C#和Java PDF库替代方案)Windows上的Wkhtmltopdf与IronPDF...
已发布十一月 13, 2025 比较 C# HTML 到 PDF 开源与 IronPDF 比较开源 HTML 到 PDF 库与 IronPDF for C#。发现哪个解决方案为您的 .NET 项目提供最佳的 PDF 生成能力。 阅读更多
已发布十月 27, 2025 哪种 ASP.NET Core PDF 库性价比最高? 发现适合ASP.NET Core应用程序的最佳PDF库。比较IronPDF的Chrome引擎与Aspose和Syncfusion的替代品。 阅读更多
已发布十月 27, 2025 如何使用 Aspose C# 与 IronPDF 创作 PDF 通过此逐步指南,学习如何使用 Aspose C# 与 IronPDF 创建 PDF,专为开发人员设计。 阅读更多