一种将动态数据整合生成pdf文档的方法及程序技术

技术编号:24170176 阅读:29 留言:0更新日期:2020-05-16 02:41
本发明专利技术公开了一种将动态数据整合生成pdf文档的方法及程序,属用计算机技术进行文档处理领域,该方法以LaTex技术为核心,通过程序操纵tex文档模版生成高质量的pdf文档,所述LaTex是一种基于tex的排版系统,涵盖文字、二维表格、数学公式、静态图片、矢量图片和统计图表元素,所述tex文档模版包含静态文字和元素占位符,可满足零维、一维、二维的数据填充要求。本发明专利技术除引用的静态图片外,其余素材全部用LaTeX语法实现,不依赖于Excel或Word类第三方工具,生成的文档具有占用空间小、浏览质量高、排版效果佳、平台兼容性好的优点。

【技术实现步骤摘要】
一种将动态数据整合生成pdf文档的方法及程序
本专利技术涉及一种把不同来源的数据按一定规则进行集成,并自动生成pdf文档的方法和程序,属于用计算机技术进行文档处理领域。
技术介绍
目前,数据电子化已深入各行业,随之而来的应用方向之是电子数据的可视化,常见有WEB方式的在线可视化与word、excel、pdf类离线可视化两种。在行业报告领域,需要生成一些格式较为固定,数据经常发生变化的报告文档,常见的生成方式是:先结合Office组件定制静态word模版,再通过人工方式进行复制粘贴以生成最终文档,此方法主要存在工作效率低且出错率高的问题;用编程接口来操纵office模版,但由于微软只开放office文档的部分接口,导致此类方案复杂度高,生成的文档兼容性差,排版效果差,一旦文档格式固定下来,再进行二次调整会变得更加困难;采用pdf的开发接口来生成pdf文档,虽然pdf是完全开放的标准,但通过API进行开发的难度仍然很高。针对以上方案的缺点,本专利技术以LaTex为核心技术,提出一种将动态数据整合生成pdf文档的方法及程序,具有如下优点:LaTex是一种基于宏的文本格式化程序的排版系统,具有高度的可用性和扩展性,属当前专业的排版系统之一,涵盖了文字、二维表格、数学公式、静态图片、矢量图片、统计图表类元素,可实现将高度复杂、高度灵活的文档格式导出成tex文档代码;LaTex是开源软件,接口完全开放,使用成本低,学习成本也相对较低;由于tex文档代码是纯文本构成,用计算机程序操纵tex文档相对于API方式更简单也便于人工操作,可把大型文档拆分成若干小文档编辑后再组装;LaTex具有跨平台能力,在主流的Windows、IOS、Linux、Unix操作系统上都有具体的实现。
技术实现思路
本专利技术要解决的技术问题包括:如何定义tex文档模版:tex模版包含静态和动态内容,通常由人工先编写纯静态的模版,进行调试后把可变的数据部分用占位符来替换,过程中会涉及到占位符设计的问题;如何获取动态数据:数据来源包括从关系数据库、人工编写的excel、csv文件、第三方应用程序和大数据平台获得,针对不同的数据源需适配不同的取数程序;如何把获得的数据准确地插入tex文档模版:解决方案是采用正则表达式来解析占位符,并按照占位符语法的标准来生成占位符可选参数,把获得的数据准确地插入tex文档模版,从而形成tex实例;如何提高效率:针对效率低的问题,主要采用数据与文档分离的思路,取数时可并发执行,而数据整合时则把数据先装入内存,再统一进行占位符解析及数据整合;如何降低维护难度和成本:解决方案是采用统一的配置文件,配置项尽量支持中文。为解决上述技术问题,本专利技术提出一种通过程序操纵tex文档模版,生成高质量的pdf文档的方法和程序。本专利技术首先定义了一套用于描述零维、一维、二维数据的占位符语法,语法中采用了ASCII标点符号、字母、数字及汉字的组合,可准确定义出零维、一维、二维的数据元素格式,占位符不会与tex自身的宏命令和文字混淆以导致解析错误,占位符主要包括三个部分:采用成对的ASCII符号来标识占位符在文档中的左边界和右边界,以提供解析程序识别占位符;采用占位符类型标识码及数据文件标识码标识该占位符的类型、出处,其中占位符类型标识码用字母标识,数据文件标识码用汉字、字母和数字的任意组合来标识,支持汉字来作为标识符;采用选参数定义取数范围、取数方向、数据格式。数据文件通常是一个M行N列的矩阵,列之间以TAB符号或逗号类分隔符进行分隔,行之间以回车换行符进行分隔,通过SQL语句取到的数据和以人工方式生成的csv文件均满足该条件,其它方式获得的数据文件,经过一定的格式化之后也满足该条件。通过分析tex文档的特点,文档元素按维度划分为零维、一维、二维:零维数据分为环境变量和单元格两类,环境变量是运行时临时指定,单元格则是从指定数据文件的第m行,第n列获得,m<=M,n<=N;一维数据可指定其在数据文件中的具体位置范围,如第m行,第n1-n2列,或第n行,第m1-m2行,m、m1、m2<=M,n、n1、n2<=N,位置起止范围可指定从前往后的正数、从后往前的负数、正序、倒序、元素间分隔符、列表末尾符、元素包围符、空值替换符来填充;二维数据可指定其在数据文件中的具体位置范围,如第m1行n1列至m2行n2列,m1、m2<=M,n1、n2<=N,位置起止范围可指定从前往后的正数或从后往前的负数,取数方向共有8种:先从上至下、再从左至右,先从上至下、再从右至左,先从下至上、再从左至右,先从下至上、再从右至左,先从左至右、再从上至下,先从右至左,再从上至下,先从下至上,再从左至右,先从下至上,再从右至左,可指定元素间分隔符、元素包围符、行末分隔符、行间分隔符、空值替换符。进一步通过单独开发的取数程序来完成数据获取,对应于不同的数据源分别开发,可适配包括microsoftsqlserver、hdfs数据源。再按照占位符的定义,把数据元素插入tex模版中,形成最终的tex实例,占位符语法解析采用正则表达式,数据的填充则完全按照占位符定义的格式要求来进行。最后,用LaTex系统对生成的tex代码进行自动或人工编译而形成目标pdf文档。说明书附图图1为一种将动态数据整合生成pdf文档的方法及程序。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,所述的实施例仅是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创新性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参阅图1,一种将动态数据整合生成pdf文档的方法及程序,具体包括以下步骤:设计零维、一维、二维三类占位符,满足文档中的正文、二维表格、静态图片、统计图表类要素的要求;单独开发可实现自定义查询和支持并发运行的取数程序,生成的数据文件格式可定制字符集、分隔符、格式化文本或数字;对应占位符语法解析找到数据元素,并按照占位符规定格式把数据元素写入tex文件中;用LaTex系统对生成的tex代码进行自动或人工编译而形成目标pdf文档。实例:一项目需要每个月从业务系统数据库中抽取数据生成技术报告,涉及上千个数据项,生成文档约400页,折线图、柱状图、饼图及统计表格上百个,以标签替换的方式生成word文档需要人工重新编号,存在效率低下、模版调整困难的问题,采用本方案后,5分钟以内即可完成数据采集过程,1-2分钟即可完成文档整合,5-10分钟编译出最终的pdf文档,最后由1-2人进行手工审核和调整即可发布文档。本文档来自技高网
...

【技术保护点】
1.一种将动态数据整合生成pdf文档的方法及程序,其特征在于:/n占位符的设计是把文档中的元素按照重复规律抽象成零维、一维、二维,不按元素的物理类型来抽象;/n不重复的元素相当于零维元素,是一个字、一段句子、一张图或一张表;/n按一行或一列重复的元素相当于一维元素,是多个连续的字、多段句子、多张图或多张表的组合,且这些元素之间具有相似性;/n按先行后列或先列后行重复的元素相当于二维元素,即每行或每列中的元素具备相似性A,而每列或每行中的元素具备相似性B;/n创建tex格式的文档模版包含静态文字及元素占位符,元素占位符的语法设计满足零维、一维、二维的数据填充要求,用占位符设计生成的pdf文档可实现常规文字、二维表格、统计图的展示效果。/n

【技术特征摘要】
1.一种将动态数据整合生成pdf文档的方法及程序,其特征在于:
占位符的设计是把文档中的元素按照重复规律抽象成零维、一维、二维,不按元素的物理类型来抽象;
不重复的元素相当于零维元素,是一个字、一段句子、一张图或一张表;
按一行或一列重复的元素相当于一维元素,是多个连续的字、多段句子、多张图或多张表的组合,且这些元素之间具有相似性;
按先行后列或先列后行重复的元素相当于二维元素,即每行或每列中的元素具备相似性A,而每列或每行中的元素具备相似性B;
创建tex格式的文档模版包含静态文字及元素占位符,元素占位符的语法设计满足零维、一维、二维的数据填充要求,用占位符设计生成的pdf文档可实现常规文...

【专利技术属性】
技术研发人员:张自震白斌薛文龙
申请(专利权)人:昆明安泰得软件股份有限公司
类型:发明
国别省市:云南;53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1