这几天找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打印控件!的更多相关文章

  1. django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)

    from django.http import HttpResponse def download_file(request): # Text file #response = HttpRespons ...

  2. 使用jinja2模板引擎生成html文件

    使用jinja2模板引擎生成html文件 jinja2是纯Python的模板引擎,是仿照Django模板的Python模板语言. 它速度快,被广泛使用,提供了可选的沙箱模板执行环境保证安全. 使用pi ...

  3. java根据pdf模版动态生成pdf

    java根据pdf模版动态生成pdf package com.utils; import java.io.ByteArrayOutputStream; import java.io.File; imp ...

  4. ActiveX: 如何用.inf和.ocx文件生成cab文件

    ActiveX: 如何用.inf和.ocx文件生成cab文件  

  5. LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件

    参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 本示例演示如何使用 语言集成查询 (LINQ) 和 LINQ to XML 从逗号分隔 ...

  6. 由.def文件生成lib文件[转]

    最近在学习curl库时,碰到一个问题,从官网上下载了一个lib版的,却发现只有.dll,没有lib文件,感觉很奇怪,google了之后才知道,原来库作者的用意是让用户自己生成lib文件,下载到的lib ...

  7. ffmpeg文件生成m3u8文件及ts切片程序(一)

    ffmpeg文件生成m3u8文件及ts切片程序(一) 实现目标:输入本地文件,实现m3u8切片,功能点请看注释,注意:注释很重要. 参考: http://www.cnblogs.com/mystory ...

  8. FluentData-新型轻量级ORM 利用T4模板 批量生成多文件 实体和业务逻辑 代码

    FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.Model 利用T4模板,[MultipleOutputHelper.ttinclude]批量生成多文件 ...

  9. Java 编辑html模板并生成pdf

    1.工具类 import com.hujiang.project.zhgd.Util; import com.itextpdf.text.BaseColor; import com.itextpdf. ...

随机推荐

  1. oralce 存储过程、函数和触发器

    一.存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数.   创建存储过程 用CREATE PROCEDURE命令建立存储过程. 语法: create [or repl ...

  2. 本地Maven环境配置

    本地Maven环境配置 下载配置文件:http://10.1.10.138:6060/root/DevelopmentSpecification/archive/master.zip 解压master ...

  3. jDeveloper运行慢

    最近在使用 Jdeveloper 10.1.3.3 版本时发现速度奇慢无比,后经Google,发现如下解决方案:在 jdev.conf 文件的末尾加上如下两行,速度即可得到显著的提高. AddVMOp ...

  4. PAT 1062 最简分数(20)(代码+思路)

    1062 最简分数(20 分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N​1​​/M​1​​ 和 N ...

  5. 白盒静态自动化测试工具:FindBugs使用指南

    目 录     1     FINDBUGS介绍     2     在ECLIPSE中安装FINDBUGS插件     3     在ECLIPSE中使用FINDBUGS操作步骤     3.1   ...

  6. [SoapUI] How to create a random UUID in each Request's Headers

    ${=java.util.UUID.randomUUID()}  is OK

  7. 将C语言宏定义数值转换成字符串!

    将C语言宏定义转换成字符串! 摘自:https://blog.csdn.net/happen23/article/details/50602667 2016年01月28日 19:15:47 六个九十度 ...

  8. with as 创建临时表,解决union all多个时出现内存出错的问题

    with t(content_id, emp_id) as (VALUES('002', 416),('003', 416))SELECT * FROM t;

  9. 2018.09.15 poj1041John's trip(欧拉路输出方案)

    传送门 一个欧拉路输出方案的板子题. 竟然难在读入233. 代码: #include<iostream> #include<cstdio> #include<cstrin ...

  10. c++ => new/delete

    new的具体使用方式如下: 类型 *变量名 = new 类型; delete 变量 / delete[] 变量; 类型包括数组.结构体和类 数组申请动态内存后,要使用delete[]才能把内存清除干净 ...