• 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。

    spire.pdf

    对于任务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);
    }
    }
    }
    

    最后,你可以运行它,并得到如下结果:

    spire.pdf

    动态创建 PDF 并将其发送到客户端浏览器的屏幕截图

    spire.pdf

    加载现有 PDF 文件并将其发送到客户端浏览器的屏幕截图

    spire.pdf

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

  • 相关阅读:
    WPF - Grid(网格)布局详细介绍
    python 注解, 装饰器@ 详解
    动态规划之状态压缩
    【elasticsearch】使用自建证书搭建elasticsearch8.0.1集群
    CentOS7配置NFS服务并设置客户端自动挂载
    Linux 忘记密码解决方法
    医学影像 DICOM转NIFTI(.dcm 到 .nii)
    二十九.国民技术MCU开发之ADC应用案例 --可天士红外PSD测距获取
    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据
    day4作业
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/137958075