zoukankan      html  css  js  c++  java
  • 在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

    这几天找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:WindowsFontssimsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                //读取模板文件
                PdfReader reader = new PdfReader(@"C:UserskismeOneDrivepdfmoban.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打印的脚本,搞定!

  • 相关阅读:
    一个asp判断某天是星期几的东东
    Android之APK文件签名——keytool和jarsigner
    java中判断socket服务器端是否断开连接
    Windows mobile和 symbian平台下rtsp流媒体播放器开发
    Android开发指南框架主题意图和意图过滤器
    Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
    PhoneGap移动开发框架
    Android通讯录查询篇ContactsContract.Data 二
    ECLIPSE中SVN客户端(subclipse)的安装和配置
    Phonegap:快速开发跨平台HTML5应用的胶水层
  • 原文地址:https://www.cnblogs.com/kismet82/p/7607147.html
Copyright © 2011-2022 走看看