zoukankan      html  css  js  c++  java
  • 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:WindowsFontssimsun.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 

    和其他调用模块

  • 相关阅读:
    MY_HOME
    跨站请求伪造CSRF防护方法
    python中的函数参数
    python 中的闭包
    append追加元素绑定事件无效的解决办法
    webservice练习(cxf,axis,httpclient)
    hibernate5 mysql写入中文乱码
    今天面试中遇到的几个sql查询问题
    Eclipse运行maven项目是出现-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.这种问题解决办法
    模拟博客园登录java实现
  • 原文地址:https://www.cnblogs.com/qiliping/p/10338710.html
Copyright © 2011-2022 走看看