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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909454.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909454.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909454.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序使用畫布實現飄落泡泡功能

微信小程序使用畫布實現飄落泡泡功能&#xff1a;從組件封裝到頁面調用的完整實踐 先看示例截圖&#xff1a; 一、背景與技術選型 在微信小程序中實現類似于飄落的泡泡或者櫻花飄落的功能&#xff0c;一般主要有 Canvas 和圖片兩種方案&#xff1a; &#xff08;1&#xff…

使用STM32設置GPIO中斷

使用S? 32設置GPIO中斷 中斷示例按鍵中斷實例設計&#xff1a;EXTI0和EXTI9硬件連接分析STM32代碼實現代碼說明 中斷示例 設計一個按鍵中斷的實例。設置兩個中斷&#xff1a;EXTI0、EXTI9&#xff0c; 在EXTI9的中斷服務之程序中實現LED燈的控制 按鍵中斷實例設計&#xff…

解決在微信小程序中view組件下的text和images設置了樣式display: flex; align-items: center;對不齊

原始代碼的問題 <view style"display: flex; align-items: center;"><text style"line-height: 1;">全國</text><image src"/images/xia.png" style"height: 20rpx; width: 20rpx; display: block;"></im…

歸并排序詳解:優雅的分治藝術

什么&#xff1f;歸并排序&#xff1f;這讓博主想起了大學那會被《數據結構與算法》支配的恐懼… 哈哈言歸正傳&#xff0c;一直想對算法做一個專欄&#xff0c;因為其實工作中很少很少有機會用到算法&#xff0c;倒是很多工具方法底層會使用&#xff0c;工作被各種需求業務“折…

新零售視域下實體與虛擬店融合的技術邏輯與商業模式創新——基于開源AI智能名片與鏈動2+1模式的S2B2C生態構建

摘要&#xff1a;新零售的核心在于打破線上線下邊界&#xff0c;構建“人、貨、場”的全場景融合生態。本文提出&#xff0c;實體線下店與虛擬店的協同發展是新零售的重要演進方向&#xff0c;其底層邏輯在于滿足消費者作為“現實人”的體驗需求與“虛擬人”的效率需求。通過引…

可視化圖解算法51:尋找第K大(數組中的第K個最大的元素)

牛客網 面試筆試 TOP101 | LeetCode 215. 數組中的第K個最大元素 1. 題目 描述 有一個整數數組&#xff0c;請你找出數組中第 k 大的數。 給定一個整數數組 a ,同時給定它的大小n和要找的 k &#xff0c;請返回第 k 大的數(包括重復的元素&#xff0c;不用去重)&…

DataWhale-零基礎網絡爬蟲技術(一)

課程鏈接先給各位 ↓↓↓ &#xff08;點擊即可食用.QAQ Datawhale-學用 AI,從此開始 一、引言 還是在筆記的開始&#xff0c;嘮嘮一些自己的故事 十年前第一次接觸網絡&#xff0c;也可以說是第一次接觸計算機的時候&#xff0c;那時候還是在中學階段&#xff0c;那時候大…

Linux02

目錄 linux常用命令 用戶和權限 壓縮和解壓縮 其他相關命令 Linux中安裝常用軟件 1.1. jdk的安裝 1.1.1. 卸載linux中自帶的open-jdk 1.1.2. 把安裝包上傳到 linux上 1.1.3. 解壓安裝包 1.1.4. 配置環境變量 1.1.5 驗證環境變量 1.3 安裝mysql 1.3.1. 檢查依賴 1.…

JavaSE超詳細筆記-網絡編程篇-基于黑馬

1. 什么是網絡編程【理解】 1.1 概念 在網絡通信協議下&#xff0c;不同計算機上運行的程序&#xff0c;進行的數據傳輸。 應用場景: 即時通信、網游對戰、金融證券、國際貿易、郵件、等等。 不管是什么場景&#xff0c;都是計算機跟計算機之間通過網絡進行數據傳輸Java中可以使…

時序數據庫Influxdb3 core安裝

本文介紹時序數據庫Influxdb3 core(開源版本)的安裝和簡單使用以及調優參數的介紹。 預期&#xff1a; 安裝時序數據庫Influxdb3 core 創建數據庫mydb 寫入數據&#xff1b; 使用influxdb3-cli 和 grafana2種方式查詢寫入的數據 前期準備&#xff1a; linux服務器(本文服…

