如何在 Linux 命令行上製作和合併 PDF 文件

已發表: 2022-09-24
簡凱利/Shutterstock.com

PDF 文件旨在促進共享。 每個人都可以打開它們——如果他們沒有其他東西的話,可以在他們的網絡瀏覽器中打開。 Linux 允許您在命令行上操作、合併和拆分 PDF 文件。

目錄

便攜式文檔格式
在 Linux 上創建 PDF 文件
qpdf 命令
合併 PDF 文件
拆分 PDF 文件
旋轉頁面
加密和解密
qpdf 是一個優秀的工具

便攜式文檔格式

可移植文檔格式 (PDF) 解決了一個問題。 當您在計算機上創建文檔並想與其他人共享時,將文檔發送給他們並不總是有效。

即使他們擁有您用來創建文檔的相同軟件包,他們的計算機上安裝的字體也可能與您在他們的計算機上安裝的字體不同。 他們可以打開文檔,但它看起來不對。

如何在 Linux 上安裝 Google 和 Microsoft 字體
相關如何在 Linux 上安裝 Google 和 Microsoft 字體

如果他們沒有您用來創建軟件包的軟件副本,他們將根本無法打開它。 如果您使用僅在 Linux 上可用的軟件,那麼將該文檔發送給僅使用 Windows 的人是沒有意義的。

Adobe 在 1992 年創建了一種新的文件格式,並將其稱為可移植文檔格式。 根據該標準(ISO 32000)創建的文檔包含正確呈現文件內容所需的圖像和字體。 PDF 文件可以在任何平台上由 PDF 查看器打開。 這是一個跨平台、簡單且優雅的解決方案。

PDF 文件並不像文字處理器文檔那樣具有延展性。 他們不容易進行編輯。 如果您需要更改 PDF 的內容,最好返回源材料,對其進行編輯並生成新的 PDF。 與嘗試更改內容相比,可以相對輕鬆地對 PDF 文件執行結構操作。

以下是在 Linux 上創建 PDF 文件的一些方法,以及如何執行一些可以應用於它們的轉換。

在 Linux 上創建 PDF 文件

Linux 上可用的許多應用程序可以直接生成 PDF 文件。 LibreOffice 在工具欄右側有一個按鈕,用於生成當前文檔的 PDF。 這再簡單不過了。

LibreOffice Writer PDF 按鈕

對於 PDF 創建的細粒度控制,Scribus 桌面出版應用程序是無可匹敵的。

如果您需要創建具有科學或數學內容的文檔,也許是為了提交給學術期刊,使用 LaTeX 的應用程序(例如 Texmaker)將是您的完美選擇。

如何在 Linux 命令行上使用 pandoc 轉換文件
相關如何在 Linux 命令行上使用 pandoc 轉換文件

如果您更喜歡純文本工作流程,也許使用 Markdown,您可以使用pandoc來轉換和轉換包括 PDF 在內的許多文件格式。 我們有一個專門針對pandoc的指南,但一個簡單的示例將向您展示它是多麼容易使用。

首先安裝 Texmaker。 pandoc依賴於一些 LaTeX 庫來生成 PDF。 安裝 Texmaker 是滿足這些依賴關係的便捷方式。

-o (輸出)選項用於指定將創建的文件類型。 “raw-notes.md”文件是一個純文本的 Markdown 文件。

 pandoc -o new.pdf raw-notes.md 

使用 pandoc 從 Markdown 文件創建 PDF

如果我們在 PDF 查看器中打開“new.pdf”文件,我們會看到它是格式正確的 PDF。

打開由 pandoc 創建的 PDF

qpdf 命令

qpdf命令允許您操作現有的 PDF 文件,同時保留其內容。 您可以進行的更改是結構性的。 使用qpdf ,您可以執行諸如合併 PDF 文件、提取頁面、旋轉頁面以及設置和刪除加密等任務。

