apache pdfbox_Apache PDFBox命令行工具:无需Java编码

Apache PDFBox不仅提供了Java库,还有一系列可以直接在命令行中使用的工具,无需额外的Java编码。本文展示了如何使用PDFBox的命令行工具进行PDF文本提取、PDF到文本转换、图像提取、PDF加密解密、PDF合并与分割等操作,提供了一个无需编程的PDF处理解决方案。
摘要由CSDN通过智能技术生成

apache pdfbox

在博客文章Apache PDFBox 2中 ,我演示了将Apache PDFBox 2用作从Java代码中调用的库来操作PDF。 事实证明,Apache PDFBox 2还提供了可以直接从命令行直接使用的命令行工具 ,而无需其他Java编码。 有几种命令行工具可用,我将在本文中演示其中一些工具。

PDFBox命令行工具通过利用PDFBox的可执行JAR (带有Main-Class: org.apache.pdfbox.tools.PDFBox java -jar Main-Class: org.apache.pdfbox.tools.PDFBox )来执行。 这是JAR,名称中带有“ app”,对于此特定的博客文章,为pdfbox-app-2.0.2.jar 。 用于在java -jar pdfbox-app-2.0.2.jar <Command> [options] [files]调用这些工具的通用格式。

在不带参数的情况下执行可执行JAR时,将提供一种帮助形式,其中列出了可用的命令。 这显示在下一个屏幕快照中。

pdfBoxCommandLineToolsHelp

此屏幕快照显示,该版本的Apache PDFBox的的(2.0.2)公布支持ConvertColorspace的“可用的命令”的支持, 解密加密ExtractTextExtractImagesOverlayPDFPrintPDFPDFDebuggerPDFMerger ,PDFReader, PDFSplitPDFToImageTextToPDF ,和WriteDecodedDoc

提取文本:“ ExtractText”

我正在查看的第一个命令行工具是从PDF中提取文本。 我在以前的博客文章中演示了使用PDFBox从Java代码执行此操作。 在这里,我将使用PDFBox直接在命令行中执行相同的操作,而看不到Java源代码。 以下操作通过示例从PDF Scala中提取文本。 在我的上一篇文章中,发布了Java代码以在线访问此PDF,并使用PDFBox从中提取文本。 在这种情况下,我已通过示例下载了Scala,并针对存储在我的硬盘中C:\pdf\ScalaByExample.pdf上的已下载PDF运行了PDFBox ExtractText命令行工具。

使用PDFBox从命令行从PDF提取文本的命令是: java -jar pdfbox-app-2.0.2.jar ExtractText C:\pdf\ScalaByExample.pdf 。 接下来的两个屏幕快照演示了如何运行此命令及其生成的文件。 从这些屏幕快照中,我们可以看到默认情况下此命令生成的文本文件与源PDF具有相同的名称,但扩展名为.txt 。 该命令支持多个选项,包括通过在源PDF的文件名之后放置该名称来指定文本文件的名称,以及通过-console标志(而不是通过-console标志)将文本写入控制台而不是文件的功能。输出可以重定向)。 接下来显示如何指定自定义文本文件名以及如何将文本定向到控制台而不是文件的示例。

  • 明确指定文本文件名:
    • java -jar pdfbox-app-2.0.2.jar ExtractText C:\pdf\ScalaByExample.pdf C:\pdf\dustin.txt
  • 在控制台上渲染文本
    • java -jar pdfbox-app-2.0.2.jar ExtractText -console C:\pdf\ScalaByExample.pdf

来自文本的PDF:“ TextToPDF”

如果需要采用其他方法(以文本作为源并生成PDF),则命令TextToPDF是合适的。 为了说明这一点,我使用的是名为doi.txt的源文本文件,其中包含美国独立宣言的一部分

The unanimous Declaration of the thirteen united States of America,

When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.

We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness

C:\pdf\doi.txt处有示例文本文件的情况下,可以对它运行PDFBox的TextToPDF 。 命令java -jar pdfbox-app-2.0.2.jar TextToPDF C:\pdf\doi.pdf C:\pdf\doi.txt (请注意,目标PDF列为第一个参数,而源文本文件列在其中列为第二个参数)。 接下来的三个屏幕快照演示了如何运行此命令从源文本文件成功生成PDF。

20160707-正在运行PDFBoxTextToPDF

20160707-doiPdfGeneratedByPDBBoxTextToPDF

20160707-doiPdfInAdobeReader

从PDF提取图像:“ ExtractImages”

