手把手教你用pdftranspro命令行提取pdf文档内容(含表格及段落)

前言

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,关注获取第一手资料。

本文完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在Android平台上使用FFmpeg需要进行交叉编译,生成适用于Android的FFmpeg库,并将其打包到apk中。以下是手把手教你搭建ffmpeg命令行运行环境的步骤: 1.下载NDK 首先需要下载NDK(Native Development Kit),NDK是一个工具包,用于开发C/C++应用程序的原生库。Android Studio自带NDK,也可以从官网下载。 2.下载FFmpeg源代码 从FFmpeg的官网下载源代码,然后解压到本地。 3.配置交叉编译环境 在FFmpeg源代码根目录下创建一个build_android.sh文件,输入以下内容: ```bash #!/bin/bash NDK=$HOME/Android/Sdk/ndk-bundle # NDK路径 SYSROOT=$NDK/platforms/android-21/arch-arm/ # Android SDK路径 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 # 工具链路径 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-debug \ --disable-network \ --disable-avdevice \ --disable-postproc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=android \ --arch=arm \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" ADDI_LDFLAGS="" build_one ``` 其中,NDK是NDK的路径,SYSROOT是Android SDK的路径,TOOLCHAIN是工具链的路径。 4.执行交叉编译命令 在终端中输入以下命令: ```bash chmod +x build_android.sh ./build_android.sh ``` 等待编译完成。编译完成后,在FFmpeg源代码根目录下会生成一个android目录,其中包了交叉编译生成的FFmpeg库。 5.创建Android Studio项目 打开Android Studio,创建一个新项目。在app/build.gradle文件中添加以下代码: ```groovy android { compileSdkVersion 28 defaultConfig { applicationId "com.example.ffmpegdemo" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { cppFlags "" abiFilters "armeabi-v7a" arguments "-DANDROID_ARM_NEON=TRUE" } } sourceSets.main { jniLibs.srcDirs = ['src/main/jniLibs'] } ndk { abiFilters "armeabi-v7a" } } ``` 其中,externalNativeBuild和ndk是用于指定使用交叉编译生成的库的配置。 6.将FFmpeg库打包到apk中 将交叉编译生成的库复制到项目的app/src/main/jniLibs/armeabi-v7a/目录下。在app/build.gradle文件中添加以下代码: ```groovy android { sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } } ``` 然后在终端中输入以下命令: ```bash ./gradlew assembleDebug ``` 等待打包完成。打包完成后,在项目的build/outputs/apk/debug/目录下会生成一个apk文件,其中包了FFmpeg库。 至此,就完成了搭建ffmpeg命令行运行环境的所有步骤。可以通过在MainActivity中执行FFmpeg命令来测试FFmpeg是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值