当前位置: 首页 > news >正文

JasperReport生成PDF/A类型文档

当JasperReport导出的文档为PDF/A模式时,该PDF为只读可以防止被修改。

  1. 设置导出参数
JRPdfExporter exporter = new JRPdfExporter();exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints));exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(filePath));// 设置支持SVG显示// SimplePdfReportConfiguration pdfReportConfiguration = new SimplePdfReportConfiguration();// pdfReportConfiguration.setForceSvgShapes(true);// exporter.setConfiguration(pdfReportConfiguration);// 配置 PDF 属性SimplePdfExporterConfiguration exportConfig = new SimplePdfExporterConfiguration();exportConfig.setPdfVersion(PdfVersionEnum.VERSION_1_7);exportConfig.setPdfaConformance(PdfaConformanceEnum.PDFA_1A); //高级配置:PDF/X-1a:2001exportConfig.setIccProfilePath("D:/CNFRD2.ICC");exportConfig.setMetadataAuthor("作者姓名");exportConfig.setMetadataCreator("创建者姓名");exportConfig.setMetadataTitle("PDF 标题");exportConfig.setMetadataSubject("PDF 主题");exportConfig.setMetadataKeywords("关键字1, 关键字2");exporter.setConfiguration(exportConfig);exporter.exportReport();

其中ICC文件可以在Windows系统找到对应的内容,具体路径在C:\Windows\System32\spool\drivers\color里面。

  1. 定义导出字体

创建jasperreports_extension.properties文件在resources目录下:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.fonts=jasperreport/fonts/fonts.xml

其中fonts.xml文件内容如下所示

<?xml version="1.0" encoding="UTF-8"?><fontFamilies><fontFamily name="Microsoft YaHei UI"><normal>classpath:jasperreport/fonts/mysh.ttf</normal><bold>classpath:jasperreport/fonts/mysh.ttf</bold><italic>classpath:jasperreport/fonts/mysh.ttf</italic><boldItalic>classpath:jasperreport/fonts/mysh.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'Microsoft YaHei UI'</export></exportFonts></fontFamily><fontFamily name="思源黑体 CN Regular"><normal>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-55-Regular.ttf</normal><bold>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-55-Regular.ttf</bold><italic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-55-Regular.ttf</italic><boldItalic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-55-Regular.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'思源黑体 CN Regular'</export></exportFonts></fontFamily><fontFamily name="思源黑体 CN Bold"><normal>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-85-Bold.ttf</normal><bold>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-85-Bold.ttf</bold><italic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-85-Bold.ttf</italic><boldItalic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-85-Bold.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'思源黑体 CN Bold'</export></exportFonts></fontFamily><fontFamily name="思源黑体 CN Medium"><normal>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-65-Medium.ttf</normal><bold>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-65-Medium.ttf</bold><italic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-65-Medium.ttf</italic><boldItalic>classpath:jasperreport/fonts/AlibabaPuHuiTi-2-65-Medium.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'思源黑体 CN Medium'</export></exportFonts></fontFamily>
</fontFamilies>
  1. 定义全局默认字体

创建jasperreports.properties文件在resources目录下:

#全局使用的默认字体
net.sf.jasperreports.default.font.name=Microsoft YaHei UI
net.sf.jasperreports.default.font.size=12
net.sf.jasperreports.default.pdf.font.name=Microsoft YaHei UI
net.sf.jasperreports.default.pdf.font.size=12
net.sf.jasperreports.default.pdf.encoding=Identity-H
net.sf.jasperreports.default.pdf.embedded=true

相关文章:

  • Docker run 子命令与运行优化相关的参数
  • 【CSS-13】CSS 网页布局三大机制详解:普通流、浮动与定位
  • 采用微服务的预期收益是什么?我们如何衡量成功?
  • MapReduce技术详解
  • Python Day51
  • Go语言---闭包
  • BeckHoff <---> Keyence (LJ-8000) 2D相机 Profinet 通讯
  • C#里与嵌入式系统W5500网络通讯(7)
  • SNMP中BER编码解析
  • JavaScript性能优化实战指南:从理论到案例的全面解析
  • 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接,
  • CQF预备知识:Python相关库 -- 核密度估计 scipy.stats
  • 关于cv::solvePnP算法的理解
  • R语言文本探索与预处理:入门指南
  • iOS 审核 cocos 4.3a【苹果机审的“分层阈值”设计】
  • 【Tip】工具网站
  • Python爬虫-爬取票牛明星演唱会数据,进行数据分析
  • 精益数据分析(103/126):免费移动应用的下载量、成本优化与案例解析
  • C++11 的线程管理(`std::thread`)
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • 本地wordpress站点上传/线上教育培训机构十大排名
  • 网站建设谈单流程/百度相册登录入口
  • 墙绘做网站推广有作用没/淘宝联盟怎么推广
  • 宝塔面板做网站绑定域名/长沙靠谱关键词优化公司电话
  • 国内做外卖的网站有哪些/西点培训
  • 高清免费爱做网站/seo基础教程使用