C#生成PDF2019
因接口生成Pdf推送, 工作需要进行Pdf生成,但网上生成Pdf的文档好少:
1.生成Pdf需要文件路径/内容 都可以配置
2.使用组件 itextsharp.dll 本人用版本:v2.0.50727
3.保存路径,本模块 实现备份和转移上传
贴核心代码如下:
public class PdfHelper { /// <summary> /// 根据传入XML文件创建Pdf文件 /// 一张单据对应一个pdf文件,A4纸张大小,文件格式UTF-8格式。 /// </summary> /// <param name="xmlStr">xml字符串</param> /// <param name="filePath">生成Pdf的文件名称</param> public static void CreatePdf(string inXML, string filePath, string logName, out string vsErr) { vsErr = string.Empty; try { FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write); Document docPDF = new Document(); //创建一个pdf文档的对象 IODirFolder(Path.GetDirectoryName(filePath), logName, out vsErr); PdfWriter write = PdfWriter.GetInstance(docPDF, fs);//创建一个写入PDF的对象 BaseFont bsFont = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font font = new Font(bsFont); //在这里需要注意的是,itextsharp不支持中文字符,想要显示中文字符的话需要自己设置字体 docPDF.Open(); //打开 docPDF.Add(new Paragraph(inXML, font));//将XML写入PDF中 docPDF.Close(); //关闭 } catch (Exception ex) { logCom.WriteFile(string.Format("CreatePdf=>{0}", ex.ToString()), logName, out vsErr); } } /// <summary> /// 输入输出验证IO 文件夹 /// </summary> /// <param name="folderPath"></param> public static void IODirFolder(string folderPath, string logName, out string vsErr) { vsErr = string.Empty; try { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } } catch (Exception ex) { LogCom.WriteFile(string.Format("IODirFolder=>{0}", ex.ToString()), logName, out vsErr); } }
}
拓展:通过以上可以制作类似好多小工具,如读取,写入 合并Pdf 按照页面写入等。
本文章为工作之中 2分钟笔记。
附录:
ConfigParmater.cs
XmlUtil.cs
和其他调用模块