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 ...
随机推荐
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_03-自定义查询页面-前端
下拉选择框 <!--查询表单--> <el-form :model="params"> <el-select v-model="params ...
- 关于Android Studio中Gradle的一些乱七八糟的问题
版本下载:https://gradle.org/releases/ 一个很详细的blog说明文:https://www.cnblogs.com/smyhvae/p/4390905.html,不贴具体内 ...
- webdriervAPI(CSS定位元素)
from selenium import webdriver driver = webdriver.Chorme() driver.get("http://www.baidu.co ...
- Android开发环境搭建(studio版)
1.下载安装JDK 网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
- gx_dlms 的杂乱记录
DLMS_ERROR_CODE_FALSE W3Jehpnc543MuwUz6ZWDshy5kwbbE9Cw CGXDLMSClient::GetData(CGXByteBuffer& rep ...
- 你必须知道的495个c语言问题(笔记)
1.1我该如何决定使用哪种整数类型? 用到较大的数用long:空间很重要(例如有很大的数组或很多的结构)用short:此外用int. win32: int 32bit 4byte char 8b ...
- poj 2362:square
题目大意:给你T组数据,每组数据有n个棍子,问你能不能用这些棍子拼成一个正方形(所有都要用上,而且不能截断棍子). Sample Input 34 1 1 1 15 10 20 30 40 508 1 ...
- mysql 触发器检测表数据添加,进而调用存储过程检测数据,进而调用存储过程添加数据
触发器: beginDECLARE user_mes INT(64);SELECT user_id into user_mes FROM order_orderlist where id = new. ...
- The timeout period elapsed prior to completion of the operation or the server is not responding.
问题:更新数据的状态值时,部分报出如下异常: 即时有成功更新,时有报错问题出现. 在LOG中发现成功更新的数据,存在更新时间过长问题,将近30秒(EF默认的CommandTimeout为30秒): 代 ...
- docker镜像内没有vim
问题: 我们在容器中找不到vim等命令 原因: 镜像制作的时候没把这些东西加进去 解决: 用apt update更新源之后再安装vim apt update apt-get install - ...