Crystal Reports - 根据模板导出PDF文件
在NuGet添加下面几个包:
前面5个是Crystal Reports在.Net环境下操作的程序包,第6个是生成PDF的包。
1 | CrystalDecisions.CrystalReports.Engine |
2 | CrystalDecisions.ReportSource |
3 | CrystalDecisions.Shared |
4 | CrystalReports.ReportAppServer.CommLayer |
5 | CrystalReports.ReportAppServer.CommonObjectModel |
6 | PDFsharp |
代码也很简单,就是用ReportDocument打开Crystal Reports模板 → 然后连接数据库把数据装进去 → 导出PDF。
具体代码如下,每个步骤都有说明,相应的参数改成你的就可以了。
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;
using System;namespace ConsoleApp1
{class Program{static void Main(string[] args){string path = @"C:\Template\Temp2021-5.rpt";using (ReportDocument reportDocument = new ReportDocument()){//根据路径加载模板reportDocument.Load(path);//写入Crystal Reports模板所需参数reportDocument.SetParameterValue("Id", 101);//创建数据库连接对象ConnectionInfo connectInfo = new ConnectionInfo(){ServerName = "10.10.10.10",DatabaseName = "DBTest",UserID = "sa",Password = "abc123"};//登录到数据库reportDocument.SetDatabaseLogon(connectInfo.UserID, connectInfo.Password);foreach (Table tbl in reportDocument.Database.Tables){tbl.LogOnInfo.ConnectionInfo = connectInfo;tbl.ApplyLogOnInfo(tbl.LogOnInfo);}//导出数据System.IO.Stream stream = reportDocument.ExportToStream(ExportFormatType.PortableDocFormat);byte[] bytes = new byte[stream.Length];stream.Read(bytes, 0, bytes.Length);stream.Seek(0, System.IO.SeekOrigin.Begin);//把数据装到PDFPdfDocument document = PdfReader.Open(stream);PdfSecuritySettings securitySettings = document.SecuritySettings;securitySettings.UserPassword = "user";securitySettings.OwnerPassword = "owner";securitySettings.PermitAccessibilityExtractContent = false;securitySettings.PermitAnnotations = false;securitySettings.PermitAssembleDocument = false;securitySettings.PermitExtractContent = false;securitySettings.PermitFormsFill = true;securitySettings.PermitFullQualityPrint = false;securitySettings.PermitModifyDocument = true;securitySettings.PermitPrint = false;//保存文件string savePath = @"C:\test file\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf";document.Save(savePath);document.Close();}}}
}
有一点,如果你报错了,说找不到某个版本的程序集,可能是你引用的跟实际的包的版本不一致,在引用里面删掉,然后再添加你实际用的包就行了。
Could not load file or assembly 'CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.'
Crystal Reports - 根据模板导出PDF文件相关推荐
- 利用easypoi execl数据模板导出pdf文件
1:首先整理出excel模板文件,格式如下 2:pom.xml文件中导入 <!--使用最新的版本即可 --><dependency><groupId>cn.afte ...
- aspose 转pdf表格大小乱了_java下用aspose.cell基于Excel模板导出PDF文件异常
我用Spire.XLS for Java类库来进行Excel转PDF没出现这个问题呢,Excel表格过宽的话,导出来的PDF宽度也会相应变宽,同时还可进行页面大小设置.你可下载免费版试试.https: ...
- Java使用Freemarker通过模板文件导出PDF文件、横向显示
前言: 尝试了不少通过模板文件导出pdf文件的方法,要么实现起来复杂,要么实现效果不理想,经过反复查找资料和尝试发现此方法是最理想的. 本博客又经大量网友实践及建议,经过几次完善修改,又日趋完善,在此 ...
- 标签制作软件中如何导出标签模板为PDF文件?
最近小编遇到有些客户问在标签制作软件中设计好的标签模板,能不能导出PDF文件保存,小编的回答是当然可以,而且操作也是非常简单的,接下来小编给大家演示下是如何操作的. 首先在标签制作软件中新建一个标签, ...
- freemarker模板生成pdf文件
文章目录 1.pom依赖 2.ftl模板以及宋体文件 2.1.文件路径 2.2.ftl文件模板(test.ftl) 3.controller生成pdf文件 1.pom依赖 <!--freemar ...
- freemarker 模板生成pdf文件并下载
利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...
- 导出PDF文件中文显示不完整
使用PDF模板导出PDF文件,导出内容里中文显示不完整,解决方法: 使用Adobe Acrobat DC工具,将PDF模板中表单的字体设置为Adobe 黑体 Std R即可.
- POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...
- Java根据模板生成pdf文件并导出
原文地址:http://blog.csdn.net/TOP__ONE/article/details/65442390 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf ...
- java根据模板生成pdf文件并导出(iText)
java根据模板生成pdf文件并导出 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf格式文件 3.通过Adobe Acrobat pro软件打开刚刚用word转换成的 ...
最新文章
- HTML中nbsp; ensp; emsp; thinsp;等6种空白空格的区别
- Yii2 behavior运用
- 用Mysql网页式管理工具安全地访问数据库的方法
- 深度总结 | 多任务学习方法在推荐中的演变
- 两本好书可能改变的我一生——致出版社的一封信!
- 使用纯JavaScript实现全网页动态樱花飘落特效
- 最薄翻转笔记本 联想Yoga13-IFI 6700
- 简述完整的计算机组成部分组成部分组成,简述计算机系统的组成
- 使用pip报错:Could not fetch URL https://pypi.org/simple/selenium/: There was a problem confirming the ss
- Django 创建随机验证码
- 2.8 zio入门——标准ZIO服务
- visio图片导入word和PPT的最清晰的方式
- 美食杰项目 -- 菜品信息(五)
- C++学习(二零三)Quaro Geforce Tesla
- 【C语言程序】已知一个长方体的高,通过输入长方体的长和宽,计算出长方体的体积
- 有一种感觉叫清风细雨
- 卡诺图和Apple Watch的第一次亲密接触
- proe5.0管道管线设计教程
- 自动打开html链接,微信中打开链接,自动打开外部浏览器打开指定URL页面
- 福建省福州市谷歌卫星地图下载
热门文章
- vb.net的UI设计
- VB窗体控件设计登录注册页面
- matlab图像加椒盐噪声,用matlab给图像加高斯噪声和椒盐噪声(不调用imnoise函数)...
- 地理空间数据可视分析综述笔记
- 国土空间基础信息平台与时空大数据平台的区别
- 文后参考文献著录规则 GB/T 7714-2005
- 第七讲:工业网络——PST软件使用及web配置
- 美好消费品牌榜单TOP 5公布;迪卡侬集团正式宣布参展第四届进博会 | 美通企业日报...
- matlab里wblrnd函数,matlab随机函数
- 最新单片机毕业设计题目大全