因接口生成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 

和其他调用模块

 

版权声明:本文为qiliping原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qiliping/p/10338710.html