1. 程式人生 > >在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

cnblogs bat dex make io流 控件 文本框 找到 public

這幾天找WEB打印控件,要麽收費的,要麽免費的只能在IE裏用!

我只想簡單的打個標簽紙!百度2天,看到一老兄說可以用PDF,然後又開始百度..找到了一篇文章

http://www.jianshu.com/p/d518d0988621 本文代碼全部摘抄至這篇文章,發文只為記錄!

不同的是我導入的庫是iTextSharp.LGPLv2.Core.Fix

開始

一.先用word制作好模板文件,標簽打印的話註意頁邊距,然後另存為PDF格式文件

二.然後下載adobe acrobat pro,創建時選擇pdf表單,並設置好相應key名字

技術分享

然後就是代碼

public FileResult Index()
        {
            //獲取中文字體,第三個參數表示為是否潛入字體,但只要是編碼字體就都會嵌入。
            BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //讀取模板文件
            PdfReader reader = new PdfReader(@"C:\Users\kisme\OneDrive\pdfmoban.pdf");

            //創建文件流用來保存填充模板後的文件
            System.IO.MemoryStream stream = new System.IO.MemoryStream();

            PdfStamper stamp = new PdfStamper(reader, stream);
            //設置表單字體,在高版本有用,高版本加入這句話就不會插入字體,低版本無用
            //stamp.AcroFields.AddSubstitutionFont(baseFont);

            AcroFields form = stamp.AcroFields;

            //表單文本框是否鎖定
            stamp.FormFlattening = true;

            Dictionary<string, string> para = new Dictionary<string, string>();
            para.Add("username", "國科");
            para.Add("usertel","133333333");
            para.Add("workservice", "電腦開不機,可能是電源問題,維修前報價(主機缺側蓋,有重要資料,不能重裝)");
            para.Add("maketime", "2017年12月11日 12:24");
            para.Add("recvicename", "某某某");
            para.Add("workername", "某某某");
            para.Add("weixinpic", "");

            //填充表單,para為表單的一個(屬性-值)字典
            foreach (KeyValuePair<string, string> parameter in para)
            {
                //要輸入中文就要設置域的字體;
                form.SetFieldProperty(parameter.Key, "textfont", baseFont, null);
                //為需要賦值的域設置值;
                form.SetField(parameter.Key, parameter.Value);
            }
     
            //按順序關閉io流

            stamp.Close();
            reader.Close();
            //生成文件
            FileResult fileResult = new FileContentResult(stream.ToArray(), "application/pdf");
            //fileResult.FileDownloadName = "4.pdf";
            return fileResult;
        }

  

技術分享

然後百度一個Jquery PDF打印的腳本,搞定!

在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!