个人百度云链接c#pdf填充
客户(猎头)需要开发一个新功能为: 在一个文本框中输入一些offer的基本信息,然后点击转换,直接生成一份pdf,旁边有一个发送按钮,直接发给相关候选人此offer信息。
这边客户先给了一份word文档,里面标注了些注意事项。
1、 首先是借助工具将word转换成pdf,注意将要填的信息留好适当的间距。
下面推荐一个比较好的文档转换网站,而且大部分免费:
https://app.xunjiepdf.com/word2pdf
2、 将生成好的 pdf文件制作成模板,可以通过c#往里面填充数据。具体操作如下:
进入下面的网址
https://www.pdfescape.com/account/?expired
上传相应的文件
点击左上角的表格区域
画出这样的形状,注意自己留好间距,右键图中绿色的部分,选择下拉项中第三个,添加表格信息,
其中Name类似于id,用于c#为其绑定数据,下面是只读,为其设置max-length,再将文字居中即可
,最后将其导出,放到相应的项目路径中
3、c#读取pdf模板,并向其中填写数据
添加引用:
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;//操作pdf需要
using System.Web;
定义全局,用来读取文件
System.Web.HttpServerUtility server = System.Web.HttpContext.Current.Server;
创建方法:
public void ZhuanPDF(HttpContext context){
//模板的路径
string mubanName = server.MapPath("../DataUploadFiles\\ xxx.pdf");
//这边是你生成文件所存放的路径,其中pdf名可自行更改
string Savepath = server.MapPath("~/DataUploadFiles\\pdf\\xx.pdf")
//创建对象
iTextSharp.text.pdf.PdfDocument document =
new iTextSharp.text.pdf.PdfDocument();
//读取pdf
iTextSharp.text.pdf.PdfReader pdfReader
= new iTextSharp.text.pdf.PdfReader(mubanName);
//创建模型
//注意:filestream中第一个参数为你的保存路径,第二个FileMode.OpenCreate
//的意思是,查看参数1的路径是否存在,不存在则创建
PdfStamper pdfStamper = new
PdfStamper(pdfReader, new FileStream(Savepath, FileMode.OpenOrCreate));
AcroFields pdfFormFields = pdfStamper.AcroFields;
pdfStamper.FormFlattening = true;
BaseFont simheiBase = BaseFont.CreateFont(@"C:\Windows\Fonts\simhei.ttf",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
pdfFormFields.AddSubstitutionFont(simheiBase);
pdfStamper.AcroFields.SetField("pdf模板中对应的name", Name);
pdfStamper.AcroFields.SetField("pdf模板中对应的name", Position);
//关闭
pdfStamper.Close();
pdfReader.Close();
}