PdfSharp -- 根据PDF模板导出PDF

PdfSharp:v1.50.5147,.NET Framework:v4.5.1


 一、PDF模板

在开始前,我觉得有必要简单说一下PDF模板

制作PDF模板的工具有很多,随便找一款就行(我这里用迅捷PDF编辑器免费试用版,带水印)

添加文本(字段名)

1、选择工具栏 添加

2、选择 添加文本工具

3、在拖出来的类似文本框的东西里面输入文本即可

表单制作

1、选择工具栏上的编辑表单

2、选择要添加的表单控件(文本框、单选框、多选框和下拉列表等)

3、选择属性

4、在属性面板输入域名(控件名,在代码里面根据这个写入文本)

这样一个可在代码中写入文本的控件就做好了

其他的以此类推,就不一一说明了

很多东西都在属性面板里面,找找就有

大概出来一个这个模样的模板

二、导出PDF

导入PdfSharp,用NuGget就行

代码很简单,就是根据给出的PDF路径初始化PdfSharp.Pdf.PdfDocument

然后拿到他的Form(PdfSharp.Pdf.AcroForms.PdfAcroForm)

根据字段名实例化一个字段,给他赋值就可以了

可以在form.Fields.Names找到PDF里面的所有控件的字段名

代码如下

using System;
using System.IO;

namespace PrintPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            string templateFilePath = @"E:\TestData\t\Temp211014.pdf";

            PdfSharp.Pdf.PdfDocument doc = PdfSharp.Pdf.IO.PdfReader.Open(templateFilePath, PdfSharp.Pdf.IO.PdfDocumentOpenMode.Modify);
            PdfSharp.Pdf.AcroForms.PdfAcroForm form = doc.AcroForm;

            if (form.Elements.ContainsKey("/NeedAppearances"))
            {
                form.Elements["/NeedAppearances"] = new PdfSharp.Pdf.PdfBoolean(true);
            }
            else
            {
                form.Elements.Add("/NeedAppearances", new PdfSharp.Pdf.PdfBoolean(true));
            }

            PdfSharp.Pdf.AcroForms.PdfTextField txtName = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtName"]);
            txtName.Value = new PdfSharp.Pdf.PdfString("郑小晨");
            PdfSharp.Pdf.AcroForms.PdfTextField txtAge = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtAge"]);
            txtAge.Value = new PdfSharp.Pdf.PdfString("18");
            PdfSharp.Pdf.AcroForms.PdfTextField txtAddress = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtAddress"]);
            txtAddress.Value = new PdfSharp.Pdf.PdfString("广州市天河区xx村1001号");
            PdfSharp.Pdf.AcroForms.PdfTextField txtEmail = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtEmail"]);
            txtEmail.Value = new PdfSharp.Pdf.PdfString("zxc@163.com");
            PdfSharp.Pdf.AcroForms.PdfTextField txtMobile = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtMobile"]);
            txtMobile.Value = new PdfSharp.Pdf.PdfString("13888888888");
            PdfSharp.Pdf.AcroForms.PdfCheckBoxField cbxMan = (PdfSharp.Pdf.AcroForms.PdfCheckBoxField)(form.Fields["cbxMan"]);
            cbxMan.Checked = true;

            doc.Save(@"E:\TestData\t\s" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf");

            //byte[] fileContents = null;
            //using (MemoryStream stream = new MemoryStream())
            //{
            //    doc.Save(stream, true);
            //    fileContents = stream.ToArray();
            //}
        }
    }
}

 打印出来的PDF

在WPS打开PDF


PDFsharp Samples - PDFsharp and MigraDoc Wikihttp://www.pdfsharp.net/wiki/PDFsharpSamples.ashx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值