PDFBox命令行工具ExtractImages使得从PDF提取图像变得容易,而命令行工具“ ExtractText”使它可以从PDF提取文本。 我对这种功能的演示将从我使用南达科他州黑山(及其周边地区)的图像创建的PDF中提取四张图像,这些图像称为BlackHillsSouthDakotaAndSurroundingSights.pdf 。 接下来显示此PDF的屏幕快照。

20160708-黑色小山PDF

PDFBox可用于通过命令java -jar pdfbox-app-2.0.2.jar ExtractImages C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf提取此PDF中的四张照片,如下一个屏幕快照所示。

20160708-blackHillsFourImagesExtracted fromPDF

如上一个屏幕快照所示,运行此命令将从PDF中提取四张图像。 每个提取的图像均以源PDF命名,并在名称的末尾附加连字符和计数整数。 生成的图像也是扩展名为.jpg JPEG文件。 因此,在这种情况下,生成的文件的名称为BlackHillsSouthDakotaAndSurroundingSights-1.jpg,BlackHillsSouthDakotaAndSurroundingSights-2.jpg,BlackHillsSouthDakotaAndSurroundingSights-3.jpg和BlackHillsSouthDakotaAndSurroundingSights-4.jpg,然后直接从PDF中显示每个格式。

BlackHillsSouthDakotaAndSurroundingSights-1.jpg BlackHillsSouthDakotaAndSurroundingSights-2.jpg
BlackHillsSouthDakotaAndSurroundingSights-1 BlackHillsSouthDakotaAndSurroundingSights-2
BlackHillsSouthDakotaAndSurroundingSights-3.jpg BlackHillsSouthDakotaAndSurroundingSights-4.jpg
BlackHillsSouthDakotaAndSurroundingSights-3 BlackHillsSouthDakotaAndSurroundingSights-4

加密PDF:“加密”

Apache PDFBox使加密PDF变得容易。 例如,我可以使用以下命令对“ ExtractImages”示例中使用的PDF进行加密: java -jar pdfbox-app-2.0.2.jar Encrypt -O DustinWasHere -U DustinWasHere C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf ,如图所示。下一个屏幕快照:

20160714-pdfBox加密

运行crypto命令后,我需要密码才能在Adobe Reader中打开此PDF:

20160714-pdfBoxEncryptedPDFRequiresPasswordInReader

解密PDF:“解密”

使用命令java -jar pdfbox-app-2.0.2.jar Decrypt -password DustinWasHere C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf解密此PDF一样容易,如下一个屏幕快照所示, java -jar pdfbox-app-2.0.2.jar Decrypt -password DustinWasHere C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf 。 该图像演示了当没有提供用于解密PDF的密码(或提供了错误的密码)时,抛出InvalidPasswordException ,然后它显示了解密成功,并且我再次能够在没有密码的情况下在Adobe Reader中打开PDF。

20160714-pdf盒解密

合并PDF:“ PDFMerger”

PDFBox允许使用“ PDFMerger”命令将多个PDF合并为一个PDF。 在下一个屏幕快照中,通过使用命令java -jar pdfbox-app-2.0.2.jar PDFMerger C:\pdf\doi.pdf C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf C:\pdf\third.pdf前面提到的两个单页PDF( doi.pdfBlackHillsSouthDakotaAndSurroundingSights.pdf合并到一个名为third.pdf的新PDF)中, third.pdf进行了java -jar pdfbox-app-2.0.2.jar PDFMerger C:\pdf\doi.pdf C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf C:\pdf\third.pdf

20160714-pdf盒子合并

20160714-pdfs合并

分割PDF:“ PDFSplit”

我可以分裂third.pdf只是创建PDF PDFMerger用命令PDFSplit 。 这是一个特别简单的情况,因为要拆分的PDF只有两页。 命令 下一个屏幕快照对此进行了演示。

20160715-pdfBoxpSplit

20160715-pdfsSplitFromThirdPdf

这些快照表明,从third.pdf分离出来的PDF称为third-1.pdfthird-2.pdf

结论

在这篇文章中,我展示了一些现成的命令行实用程序,不需要Java编码。 还有一些其他命令行实用程序,此处未演示。 通过运行PDFBox发行版随附的可执行“ app” JAR,可以轻松使用所有这些命令。 作为命令行实用程序,这些工具具有命令行工具的优点,包括运行速度快,可以包含在脚本和其他自动化工具中。 这些工具的另一个好处是,由于它们是在开源中实现的,因此开发人员可以使用这些工具的源代码来查看如何在自己的应用程序和工具中使用PDFBox API。 Apache PDFBox命令行工具是免费提供的,并且易于使用的PDF操作工具可以在无需编写额外的Java代码的情况下使用。

翻译自: https://www.javacodegeeks.com/2016/07/apache-pdfbox-command-line-tools-no-java-coding-required.html

apache pdfbox

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值