C# PDF 填值 填充数据
看效果图
/// <summary>
/// 赛事结果PDF
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private static string PDFDownRunLoad(RunningModel model)
{
try
{
//BaseFont font = BaseFont.CreateFont(@"C:\Users\IT-016\Documents\Kitematic\jenkins\var\jenkins_home\war\css\font-awesome\fonts\fontawesome-webfont.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//获取PDF模板文件 string templateFile="";
if (model.MasterGroupType== "")
templateFile = AppDomain.CurrentDomain.BaseDirectory + @"PDF\Dom\e-Cert-V1-10K.pdf";
else
templateFile = AppDomain.CurrentDomain.BaseDirectory + @"PDF\Dom\e-Cert-V1-5K.pdf"; //输出生成的PDF文件
var fileName = @"PDF\" + model.RunId + "-" + model.AthleteNO + "_Run.pdf";
string tempPDF = AppDomain.CurrentDomain.BaseDirectory + fileName; PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(templateFile); //获取PDF文档第一页
PdfPageBase page = pdf.Pages[]; //添加文本水印到第一页,并设置格式
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height));
//brush.Graphics.SetTransparency(0.3f);
//brush.Graphics.Save();
//brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
//brush.Graphics.RotateTransform(-45);
//y 控制高度 增大下滑
//x 控制长度 增大右滑
Font font = new Font("华康俪粗黑", , FontStyle.Bold);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font, true); Font font2 = new Font("华康俪中黑", , FontStyle.Regular);
PdfTrueTypeFont trueTypeFont2 = new PdfTrueTypeFont(font, true); var run_Model = JsonConvert.DeserializeObject<ExcelModel>(model.SGL_Run_IPbusiness); brush.Graphics.DrawString(model.AENName, trueTypeFont, PdfBrushes.Black, , -, new PdfStringFormat(PdfTextAlignment.Center));
//brush.Graphics.DrawString(model.AthleteNO, new PdfFont(PdfFontFamily.Helvetica, 18), PdfBrushes.Black, 440, 208, new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.DrawString(model.AthleteNO, new PdfFont(PdfFontFamily.Helvetica, ), PdfBrushes.Black, +, +, new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.DrawString(run_Model.FinishTime, new PdfFont(PdfFontFamily.Helvetica, ), PdfBrushes.Black, +, +, new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.DrawString(run_Model.NetTime, new PdfFont(PdfFontFamily.Helvetica, ), PdfBrushes.Black, +, +, new PdfStringFormat(PdfTextAlignment.Center)); brush.Graphics.Restore();
brush.Graphics.SetTransparency();
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(, ), page.Canvas.ClientSize)); //保存文档
pdf.SaveToFile(tempPDF);
return @"\" + fileName;
}
catch (Exception ex)
{
return "";
}
}
具体代码如上图所示 下载DLL地址
http://note.youdao.com/noteshare?id=445c577476c7a69b3e87e121d538f6b8
C# PDF 填值 填充数据的更多相关文章
- (转)原始图像数据和PDF中的图像数据
比较原始图像数据和PDF中的图像数据,结果见表1.1.表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView.如果您有兴趣查 ...
- 任务型对话(一)—— NLU(意识识别和槽值填充)
1,概述 任务型对话系统越来越多的被应用到实际的场景中,例如siri,阿里小密这类的产品.通常任务型对话系统都是基于pipline的方式实现的,具体的流程图如下: 整个pipline由五个模块组成:语 ...
- 使用Python从PDF文件中提取数据
前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了 ...
- Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行
Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行 模版格式,图格式是最简单的格式,但实际效果不是这种,实际效果图如图2 图2 ,注意看红色部分,一对一是正常的,但是有一对多的订单 ...
- SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键
http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...
- array_fill 用给定的值填充数组
转自:http://www.phpstudy.net/php/165.html PHP array_fill 用给定的值填充数组 array_fill (PHP 4 >= 4.2.0, PHP ...
- 如何用Transformer+从PDF文档编辑数据
ABBYY PDF Transformer+是一款可创建.编辑.添加注释及将PDF文件转换为其他可编辑格式的通用工具,可使用该软件从PDF文档编辑机密信息,然后再发布它们,文本和图像均可编辑,本文将为 ...
- EffectiveC#6--区别值类型数据和引用类型数据
1. 设计一个类型时,选择struct或者class是件简单的小事情,但是,一但你的类型发生了改变, 对所有使用了该类型的用户进行更新却要付出(比设计时)多得多的工作. 2.值类型:无多态但性能佳. ...
- Laravel使用Seeder自动填充数据
要查看代码,可以点击 或者转到链接:https://github.com/laravel/framework Laravel自动填充数据使用的是Seeder类 <?php use Illumin ...
随机推荐
- PAT 甲级 1015 Reversible Primes (20 分) (进制转换和素数判断(错因为忘了=))
1015 Reversible Primes (20 分) A reversible prime in any number system is a prime whose "rever ...
- form表单Get方式提交时,action中带参数传递不了
<form action="getPostServlet/getPost.do?param4=param4" method="get"> <i ...
- How to Create and Use Facebook Messenger Codes (June 2019)
How to Create and Use Facebook Messenger Codes (June 2019) By Gerardo Salandra What is a Messenger ...
- 深入理解java:5. Java分布式架构
什么是分布式架构 分布式系统(distributed system)是建立在网络之上的软件系统. 内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统. 透明性是指每一个数据库分布节点对用户 ...
- jstack使用
top -p 22072 -H -p:查看某个进程 -H列出所有的线程 printf '%x' 22398 (16进制线程号) sudo -u tomcat jstack 22072 | grep ...
- 石子合并/能量项链【区间dp】
题目链接:http://www.51mxd.cn/problem.php-pid=737.htm 题目大意:给出n个石子堆以及这n个石子堆中石子数目,每次操作合并两个相邻的石子堆,代价为两个石子堆数目 ...
- 0《STL源码剖析》简介
STL源码剖析 ----侯捷 STL主要包括六个组件: 1.配置器:负责空间配置和管理. 2.迭代器:扮演容器和算法之前的胶合剂,所谓“泛型指针”. 3.容器:各种数据结构,如vector,list, ...
- poj3304(叉积判断直线和线段相交)
题目链接:https://vjudge.net/problem/POJ-3304 题意:求是否能找到一条直线,使得n条线段在该直线的投影有公共点. 思路: 如果存在这样的直线,那么在公共投影点作直线的 ...
- Linux IO模式以及select poll epoll详解
一 背景 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network ...
- 最新精仿Chinaz中国站长网整站源码带全部数据带采集功能
用范围: 站长网源码演示地址:php源码运行环境: phpChinaz站长网对于广大站长来说,是不会陌生的,现在几乎成为了每个站长都必须上的网站了.这次分享的是Chinaz站长网的源码,包含了chi ...

