在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文件相关推荐

  1. 利用easypoi execl数据模板导出pdf文件

    1:首先整理出excel模板文件,格式如下 2:pom.xml文件中导入 <!--使用最新的版本即可 --><dependency><groupId>cn.afte ...

  2. aspose 转pdf表格大小乱了_java下用aspose.cell基于Excel模板导出PDF文件异常

    我用Spire.XLS for Java类库来进行Excel转PDF没出现这个问题呢,Excel表格过宽的话,导出来的PDF宽度也会相应变宽,同时还可进行页面大小设置.你可下载免费版试试.https: ...

  3. Java使用Freemarker通过模板文件导出PDF文件、横向显示

    前言: 尝试了不少通过模板文件导出pdf文件的方法,要么实现起来复杂,要么实现效果不理想,经过反复查找资料和尝试发现此方法是最理想的. 本博客又经大量网友实践及建议,经过几次完善修改,又日趋完善,在此 ...

  4. 标签制作软件中如何导出标签模板为PDF文件?

    最近小编遇到有些客户问在标签制作软件中设计好的标签模板,能不能导出PDF文件保存,小编的回答是当然可以,而且操作也是非常简单的,接下来小编给大家演示下是如何操作的. 首先在标签制作软件中新建一个标签, ...

  5. freemarker模板生成pdf文件

    文章目录 1.pom依赖 2.ftl模板以及宋体文件 2.1.文件路径 2.2.ftl文件模板(test.ftl) 3.controller生成pdf文件 1.pom依赖 <!--freemar ...

  6. freemarker 模板生成pdf文件并下载

    利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...

  7. 导出PDF文件中文显示不完整

    使用PDF模板导出PDF文件,导出内容里中文显示不完整,解决方法: 使用Adobe Acrobat DC工具,将PDF模板中表单的字体设置为Adobe 黑体 Std R即可.

  8. POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)

    POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...

  9. Java根据模板生成pdf文件并导出

    原文地址:http://blog.csdn.net/TOP__ONE/article/details/65442390 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf ...

  10. java根据模板生成pdf文件并导出(iText)

    java根据模板生成pdf文件并导出 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf格式文件 3.通过Adobe Acrobat pro软件打开刚刚用word转换成的 ...

最新文章

  1. HTML中nbsp; ensp; emsp; thinsp;等6种空白空格的区别
  2. Yii2 behavior运用
  3. 用Mysql网页式管理工具安全地访问数据库的方法
  4. 深度总结 | 多任务学习方法在推荐中的演变
  5. 两本好书可能改变的我一生——致出版社的一封信!
  6. 使用纯JavaScript实现全网页动态樱花飘落特效
  7. 最薄翻转笔记本 联想Yoga13-IFI 6700
  8. 简述完整的计算机组成部分组成部分组成,简述计算机系统的组成
  9. 使用pip报错:Could not fetch URL https://pypi.org/simple/selenium/: There was a problem confirming the ss
  10. Django 创建随机验证码
  11. 2.8 zio入门——标准ZIO服务
  12. visio图片导入word和PPT的最清晰的方式
  13. 美食杰项目 -- 菜品信息(五)
  14. C++学习(二零三)Quaro Geforce Tesla
  15. 【C语言程序】已知一个长方体的高,通过输入长方体的长和宽,计算出长方体的体积
  16. 有一种感觉叫清风细雨
  17. 卡诺图和Apple Watch的第一次亲密接触
  18. proe5.0管道管线设计教程
  19. 自动打开html链接,微信中打开链接,自动打开外部浏览器打开指定URL页面
  20. 福建省福州市谷歌卫星地图下载

热门文章

  1. vb.net的UI设计
  2. VB窗体控件设计登录注册页面
  3. matlab图像加椒盐噪声,用matlab给图像加高斯噪声和椒盐噪声(不调用imnoise函数)...
  4. 地理空间数据可视分析综述笔记
  5. 国土空间基础信息平台与时空大数据平台的区别
  6. 文后参考文献著录规则 GB/T 7714-2005
  7. 第七讲:工业网络——PST软件使用及web配置
  8. 美好消费品牌榜单TOP 5公布;迪卡侬集团正式宣布参展第四届进博会 | 美通企业日报...
  9. matlab里wblrnd函数,matlab随机函数
  10. 最新单片机毕业设计题目大全