前言
PDF 文件是一种非常常用的文件格式,在企业信息系统存储和交换信息中普遍使用。然而从 PDF 文档中获取表格段落等文档内容却是一件非常麻烦的事情,这是因为pdf的设计初衷是基于文档显示的,为了能保证在不同平台中完全一致的视觉效果,文档以页为单位存储的是一系列包含线条、字符、图片等基本元素的绘图指令。基于这个原因,pdf文档不能像word文档一样直接获取表格和段落,如要获取结构化的文档内容,需要在获取字符、线条等图形及坐标基础上按阅读顺序把含线条、字符、图片等基本元素拼接成文档,过程十分复杂,而且需要不断优化才能达到满意的效果。
PDFBox是apache基金会旗下的一个为java开发人员读取和创建PDF文档而准备的纯Java开源类库。通过PDFBox可以轻松解析PDF文档并逐页获取图形元素及坐标。
pdftranspro是基于PDFBox的一个专业 pdf 文本内容提取解决方案,支持windows和linux平台,经过数年的持续改进其内容提取能力已经达到令人惊艳的地步,不仅能对跨页、跨栏的段落或表格进行合并处理,精确还原整篇文档内的段落和表格,而且可以同时输出html、xml、json、txt 等 4 种格式,方便用户高效获取 pdf 文档内的精确信息或数据。其个人版提供操作界面,可以一键处理单个pdf文档,个人用户免费使用。控制台版可通过命令行方式集成pdf文档转换功能,也提供 pdf文档截取合并等实用的 pdf 编辑功能。控制台版需取得licence文件才能使用,用户可免费试用。
接口说明
1、单文档转换
转换单个 PDF 文档至 html、xml、json、txt 等格式。
命令格式:
cmd_pdftranspro transone <源文件> <目标文件夹> <转换样式> <是否生成html> <是否生成xml> <是否生成json> <是否生成txt> <是否嵌入图片> [<起始页码> [截止页码]]
其中转换样式参数只能为 0 或 1,分别对应“跨页合并”和“标记页码”,是否生成 html 等参数也只能为 0 或 1,分别对应生成该格式或不生成,可同时转换生成多种格式文件,是否嵌入图片只能为 0 或 1,分别对应不嵌入图片和嵌入图片。
示例1:
cmd_pdftranspro transone D:\pdftranspro\infiles\abc.pdf D:\pdftranspro\outfiles 1 1 0 0 0 0 0
表示将文件 D:\pdftranspro\infiles\abc.pdf 转成 html 格式,转换样式为“标记页码”,文档中会标记页码,文件生成在 D:\pdftranspro\outfiles,不嵌入图片。
示例2:
cmd_pdftranspro transone D:\pdftranspro\infiles\abc.pdf D:\pdftranspro\outfiles 0 1 1 1 1 1 10 20
表示将文件 D:\pdftranspro\infiles\abc.pdf 转成 html、xml、json、txt 四种格式,转换样式为“跨页合并”,文档中如果有段落或表格跨页的情况,将合并为一个段落或表格,不会在文档中插入页码。指定页码范围为 10 至 20 页,4个转换文件生成在 D:\pdftranspro\outfiles,嵌入图片。
2、批量文档转换
批量转换 PDF 文档至 html、xml、json、txt 等格式。
命令格式:
命令格式:cmd_pdftranspro transall <源文件夹> <目标文件夹> <转换样式> <是否生成html> <是否生成xml> <是否生成json> <是否生成txt> <是否嵌入图片> [[<起始页码> [截止页码] [并发任务数]]
其中转换样式参数只能为 0 或 1,分别对应“跨页合并”和“标记页码”,是否生成 html 等参数也只能为 0 或 1,分别对应生成该格式或不生成,可同时生成多种格式文件,是否嵌入图片只能为 0 或 1,分别对应不嵌入图片和嵌入图片,并发任务数系统默认为 5,有效设置范围为 1 至 10。
示例1:
cmd_pdftranspro transall D:\pdftranspro\infiles D:\pdftranspro\outfiles 1 1 0 0 0 0
表示将文件夹 D:\pdftranspro\infiles 下所有 pdf 文件转成 html 格式,转换样式为“标记页码”,文件生成在 D:\pdftranspro\outfiles,不嵌入图片。
示例2:
cmd_pdftranspro transall D:\pdftranspro\infiles D:\pdftranspro\outfiles 0 1 1 1 1 1 10 20
表示将文件夹 D:\pdftranspro\infiles 下所有 pdf 文件转成 html、xml、json、txt 四种格式,转换样式为跨页合并,页码范围为 10 至 20 页,文件生成在 D:\pdftranspro\outfiles,嵌入图片。
3、文档截取
用于截取 pdf 文档,生成一份新的指定页码范围的 pdf 文档。
命令格式:
cmd_pdftranspro split <源文件> <目标文件夹> <起始页码> <截止页码>
截取后的文件名为源文件加前缀”split_”。
示例:
cmd_pdftranspro split D:\pdftranspro\infiles\abc.pdf D:\pdftranspro\outfiles 1 10
表示将截取文件 D:\pdftranspro\infiles\abc.pdf 第 1 至 10 页生成在 D:\pdftranspro\outfiles 下,文件名默认为"split_abc.pdf”。
4、文档合并
用于合并两份 pdf 文档为一份 pdf 文档。
命令格式:
cmd_pdftranspro merg <源文件 1> <源文件 2> <目标文件夹>
截取后的文件名为源文件加前缀"split_”。
示例:
cmd_pdftranspro merg D:\pdftranspro\infiles\abc1.pdf D:\pdftranspro\infiles\abc2.pdf D:\pdftranspro\outfiles
表 示 合 并 文 件 D:\pdftranspro\infiles\abc1.pdf 和D:\pdftranspro\infiles\abc2.pdf 生成在 D:\pdftranspro\outfiles 下,文件名为"merg_abc1.pdf"。
vx搜:pdftranspro,关注获取第一手资料。
本文完。