要在 Ubuntu 上安裝qpdf ,請使用以下命令:

 sudo apt install qpdf 

在 Ubuntu 上安裝 qpdf

Fedora 上的命令是:

 須藤 dnf 安裝 qpdf 

在 Fedora 上安裝 qpdf

在 Manjaro 上,您必須輸入:

 sudo pacman -S qpdf 

在 Manjaro 上安裝 qpdf

合併 PDF 文件

起初,一些qpdf命令行語法可能看起來令人困惑。 例如,許多命令需要輸入 PDF 文件。

如果命令不需要,則需要使用--empty選項。 這告訴qpdf不要期望輸入文件。 --pages選項允許您選擇頁面。 如果您只提供 PDF 名稱,則使用所有頁面。

要合併兩個 PDF 文件以形成一個新的 PDF 文件,請使用此命令格式。

 qpdf --empty --pages first.pdf second.pdf --combined.pdf 

合併兩個 PDF 文件以創建一個新的 PDF 文件

該命令由以下部分組成:

  • qpdf :調用qpdf命令。
  • –empty :告訴qpdf沒有輸入 PDF。 您可能會爭辯說“first.pdf”和“second.pdf”是輸入文件,但qpdf認為它們是命令行參數。
  • –pages :告訴qpdf我們將使用頁面。
  • first.pdf second.pdf :我們要從中提取頁面的兩個文件。 我們沒有使用頁面範圍,因此將使用所有頁面。
  • :表示命令選項的結束。
  • combined.pdf :將創建的 PDF 的名稱。

如果我們使用ls查找 PDF 文件,我們將看到我們的兩個原始文件(未修改)和名為“combined.pdf”的新 PDF。

 ls -hl first.pdf second.pdf combine.pdf 

使用 ls 列出現有的和新的 PDF 文件

“first.pdf”有兩頁,“second.pdf”有一個頁面。 新的 PDF 文件有三頁。

新的 PDF 文件包含兩個原始 PDF 文件的所有頁面

您可以使用通配符而不是列出大量源文件。 此命令創建一個名為“all.pdf”的新文件,其中包含當前目錄中的所有 PDF 文件。

 qpdf --empty --pages *.pdf -- all.pdf 

在 qpdf 命令行中使用通配符

我們可以通過在要從中提取頁面的文件名後面添加頁碼或範圍來使用頁面範圍。

這將從“first.pdf”中提取第一頁和第二頁,從“second.pdf”中提取第二頁。 請注意,如果“combined.pdf”已經存在,它不會被覆蓋。 它添加了選定的頁面。

 qpdf --empty --pages first.pdf 1-2 second.pdf 1 -- combined.pdf 

使用頁面範圍選擇要添加到新文件的頁面

頁面範圍可以像您喜歡的那樣詳細。 在這裡,我們從一個大型 PDF 文件中請求一組非常具體的頁面,並且我們正在創建一個摘要 PDF 文件。

 qpdf --empty --pages large.pdf 1-3,7,11,18-21,55 -- summary.pdf 

使用一組複雜的頁面範圍

輸出文件“summary.pdf”包含輸入 PDF 文件的第 1 至 3、7、11、18 至 21 和 55 頁。 這意味著“summary.pdf”中有 10 頁

新 PDF 的第 10 頁是源文件的第 55 頁

我們可以看到第 10 頁是源 PDF 的第 55 頁。

拆分 PDF 文件

合併 PDF 文件的反面是拆分 PDF 文件。 要將 PDF 拆分為單獨的 PDF 文件,每個文件包含一個頁面,語法很簡單。

我們要拆分的文件是“summary.pdf”,輸出文件是“page.pdf”。 這用作基本名稱。 每個新文件都有一個添加到基本名稱的數字。 --split-pages選項告訴qpdf我們正在執行什麼類型的操作。

 qpdf summary.pdf page.pdf --split-pages 

將一個 PDF 文件拆分為多個 PDF 文件,每個文件一頁

輸出是一系列按順序編號的 PDF 文件。

 ls 頁面*.pdf 

使用 ls 列出編號的 PDF 文件

如果您不想拆分每個頁面,請使用頁面範圍來選擇您想要的頁面。

如果我們發出下一個命令,我們將拆分一組單頁 PDF 文件。 頁面範圍用於指定我們想要的頁面或範圍,但每個頁面仍然存儲在單個 PDF 中。

 qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages 

拆分具有頁面範圍的 PDF

提取的頁面具有基於“section.pdf”的名稱,並添加了序列號。

 ls 部分*.pdf 

使用 ls 列出編號的 PDF 文件

如果要提取頁面範圍並將其存儲在單個 PDF 中,請使用這種形式的命令。 請注意,我們不包括--split-pages選項。 實際上,我們在這裡所做的是 PDF 合併,但我們只是從一個源文件中“合併”頁面。

 qpdf --empty --pages large.pdf 8-13 -- Chapter2.pdf 

從 PDF 文件中提取一系列頁面並將它們存儲在一個新的 PDF 文件中

這將創建一個名為“chapter2.pdf”的單頁多頁 PDF。

旋轉頁面

要旋轉頁面,我們創建一個新的 PDF,它與旋轉指定頁面的輸入 PDF 相同。

我們使用--rotate選項來執行此操作。 +90表示將頁面順時針旋轉 90 度。 您可以將頁面旋轉 90、180 或 270 度。 您還可以使用負數指定逆時針旋轉度數,但幾乎不需要這樣做。 -90 的旋轉與 +270 的旋轉相同。

用冒號“ : ”與旋轉分隔的數字是您要旋轉的頁面的編號。 這可能是頁碼和頁面範圍的列表,但我們只是旋轉第一頁。 要旋轉所有頁面,請使用1-z的頁面範圍。

 qpdf --rotate=+90:1 摘要.pdf 旋轉1.pdf 

旋轉 PDF 的第一頁

第一頁已為我們旋轉。

第一頁順時針旋轉 90 度的 PDF 文件

加密和解密

PDF 文檔可以加密,因此它們需要密碼才能打開。 該密碼稱為用戶密碼。 更改 PDF 的安全性和其他權限設置需要另一個密碼。 它稱為所有者密碼

要加密 PDF,我們需要使用--encrypt選項並提供兩個密碼。 用戶密碼首先出現在命令行中。

我們還指定要使用的加密強度。 如果您想支持非常舊的 PDF 文件查看器,您只需要從 256 位加密降到 128 位。 我們建議您堅持使用 256 位加密。

我們將創建一個名為“secret.pdf”的“summary.pdf”的加密版本。

 qpdf --encrypt hen.rat.squid goose.goat.gibbon 256 -- summary.pdf secret.pdf 

創建加密的 PDF

當我們嘗試打開 PDF 時,PDF 查看器會提示我們輸入密碼。 輸入用戶密碼授權查看器打開文件。

PDF 查看器提示輸入密碼以打開加密的 PDF 文件

請記住, qpdf不會更改現有的 PDF。 它使用我們要求它進行的更改創建一個新的。 因此,如果您製作加密的 PDF,您仍將擁有原始的未加密版本。 根據您的情況,您可能希望刪除原始 PDF 或將其安全地存儲起來。

要解密文件,請使用--decrypt選項。 顯然,您必須知道所有者密碼才能正常工作。 我們需要使用--password選項來識別密碼。

 qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf 

從加密的 PDF 創建解密的 PDF

“unlocked.pdf”無需密碼即可打開。

qpdf 是一個優秀的工具

我們對qpdf印象深刻。 它為處理 PDF 文件提供了一個靈活且功能豐富的工具集。 它也非常快。

查看他們精心編寫的詳細文檔,看看它還能做多少。