Apache PDFBox命令行工具:无需Java编码
在博客文章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時,將提供一種幫助形式,其中列出了可用命令。 這顯示在下一個屏幕快照中。
此屏幕快照顯示此版本的Apache PDFBox(2.0.2)宣傳支持ConvertColorspace, Decrypt , Encrypt , ExtractText , ExtractImages , OverlayPDF , PrintPDF , PDFDebugger , PDFMerger , PDFReader , PDFSplit , PDFToImage , TextToPDF ,和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。
從PDF提取圖像:“ ExtractImages”
PDFBox命令行工具ExtractImages使得從PDF提取圖像變得容易,而命令行工具“ ExtractText”使它可以從PDF提取文本。 我對這種功能的演示將從我使用南達科他州黑山(及其周邊地區)的圖像創建的PDF中提取四張圖像,這些圖像稱為BlackHillsSouthDakotaAndSurroundingSights.pdf 。 接下來顯示此PDF的屏幕快照。
可以使用java -jar pdfbox-app-2.0.2.jar ExtractImages C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf命令使用PDFBox提取此PDF中的四張照片,如下一個屏幕快照所示。
如上一個屏幕快照所示,運行此命令將從PDF中提取四張圖像。 每個提取的圖像均以源PDF命名,并在名稱的末尾附加連字符和計數整數。 生成的圖像也是擴展名為.jpg JPEG文件。 在這種情況下,生成的文件的名稱為BlackHillsSouthDakotaAndSurroundingSights-1.jpg,BlackHillsSouthDakotaAndSurroundingSights-2.jpg,BlackHillsSouthDakotaAndSurroundingSights-3.jpg和BlackHillsSouthDakotaAndSurroundingSights-4.jpg,然后直接在提取的PDF中顯示。
加密PDF:“加密”
Apache PDFBox使加密PDF變得容易。 例如,我可以使用以下命令對“ ExtractImages”示例中使用的PDF進行加密: java -jar pdfbox-app-2.0.2.jar Encrypt -O DustinWasHere -U DustinWasHere C:\pdf\BlackHillsSouthDakotaAndSurroundingSights.pdf ,如圖所示。下一個屏幕快照:
運行crypto命令后,需要輸入密碼才能在Adobe Reader中打開此PDF:
解密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。
合并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.pdf和BlackHillsSouthDakotaAndSurroundingSights.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 。
分割PDF:“ PDFSplit”
我可以使用命令PDFSplit拆分剛剛用PDFMerger創建的third.pdf PDF。 這是一個特別簡單的情況,因為要拆分的PDF只有兩頁。 命令 下一個屏幕快照對此進行了演示。
快照表明,從third.pdf分離出來的PDF稱為third-1.pdf和third-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命令行工具:无需Java编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符内存转成字符串_字符串内存内部
- 下一篇: linux以管理员身份运行命令(linu