CN106776498A - 一种数据导出为pdf的方法 - Google Patents
一种数据导出为pdf的方法 Download PDFInfo
- Publication number
- CN106776498A CN106776498A CN201611128595.4A CN201611128595A CN106776498A CN 106776498 A CN106776498 A CN 106776498A CN 201611128595 A CN201611128595 A CN 201611128595A CN 106776498 A CN106776498 A CN 106776498A
- Authority
- CN
- China
- Prior art keywords
- templates
- export
- template
- bag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据导出为PDF的方法,其实现过程为:首先建立PDF组件包目录结构,该目录结构对应PDF模板;根据该目录结构,输入PDF模板编号;根据PDF模板编号读取PDF模板;解析读取的PDF模板,获取并填充完变量信息,将该PDF对外输出。该一种数据导出为PDF的方法与现有技术相比,方便用户对数据进行导出为PDF功能,提高了导出PDF的开发成本和导出易维护程度;简单实用、提高系统开发效率、减少系统维护成本、提高系统使用效率,实用性强,适用范围广泛,易于推广。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、数据导出为PDF的方法。
背景技术
PDF是我们极其常用的文件格式,但对如何生成PDF,基于一些公开的PDF库,我们就可以直接生成PDF文件,而不用关注PDF文件的内部细节。PDF导出功能应用系统都是通过itext提供的开源jar包进行固定一对一的导出,对于开发人员来说不易维护,开发成本比较高。
基于此,现提供一种数据导出为PDF的方法。本方法通过PDF模板和数据对应来生成PDF数据,对于应用系统来说开发成本和易维护程度都是比较大的提高。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、数据导出为PDF的方法。
一种数据导出为PDF的方法,其具体实现过程为:
一、首先建立PDF组件包目录结构,该目录结构对应PDF模板;
二、根据该目录结构,输入PDF模板编号;
三、根据PDF模板编号读取PDF模板;
四、解析读取的PDF模板,获取并填充完变量信息,将该PDF对外输出。
步骤一中根据功能分类建立程序包目录结构:PDF导出工具类包、PDF配置属性包、PDF模板包、PDF生成文件包。
输入PDF模板编号时,需要对应接口完成信息输入,该接口由java接口类定义,且完成接收导出数据和模板信息传入的功能,即接口调用方传入的数据。
所述对应接口由接口类定义,且接受List<Map<String,Object>>类型,Map<String, Object>类型。
读取PDF模板时,通过以下步骤实现:
根据接口调用方传入的PDF模板编号对PDF模板进行读取;
在接口中定义“PDF_NO”参数表示PDF模板编号;
通过读取PDF配置属性包、PDF模板包获取对应模板信息。
所述PDF配置属性包、PDF模板包通过工具类包中的工具类读取,具体为:
工具类通过读取PDF配置属性包下的文件读取到所有模板编号对应的模板信息;
工具类通过模板信息采用文件流的形式读取PDF模板包下对应的模板文件信息,并形成PdfStamper对象,进而获取AcroFields对象。
所述步骤四中,解析模板标记获得每一个标记的替换变量信息,把对应变量数据进行填充,并把PDF暂存到服务器端,最后将PDF提供对外输出。
步骤四的具体过程为:根据读取到的PDF模板进行解析,获得每个标记的数据变量名称,并根据接口调用方提供的数据进行匹配对应输出,最后将生成的PDF数据存储到服务器端,并以输出流的方式向客户端输出提供客户保存。
基于获取的AcroFields对象,步骤四的实现过程为:
通过以上步骤获得的AcroFields对象获取模板中获得每个标记的元素信息,通过循环业务传入Map,找到Map中key值对应的标记元素中name属性,把该key对应的value值赋予标记元素中的value值,再把放到AcroFields域中,最后将生成的PDF文件以模板号和时间戳组合命名存储到服务器端PDF生成文件包下,并以输出二进制流的方式向客户端输出提供客户保存。
本发明的一种数据导出为PDF的方法,具有以下优点:
该发明的一种数据导出为PDF的方法,当用户需求改变修改PDF模板时,不需要重新修改大量的程序代码,只需要将更新的模板覆盖上传就可以达到导出下载功能,方便用户对数据进行导出为PDF功能,提高了导出PDF的开发成本和导出易维护程度;简单实用、提高系统开发效率、减少系统维护成本、提高系统使用效率,实用性强,适用范围广泛,易于推广。
附图说明
附图1为本发明的实现流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1所示,本发明涉及一种数据导出为PDF的方法,可实现当用户需求改变修改PDF模板时,不需要重新修改大量的程序代码,只需要将更新的模板覆盖上传就可以达到导出下载功能。
本方法把生成PDF改为通过模板生成PDF文件导出;且通过java封装成工具,可实时移植使用。
其实现过程为:
一、首先建立PDF组件包目录结构,该目录结构对应PDF模板;
二、根据该目录结构,输入PDF模板编号;
三、根据PDF模板编号读取PDF模板;
四、解析读取的PDF模板,获取并填充完变量信息,将该PDF对外输出。
具体实现过程如下所述:
步骤1:建立PDF组件包目录结构。
根据各功能分类建立程序包目录结构,如下:
PDF导出工具类包:“com.pdf.export”;
PDF配置属性包:“com.pdf.property”;
PDF模板包:“com.pdf.template”;
PDF生成文件包:“com.pdf.produce”。
步骤2:接收导出数据和模板信息传入。
根据接口类定义的数据传入类型接收接口调用方传入的数据,接口类定义的数据可以接受List<Map<String,Object>>类型,Map<String, Object>类型。由于PDF模板信息一般是键值对的形式,所以传入数据最多的一般是Map<String, Object>类型。为防止文字乱码,统一对于文字进行字体处理。
步骤3:读取PDF模板。
根据接口调用方传入的PDF模板编号对PDF模板进行读取;
接口中定义“PDF_NO”参数表示PDF模板编号,
工具类通过读取“com.pdf.property”包下的template.properties文件读取到所有模板编号对应的模板信息;
工具类通过模板信息采用文件流的形式读取“com.pdf.template”包下对应的模板文件信息,并形成PdfStamper对象,进而获取AcroFields对象。
步骤4:解析模板标记获得每一个标记的替换变量信息把对应变量数据进行填充,并把PDF暂存到服务器端,将PDF提供对外输出。
根据读取到的PDF模板进行解析,获得每个标记的数据变量名称,并根据接口调用方提供的数据进行匹配对应输出,最后将生成的PDF数据存储到服务器端,并以输出流的方式向客户端输出提供客户保存。
通过以上步骤获得的AcroFields对象获取模板中获得每个标记的元素信息,通过循环业务传Map,找到Map中key值对应的标记元素中name属性,把该key对应的value值赋予标记元素中的value值,再把放到AcroFields 域中,最后将生成的PDF文件以模板号和时间戳组合命名存储到服务器端“com.pdf.produce”包下,并以输出二进制流的方式向客户端输出提供客户保存。
本发明可有效提高项目开发效率、提高易用性、降低公司其他项目开发成本。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种数据导出为PDF的方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (10)
1.一种数据导出为PDF的方法,其特征在于,其实现过程为:
一、首先建立PDF组件包目录结构,该目录结构对应PDF模板;
二、根据该目录结构,输入PDF模板编号;
三、根据PDF模板编号读取PDF模板;
四、解析读取的PDF模板,获取并填充完变量信息,将该PDF对外输出。
2.根据权利要求1所述的一种数据导出为PDF的方法,其特征在于,步骤一中根据功能分类建立程序包目录结构:PDF导出工具类包、PDF配置属性包、PDF模板包、PDF生成文件包。
3.根据权利要求2所述的一种数据导出为PDF的方法,其特征在于,输入PDF模板编号时,需要对应接口完成信息输入,该接口由java接口类定义,且完成接收导出数据和模板信息传入的功能,即接口调用方传入的数据。
4.根据权利要求3所述的一种数据导出为PDF的方法,其特征在于,所述对应接口由接口类定义,且接受List<Map<String,Object>>类型,Map<String, Object>类型。
5.根据权利要求2所述的一种数据导出为PDF的方法,其特征在于,读取PDF模板时,通过以下步骤实现:
根据接口调用方传入的PDF模板编号对PDF模板进行读取;
在接口中定义“PDF_NO”参数表示PDF模板编号;
通过读取PDF配置属性包、PDF模板包获取对应模板信息。
6.根据权利要求5所述的一种数据导出为PDF的方法,其特征在于,所述PDF配置属性包、PDF模板包通过工具类包中的工具类读取,具体为:
工具类通过读取PDF配置属性包下的文件读取到所有模板编号对应的模板信息;
工具类通过模板信息采用文件流的形式读取PDF模板包下对应的模板文件信息,并形成PdfStamper对象,进而获取AcroFields对象。
7.根据权利要求6所述的一种数据导出为PDF的方法,其特征在于,所述步骤四中,解析模板标记获得每一个标记的替换变量信息,把对应变量数据进行填充,并把PDF暂存到服务器端,最后将PDF提供对外输出。
8.根据权利要求6或7所述的一种数据导出为PDF的方法,其特征在于,步骤四的具体过程为:根据读取到的PDF模板进行解析,获得每个标记的数据变量名称,并根据接口调用方提供的数据进行匹配对应输出,最后将生成的PDF数据存储到服务器端,并以输出流的方式向客户端输出提供客户保存。
9.根据权利要求6或7所述的一种数据导出为PDF的方法,其特征在于,基于获取的AcroFields对象,步骤四的实现过程为:
通过以上步骤获得的AcroFields对象获取模板中获得每个标记的元素信息,通过循环业务传入Map,找到Map中key值对应的标记元素中name属性,把该key对应的value值赋予标记元素中的value值,再把放到AcroFields域中,最后将生成的PDF文件以模板号和时间戳组合命名存储到服务器端PDF生成文件包下,并以输出二进制流的方式向客户端输出提供客户保存。
10.根据权利要求8所述的一种数据导出为PDF的方法,其特征在于,基于获取的AcroFields对象,步骤四的实现过程为:
通过以上步骤获得的AcroFields对象获取模板中获得每个标记的元素信息,通过循环业务传入Map,找到Map中key值对应的标记元素中name属性,把该key对应的value值赋予标记元素中的value值,再把放到AcroFields域中,最后将生成的PDF文件以模板号和时间戳组合命名存储到服务器端PDF生成文件包下,并以输出二进制流的方式向客户端输出提供客户保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611128595.4A CN106776498A (zh) | 2016-12-09 | 2016-12-09 | 一种数据导出为pdf的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611128595.4A CN106776498A (zh) | 2016-12-09 | 2016-12-09 | 一种数据导出为pdf的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776498A true CN106776498A (zh) | 2017-05-31 |
Family
ID=58874871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611128595.4A Pending CN106776498A (zh) | 2016-12-09 | 2016-12-09 | 一种数据导出为pdf的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776498A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491430A (zh) * | 2017-08-28 | 2017-12-19 | 南京农纷期电子商务有限公司 | 利用pdf工具包和SPEL表达式填充pdf的方法 |
CN108491365A (zh) * | 2018-02-02 | 2018-09-04 | 方欣科技有限公司 | 一种pdf根据不同业务自动拆分组合的方法及装置 |
CN109815464A (zh) * | 2018-12-15 | 2019-05-28 | 中国平安人寿保险股份有限公司 | Pdf文档生成方法、装置、电子设备及存储介质 |
CN110008195A (zh) * | 2019-04-11 | 2019-07-12 | 重庆猪八戒知识产权服务有限公司 | 一种动态配置html转pdf的方法、装置及系统 |
WO2020015220A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 基于pdf文档的数据下载方法及装置、存储介质、终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281447A (zh) * | 2014-09-01 | 2015-01-14 | 国家电网公司 | 一种报表快速生成及发布的系统及其方法 |
CN105589840A (zh) * | 2015-12-15 | 2016-05-18 | 重庆腾帆科技有限公司 | 一种通用excel/pdf报表导出组件 |
CN105760172A (zh) * | 2016-03-02 | 2016-07-13 | 浪潮软件集团有限公司 | 一种基于itext的报表生成方法 |
-
2016
- 2016-12-09 CN CN201611128595.4A patent/CN106776498A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281447A (zh) * | 2014-09-01 | 2015-01-14 | 国家电网公司 | 一种报表快速生成及发布的系统及其方法 |
CN105589840A (zh) * | 2015-12-15 | 2016-05-18 | 重庆腾帆科技有限公司 | 一种通用excel/pdf报表导出组件 |
CN105760172A (zh) * | 2016-03-02 | 2016-07-13 | 浪潮软件集团有限公司 | 一种基于itext的报表生成方法 |
Non-Patent Citations (4)
Title |
---|
丁振凡: "《Spring 3.x 编程技术与应用》", 31 August 2013, 北京:北京邮电大学出版社 * |
李俊等: "基于iTextSharp的复杂报表生成技术", 《计算机与网络》 * |
游安弼等: "动态生成PDF文档的Java实现", 《计算机时代》 * |
郑金龙等: "基于MVC模式与J2EE架构的项目申报与评审系统设计与实现", 《兰州工业高等专科学校学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491430A (zh) * | 2017-08-28 | 2017-12-19 | 南京农纷期电子商务有限公司 | 利用pdf工具包和SPEL表达式填充pdf的方法 |
CN107491430B (zh) * | 2017-08-28 | 2021-01-08 | 南京农纷期电子商务有限公司 | 利用pdf工具包和SPEL表达式填充pdf的方法 |
CN108491365A (zh) * | 2018-02-02 | 2018-09-04 | 方欣科技有限公司 | 一种pdf根据不同业务自动拆分组合的方法及装置 |
WO2020015220A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 基于pdf文档的数据下载方法及装置、存储介质、终端 |
CN109815464A (zh) * | 2018-12-15 | 2019-05-28 | 中国平安人寿保险股份有限公司 | Pdf文档生成方法、装置、电子设备及存储介质 |
CN109815464B (zh) * | 2018-12-15 | 2024-06-07 | 中国平安人寿保险股份有限公司 | Pdf文档生成方法、装置、电子设备及存储介质 |
CN110008195A (zh) * | 2019-04-11 | 2019-07-12 | 重庆猪八戒知识产权服务有限公司 | 一种动态配置html转pdf的方法、装置及系统 |
CN110008195B (zh) * | 2019-04-11 | 2020-06-02 | 重庆猪八戒知识产权服务有限公司 | 一种动态配置html转pdf的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776498A (zh) | 一种数据导出为pdf的方法 | |
US20080114782A1 (en) | Integrating Analog Markups with Electronic Documents | |
CN110287785A (zh) | 文本结构化信息提取方法、服务器及存储介质 | |
CN105450232A (zh) | 编码、解码方法以及编码装置和解码装置 | |
CN103902269B (zh) | 一种通过xml文件生成mib文件的系统及方法 | |
CN110347984B (zh) | 保单页面变更方法、装置、计算机设备及存储介质 | |
TWI409708B (zh) | 用於以一序列二位元格式儲存文件之系統和方法 | |
CN110688830A (zh) | 征信模板的转换方法及装置 | |
CN107608951A (zh) | 报表生成方法和系统 | |
WO2020015220A1 (zh) | 基于pdf文档的数据下载方法及装置、存储介质、终端 | |
CN112016290A (zh) | 一种文档自动排版方法、装置、设备及存储介质 | |
Tiwary et al. | Compression of xml and json api responses | |
KR100762712B1 (ko) | 규칙기반의 전자문서 변환방법 및 그 시스템 | |
CN108763457A (zh) | 基于格式化模板的通用型数据导出方法、设备及存储介质 | |
CN101617307B (zh) | 编解码设备和方法 | |
CN101739391A (zh) | 生成二进制文件格式电子书的方法及其生成的电子书 | |
CN112487138A (zh) | 带格式文本的信息抽取方法和装置 | |
CN101996161B (zh) | 一种电子文档的历史版本数据处理方法及装置 | |
CN106209936B (zh) | 第三方系统数据获取方法和装置 | |
CN114489525B (zh) | 打印报表生成方法、装置、设备及存储介质 | |
US20140072222A1 (en) | Method and system for a text data entry from an electronic document | |
CN106598983A (zh) | 信息显示方法及装置 | |
CN114281331A (zh) | 一种用于访问数据库的前后端代码文件的生成方法及装置 | |
CN108984676B (zh) | 一种基于xml的电子书跨终端自适应显示系统及方法 | |
CN111966973A (zh) | 一种基于图片像素值隐写的版权保护方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |