使用 ASP.NET 动态创建 PDF 并将其发送至客户端浏览器
Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。
行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。
欢迎加入spire技术交流群:767755948
关于 PDF便携式文档格式(PDF)是由 Adobe 公司独立规范的一种固定版面文档。它封装了完整的描述,包括文本字体、图形和其他显示所需的信息。
动态创建 PDF 并将其发送到客户端浏览器
要动态生成 PDF 文件并将其发送到客户端浏览器,可以使用 Spire.PDF for .NET 来完成这项任务。此外,Spire.PDF 还支持加载现有 PDF 文件并将
发送到客户端浏览器。在这篇技术文章中,我们将结合这两个功能,全面介绍 Spire.PDF 是如何工作的。以下是这两项任务:
- 任务 1 动态创建 PDF 并将其发送到客户端浏览器。
- 任务 2 加载现有 PDF 文件并将其发送到客户端浏览器(这是 Spire.PDF for .NET 的附加功能)
首先创建一个 Asp.net 应用程序并添加 Spire.PDF.dll 程序集。您可以在 VS 的 Aspx 页面上添加两个按钮。将其中一个指定为任务 1,另一个指定为任务 2。
在任务 1 中,首先需要启动 Spire.PdfDocument 对象
[C#]
PdfDocument doc = new PdfDocument();并在此新 PDF 文档中添加新页面
PdfPageBase page = newDoc.Pages.Add();请注意,在此 pdf 页面绘制字符串时需要相关的辅助对象。
[C#]
string message = "Hello world!"; PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 13f); PdfBrush brush = PdfBrushes.Red; PointF location = new PointF(20, 20);然后,你可以在 pdf 页面中画一个字符串,类似于这样:
[C#]
page.Canvas.DrawString(message, font, brush, location);最后,你就可以在客户端浏览器中打开新生成的 PDF 文档了:
[C#]
newDoc.SaveToHttpResponse("sample.pdf",HttpContext.Current.Response, HttpReadType.Open);说到任务 2,3 行代码就可以直接解决。
启动 Spire.PdfDocument 对象
[C#]
pdfDocument doc = new PdfDocument();加载 pdf 文件
[C#]
doc.LoadFromFile(this.Server.MapPath("/sample.pdf"));加载 PDF 文档,然后将其作为附件发送到客户端浏览器。
[C#]
doc.SaveToHttpResponse("sample.pdf", this.Response, HttpReadType.Save);综上所述,以下是这两项任务所需的完整代码片段:
[C#]
C# using System; using System.Collections.Generic; using System.Drawing; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Spire.Pdf; using Spire.Pdf.Graphics; namespace SendPdfToWebBrowser { public partial class WebForm_SendPdf : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } // load a pdf document ,after that ,send it to client browser as an attachment protected void btnClientSavePdf_Click(object sender,EventArgs e) { // initiated an object of Spire.PdfDocument PdfDocument doc = new PdfDocument(); // Load a pdf file doc.LoadFromFile(this.Server.MapPath("/sample.pdf")); // send the pdf document to client browser as an attachment doc.SaveToHttpResponse("sample.pdf",this.Response, HttpReadType.Save); } // Create an pdf document ,then open it in the client browser protected void btnClientOpenPdf_Click(object sender, EventArgs e) { // Initiate an object of Spire.PdfDocument PdfDocument newDoc = new PdfDocument(); // Add a new page in this newly created pdf file PdfPageBase page = newDoc.Pages.Add(); string message = "Hello world!” ; PdfFont font = new PdfFont(PdfFontFamily.Helvetica,13f); PdfBrush brush = PdfBrushes.Red; PointF location = new PointF(20, 20); // Draw a string with designated brush, a font, position in pdf page page.Canvas.DrawString(message, font, brush, location); //To open this pdf document in client browser. newDoc.SaveToHttpResponse("sample.pdf",HttpContext.Current.Response, HttpReadType.Open); } } }最后,你可以运行它,得到这样的结果:
动态创建 PDF 并将其发送到客户端浏览器的截图:
加载现有 PDF 文件并将其发送至客户端浏览器的截图: