技术领域
[0001] 本申请涉及计算机技术领域,特别是涉及一种PDF打印方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
相关背景技术
[0002] 随着数字化办公的普及,PDF(Portable Document Format,便携式文档格式)文件因其跨平台兼容性和格式稳定性成为电子文档的标准格式之一。然而,由于不同打印设备之间的差异性,直接打印PDF文件可能会导致输出效果不佳。
具体实施方式
[0061] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0062] 本申请实施例提供的PDF打印方法,可以应用于如图1所示的应用环境中。其中,计算机设备102通过网络与打印设备104进行通信。数据存储系统可以存储计算机设备102需要处理的数据。数据存储系统可以集成在计算机设备102上,也可以放在云上或其他网络服务器上。计算机设备102获取PDF文件,通过本申请实施例提供的PDF打印方法进行处理,并发送给打印设备104进行打印。计算机设备102可以通过数据输入接口接收用户上传的PDF文件,也可以从数据存储系统读取PDF文件,还可以从其他网络设备接收PDF文件。其中,计算机设备102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备,物联网设备可为智能音箱、智能电视、智能空调、投影设备等。
[0063] 在一个示例性的实施例中,如图2所示,提供了一种PDF打印方法,以该方法应用于图1中的计算机设备102为例进行说明,包括:
[0064] 步骤202,读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息。
[0065] 其中,利用PDF解析库读取PDF文件,提取PDF文件中每一页的内容信息,包括但不限于PDF文件中的文本、图片、矢量图像、批注、标记等。分析PDF文件每一页,记录页面信息,可以包括页面尺寸、图像分辨率、文字方向、页面边距等。
[0066] 步骤204,获取目标打印设备的打印参数。
[0067] 其中,打印参数可以为目标打印设备的默认参数,也可以为用户设置的打印参数,例如纸张尺寸、打印方向、分辨率等。目标打印设备可以为计算机设备自动匹配的打印设备,也可以为用户选择的打印设备。
[0068] 步骤206,根据页面信息和打印参数,确定排布信息。
[0069] 步骤208,根据排布信息,对内容信息进行排布,生成打印页面。
[0070] 其中,基于页面信息和打印参数,能够调整PDF文件的缩放比例来适应纸张大小,还能够调整PDF文件中内容的布局,生成排布信息。初始化打印页面,在打印页面上,根据排布信息,对PDF文件的内容信息进行排布,得到包含打印内容的打印页面。
[0071] 步骤210,根据打印页面渲染生成用于打印的目标图像。
[0072] 其中,使用图形设备接口或其他图形渲染技术,根据调整后的打印页面中的元素大小、元素位置信息等,绘制页面内容,生成用于打印的目标图像。
[0073] 步骤212,将目标图像发送至目标打印设备进行打印。
[0074] 其中,将生成的目标图像通过I/O端口发送给目标打印设备进行物理打印。
[0075] 上述PDF打印方法中,读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息;获取目标打印设备的打印参数;根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面;根据打印页面渲染生成用于打印的目标图像;将目标图像发送至目标打印设备进行打印。通过上述方式,通过生成打印页面和渲染目标图像,确保PDF文件在目标打印设备正确显示;能够智能适配各种打印设备和打印参数,提高打印效率和打印质量。
[0076] 在一个示例性的实施例中,页面信息包括页面尺寸,打印参数包括纸张尺寸、打印方向和打印对齐方式,排序信息包括元素大小和坐标位置;步骤206,包括:根据页面尺寸、纸张尺寸和打印方向,确定缩放比例;根据缩放比例和页面尺寸,确定元素大小;根据元素大小、纸张尺寸和打印对齐方式,确定坐标位置。
[0077] 其中,页面尺寸包括页面高度、页面宽度和页边距等。根据打印方向能够确定PDF文件的页面中与纸张宽度对应的边、与纸张高度对应的边,例如,若打印方向为纵向打印,则页面宽度与纸张宽度对应、页面高度与纸张高度对应;若打印方向为横向打印,则页面宽度与纸张高度对应、页面高度与纸张宽度对应。
[0078] 示例性地,页面宽度为x1,页面高度为y1,纸张宽度为x2,纸张高度为y2。若打印方向为纵向打印,则缩放比例为x2/x1与y2/y1中的更小值。若打印方向为横向打印,则缩放比例为x2/y1与y2/x1中的更小值。
[0079] 在一种可选的实现方式中,元素是指PDF页面中展示内容的区域;页面高度、页面宽度和页边距,能够确定该区域的初始大小;基于缩放比例和展示内容的区域的初始大小,能够确定适应纸张尺寸后的元素大小。打印对齐方式包括居中、靠左、靠右、靠上、靠下等。基于元素大小、纸张尺寸和打印对齐方式,能够确定展示内容的区域的坐标位置,例如该区域的中心在纸张上的坐标、该区域的左上顶点在纸张上的坐标、该区域的四个顶点在纸张上的坐标等等。
[0080] 示例性地,元素是指构成PDF页面内容的各种组成部分,例如文本元素、图片元素、标记元素等等。基于缩放比例和页面尺寸,对各类元素进行缩放处理,确定适应纸张尺寸后的元素大小。基于元素大小、纸张尺寸和打印对齐方式,能够确定各元素在纸张上的坐标位置,例如元素中心在纸张上的坐标。
[0081] 本实施例中,通过确定元素大小和坐标位置,能够确保PDF文件页面内容适应纸张尺寸和打印对齐方式,提升了打印质量。
[0082] 在一个示例性的实施例中,如图3所示,内容信息包括至少一个内容类型以及对应的文档内容,打印参数包括打印内容类型;步骤204之后,所述方法还包括:
[0083] 步骤302,若打印内容类型包括PDF文件的所有内容类型,则执行根据页面信息和打印参数,确定排布信息的步骤。
[0084] 其中,内容类型包括文本、图片、矢量图像、批注、标记等。通过设置打印内容类型,能够选择需要打印的内容类型。若打印内容类型包括PDF文件的所有内容类型,表明PDF文件中所有内容均需打印,则计算机设备继续执行后续步骤。
[0085] 步骤304,若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,则对内容信息和页面信息进行调整,基于调整后的内容信息执行根据页面信息和打印参数,确定排布信息的步骤,并基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0086] 其中,若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,表明PDF文件中某些内容无需打印,此时需要调整待打印的内容信息和页面信息,以调整后的内容信息和页面信息为基础,执行后续步骤。示例性地,将批注类型设置为未选中状态,即打印内容类型不包括批注类型,若PDF文件中包括批注内容,则需要调整待打印的内容信息和页面信息。
[0087] 可选地,根据内容信息包括的内容类型和打印内容类型,确定不进行打印的目标类型;从内容信息中删除目标类型对应的文档内容,得到调整后的内容信息;若目标类型为批注类型,对页面宽度和页面高度中的至少一个进行缩小处理,得到调整后的页面信息。
[0088] 本实施例中,当PDF文件的内容类型与打印要求匹配时,可以自动根据页面信息和打印参数进行排布,无需人工干预,从而提高打印效率。当PDF文件中存在与打印内容类型不匹配的内容时,可以对内容信息和页面信息进行调整,能够智能识别复杂布局的PDF文件,自动调整页面布局适应不同的打印需求,应对各种复杂打印情况,提升打印质量。
[0089] 在一个示例性的实施例中,打印参数包括排版类型;步骤208,包括:根据排布信息,确定内容填充区域;根据排版类型,在内容填充区域中对内容信息进行排布,生成打印页面。
[0090] 其中,排版类型与用户的打印需求相关,包括一致性排版或自定义排版。一致性排版强调在打印PDF文件时,尽可能保持原PDF文件的排版格式、字体、字号、字距、段落对齐方式、图片位置等。自定义排版中包括打印设备被配置的排版信息,例如文本排版信息(字体、字号、字距、段落对齐方式等)、图片排版信息(图片大小、位置、边框等)。
[0091] 根据排布信息,能够在打印页面中划分出内容填充区域。根据排版类型,能够获取用于排布内容信息的排版信息,根据排版信息,在内容填充区域中对内容信息进行排布,生成包含打印内容的打印页面。
[0092] 本实施例中,根据打印需求合理排布PDF文档的内容,提升了PDF打印的灵活性和多样性。
[0093] 在一个示例性的实施例中,页面信息包括图片分辨率,打印参数包括分辨率;步骤208之前,所述方法还包括:根据分辨率和图片分辨率,对内容信息中的图像内容进行调整;
基于调整后的内容信息执行步骤208。
[0094] 其中,根据打印的分辨率和图片分辨率,调整图像内容的分辨率,使得图像内容的分辨率与打印的分辨率一致。可以确保图像内容在打印时具有足够的清晰度,从而提升打印质量。另一方面,若图片分辨率过大,通过降低图像的分辨率可以显著减少后续生成的目标图像的大小,从而提升打印效率。
[0095] 在一个示例性的实施例中,步骤204,包括:展示用户界面;基于用户界面确定目标打印设备,并获取打印参数。
[0096] 其中,提供用户界面以允许用户选择或自动匹配目标打印设备,并允许用户手动指定打印参数。
[0097] 应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0098] 基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的PDF打印方法的PDF打印装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个PDF打印装置实施例中的具体限定可以参见上文中对于PDF打印方法的限定,在此不再赘述。
[0099] 在一个示例性的实施例中,如图4所示,提供了一种PDF打印装置,包括:
[0100] 文件读取模块402,用于读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息。
[0101] 参数获取模块404,用于获取目标打印设备的打印参数。
[0102] 页面生成模块406,用于根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面。
[0103] 渲染模块408,用于根据打印页面渲染生成用于打印的目标图像。
[0104] 打印模块410,用于将目标图像发送至目标打印设备进行打印。
[0105] 上述PDF打印装置中,读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息;获取目标打印设备的打印参数;根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面;根据打印页面渲染生成用于打印的目标图像;将目标图像发送至目标打印设备进行打印。通过上述方式,通过生成打印页面和渲染目标图像,确保PDF文件在目标打印设备正确显示;能够智能适配各种打印设备和打印参数,提高打印效率和打印质量。
[0106] 在一个示例性的实施例中,页面信息包括页面尺寸,打印参数包括纸张尺寸、打印方向和打印对齐方式,排序信息包括元素大小和坐标位置;页面生成模块406,还用于根据页面尺寸、纸张尺寸和打印方向,确定缩放比例;根据缩放比例和页面尺寸,确定元素大小;根据元素大小、纸张尺寸和打印对齐方式,确定坐标位置。
[0107] 在一个示例性的实施例中,内容信息包括至少一个内容类型以及对应的文档内容,打印参数包括打印内容类型;所述PDF打印装置还包括调整模块;
[0108] 所述调整模块,用于若打印内容类型包括PDF文件的所有内容类型,则执行根据页面信息和打印参数,确定排布信息的步骤;若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,则对内容信息和页面信息进行调整,基于调整后的内容信息执行根据页面信息和打印参数,确定排布信息的步骤,并基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0109] 在一个示例性的实施例中,打印参数包括排版类型;页面生成模块406,还用于根据排布信息,确定内容填充区域;根据排版类型,在内容填充区域中对内容信息进行排布,生成打印页面。
[0110] 在一个示例性的实施例中,页面信息包括图片分辨率,打印参数包括分辨率;页面生成模块406,还用于根据分辨率和图片分辨率,对内容信息中的图像内容进行调整;基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0111] 在一个示例性的实施例中,参数获取模块404,还用于展示用户界面;基于用户界面确定目标打印设备,并获取打印参数。
[0112] 上述PDF打印装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0113] 在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种PDF打印方法。
[0114] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0115] 在一个示例性的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息;获取目标打印设备的打印参数;根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面;根据打印页面渲染生成用于打印的目标图像;将目标图像发送至目标打印设备进行打印。
[0116] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据页面尺寸、纸张尺寸和打印方向,确定缩放比例;根据缩放比例和页面尺寸,确定元素大小;根据元素大小、纸张尺寸和打印对齐方式,确定坐标位置。
[0117] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:若打印内容类型包括PDF文件的所有内容类型,则执行根据页面信息和打印参数,确定排布信息的步骤;若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,则对内容信息和页面信息进行调整,基于调整后的内容信息执行根据页面信息和打印参数,确定排布信息的步骤,并基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0118] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据排布信息,确定内容填充区域;根据排版类型,在内容填充区域中对内容信息进行排布,生成打印页面。
[0119] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据分辨率和图片分辨率,对内容信息中的图像内容进行调整;基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0120] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:展示用户界面;基于用户界面确定目标打印设备,并获取打印参数。
[0121] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息;获取目标打印设备的打印参数;根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面;根据打印页面渲染生成用于打印的目标图像;将目标图像发送至目标打印设备进行打印。
[0122] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据页面尺寸、纸张尺寸和打印方向,确定缩放比例;根据缩放比例和页面尺寸,确定元素大小;根据元素大小、纸张尺寸和打印对齐方式,确定坐标位置。
[0123] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若打印内容类型包括PDF文件的所有内容类型,则执行根据页面信息和打印参数,确定排布信息的步骤;若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,则对内容信息和页面信息进行调整,基于调整后的内容信息执行根据页面信息和打印参数,确定排布信息的步骤,并基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0124] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据排布信息,确定内容填充区域;根据排版类型,在内容填充区域中对内容信息进行排布,生成打印页面。
[0125] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据分辨率和图片分辨率,对内容信息中的图像内容进行调整;基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0126] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:展示用户界面;基于用户界面确定目标打印设备,并获取打印参数。
[0127] 在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:读取待打印的PDF文件的内容信息,并确定PDF文件的页面信息;获取目标打印设备的打印参数;根据页面信息和打印参数,确定排布信息;根据排布信息,对内容信息进行排布,生成打印页面;根据打印页面渲染生成用于打印的目标图像;将目标图像发送至目标打印设备进行打印。
[0128] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据页面尺寸、纸张尺寸和打印方向,确定缩放比例;根据缩放比例和页面尺寸,确定元素大小;根据元素大小、纸张尺寸和打印对齐方式,确定坐标位置。
[0129] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若打印内容类型包括PDF文件的所有内容类型,则执行根据页面信息和打印参数,确定排布信息的步骤;若PDF文件中存在任意一个与打印内容类型不匹配的内容类型,则对内容信息和页面信息进行调整,基于调整后的内容信息执行根据页面信息和打印参数,确定排布信息的步骤,并基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0130] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据排布信息,确定内容填充区域;根据排版类型,在内容填充区域中对内容信息进行排布,生成打印页面。
[0131] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据分辨率和图片分辨率,对内容信息中的图像内容进行调整;基于调整后的内容信息执行根据排布信息,对内容信息进行排布,生成打印页面的步骤。
[0132] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:展示用户界面;基于用户界面确定目标打印设备,并获取打印参数。
[0133] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
[0134] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性存储器和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(Resistive Random Access Memory,ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器、人工智能(Artificial Intelligence,AI)处理器等,不限于此。
[0135] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
[0136] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。