Spire.PDF for .NET【文档操作】演示:动态创建 PDF 并将其发送到客户端浏览器

可移植文档格式 (PDF) 是 Adobe 制定的独立规范的固定版式文档。它封装了完整的描述,包括文本字体、图形和显示它所需的其他信息。

Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

E-iceblue功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

Spire.PDF for.net下载 Spire.PDF for java下载

动态创建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 文档中添加一个新页面

[C#]

复制代码
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#]

using System;

复制代码
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 文件并将其发送到客户端浏览器的屏幕截图

以上便是如何态创建 PDF 并将其发送到客户端浏览器,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

相关推荐
程序员三藏1 小时前
接口测试及常用接口测试工具总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
小二·3 小时前
Python Web 开发进阶实战 :AI 原生数字孪生 —— 在 Flask + Three.js 中构建物理世界实时仿真与优化平台
前端·人工智能·python
hmywillstronger3 小时前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python
dyyx1114 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
二十雨辰4 小时前
[python]-函数
开发语言·python
CryptoRzz4 小时前
如何高效接入日本股市实时数据?StockTV API 对接实战指南
java·python·kafka·区块链·状态模式·百度小程序
小二·4 小时前
Python Web 开发进阶实战(终章):从单体应用到 AI 原生生态 —— 45 篇技术演进全景与未来开发者生存指南
前端·人工智能·python
极客小云4 小时前
【基于 PyQt6 的红外与可见光图像配准工具开发实战】
c语言·python·yolo·目标检测
软件资深者6 小时前
全能图片缩略图显示工具,体积较大,直接显示AI,PSD,EPS,PDF,INDD,TIFF,CR2,RAW等格式缩略图的图像解码包
windows·microsoft·pdf·windows11·系统修复
0思必得07 小时前
[Web自动化] 处理爬虫异常
运维·爬虫·python·selenium·自动化·web自动化