因接口生成Pdf推送, 工做須要進行Pdf生成,但網上生成Pdf的文檔好少:工具
1.生成Pdf須要文件路徑/內容 均可以配置字體
2.使用組件 itextsharp.dll 本人用版本:v2.0.50727orm
3.保存路徑,本模塊 實現備份和轉移上傳xml
貼核心代碼以下:對象
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 按照頁面寫入等。blog
本文章爲工做之中 2分鐘筆記。接口
附錄:文檔
ConfigParmater.cs 字符串
XmlUtil.cs string
和其餘調用模塊