區間合并:區間合并問題

區間合并&#xff1a;區間合并問題 區間合并 www.acwing.com/problem/content/805/ 按區間的左端點排序 掃描整個區間&#xff0c;在這過程中把可能有交點的區間合并 全包含&#xff1a;不做改動相交&#xff1a;right 后移相離&#xff1a;更新至下一個維護區間 import j…

中國古代數學符號的演進 | 算籌 / 符號 / 算法

注&#xff1a;本文為“中國古代數學符號”相關合輯。 圖片清晰度受引文原圖所限。 略作重排&#xff0c;未整理去重。 如有內容異常&#xff0c;請看原文。 這個中國古代的數學瑰寶&#xff0c;到底厲害在哪&#xff1f; 原創 朱一文 科普中國 2024 年 07 月 31 日 15:30 北…

XMLDecoder、LDAP 注入與修復

問題&#xff1a;XMLDecoder注入 針對 xml 解碼器的注入攻擊 反序列化用戶控制的 XML &#xff0c;程序沒有進行驗證&#xff0c; 會讓攻擊者有機會在服務器上執行惡意代 碼。 例&#xff1a;下面代碼片段中&#xff0c; XMLDecoder 處理不可信的輸入。 ... XMLDecode…

Unity 對象層級處理小結

一.第一優先級Camera Culling Mask屬性指定Camera顯示的Layer,可以多選 Depth:Depth大的Camera顯示的Layer顯示在前面 二.避免使用PositionZ調整遮擋關系 在 2D 游戲中,雖然可以通過 Z 軸來調整顯示順序,但這與 2D 游戲的設計理念不符。在可以控制顯示層級的多個要素或方…

python基礎舉例

最近又重新開始學python&#xff0c;淺淺記錄下學習到的東西&#xff08;也方便自己回顧看&#xff09; 縮進、空格對于python很重要&#xff0c;一定要注意&#xff01; 以下代碼是基于pycharm編寫的。 01 輸出 #注釋 # 單行注釋用# &#xff0c;ctrl/是單行注釋的快捷鍵 # …

開疆智能ModbusTCP轉Canopen網關連接匯川PLC配置案例

本案例是通過開疆智能研發的ModbusTCP轉Canopen網關將匯川PLC與陀螺儀連接進行組網通訊。 準備階段 軟件&#xff1a;InoProShop(V1.7.3)&#xff0c;CANopen Configuration Studio PLC&#xff1a;匯川AC801-0221-R0R0 網關&#xff1a;開疆智能ModbusTCP轉Canopen網關 陀…

Tess4J:基于 Java 的 OCR 解決方案

在現代軟件開發中&#xff0c;圖像識別與文本提取已成為許多應用場景中的關鍵環節。OCR&#xff08;Optical Character Recognition&#xff09; 技術使得從圖像中提取文字成為可能。Tess4J 是一個基于 Java 的 OCR 開發庫&#xff0c;它封裝了 Google Tesseract OCR 引擎的本地…

Vue3 + JavaScript 父組件點擊按鈕觸發子組件事件方法

在 Vue 3 中&#xff0c;父組件點擊按鈕觸發子組件事件有以下三種常用方式&#xff1a; 方法 1&#xff1a;使用 ref 直接調用子組件方法&#xff08;推薦&#xff09; vue 復制 下載 <!-- 父組件 --> <template><button click"callChildMethod"…

超強人工智能解決方案套件InfiniSynapse:精準的業務理解、對各種數據源進行全模態聯合智能分析--部署安裝@Ubuntu22.04 @Docker

InfiniSynapse 通過自研的第二代LLM-Native RAG實現了企業業務的理解&#xff0c;精準的Schema召回保證數據的準確性。提供專門為大模型優化的InfiniSQL語言&#xff0c;從而可以更加準確的生成查詢語句&#xff0c;通過 InfiniSQL 引擎讓人類第一次對存儲在各種數據源的全模態…

解決國內無法加載谷歌驗證碼(reCAPTCHA):URL 重定向配置指南

解決國內無法加載谷歌驗證碼&#xff08;reCAPTCHA&#xff09;&#xff1a;URL 重定向配置指南 在搭建網站或使用某些應用時&#xff0c;經常會遇到需要調用谷歌驗證&#xff08;reCAPTCHA&#xff09;API 的情況。然而&#xff0c;由于網絡環境的特殊性&#xff0c;國內多數…