最近工作中,我經常遇到需要裁剪 PDF 頁面的情況。例如,收到的掃描版 PDF 文件不是標準的 A4 尺寸,而是有些多余的白邊需要裁掉。
過去偶爾需要裁剪 PDF 時,我一般會通過 macOS 自帶的預覽 app 實現:用標記工具欄中的「矩形選擇」工具選中要保留的范圍,然后按 ?K 就完成了裁剪。(PDF 也有類似功能。)因為步驟簡單,我也沒有多做研究。
這周,因為裁剪 PDF 時需要更精確地控制尺寸,我第一次嘗試用 完成裁剪操作。結果,第一步就被卡住了: 的裁剪界面(「設置頁面框」對話框)選項繁多,甚至還要求選擇將裁剪范圍應用到哪個「框」上:裁剪框、作品框、裁切框還是出血框?
放過我……
拜托,我就想裁個文件,你搞這么多框框是幾個意思?
抱怨歸抱怨,為了飯碗,還是有必要花時間研究一下。 在使用手冊中描述了「設置頁面框」功能,并介紹了幾種邊框的區別,但仍然不夠詳盡。因此,還是有必要直接翻翻 PDF 格式的「辭海」——Adobe 以 PDF 格式標準為基礎、補充自家實現細節的《PDF 》。
果然,《PDF 》的第 10.10.1 節就是對 PDF 文件 5 種「頁面邊界」(Page )的詳細說明。
PDF 頁面的 5 種邊框(來源:PDF 1.7)
PDF 是一種與打印操作密不可分的格式。因此,要區分 PDF 涉及的各種邊界,就要將其放在具體的打印場景中,理解它們各自對應的實際用途。
對于我們大多數日常用戶,打印是一個所見即所得、一步到位的操作:屏幕上顯示的編輯結果,就是我們想要獲得的打印效果;打印機里的 A4 紙就是文檔的最終歸宿,很少需要進一步處理。
但對于設計、印刷行業的專業用戶,打印就是個復雜得多的流程了。在印刷品最終出爐之前,待印內容會首先被印在各種過渡()媒介上,以供預覽、校對,或等待裁切、拼接等后續處理。這些步驟服務于不同目的,使用的介質尺寸各異,對「內容」范圍的界定也不盡相同。因此,為之定義不同的邊界就顯得十分重要了。
假定你是一名設計師,現在需要打印一份雜志設計樣張。那么,你對于這份樣張的尺寸會有哪些要求呢?
首先,用來打印樣張的紙張尺寸最好比實際開本更大。這樣,你就可以利用四周的留白放上輔助線、尺寸之類的參考信息,以及用于套印校色的標記等。更大的樣張還便于在一張紙上印出多個頁面,便于校對和組版。這時,樣張的尺寸就通過「媒體框」(media box)來反映——用于印刷頁面的物理介質的邊界。
套色印刷中常用的對齊標記( mark),在 PDF 中放置在裁切框和媒體框之間的留白上(來源:)
此外,在印刷流程中,最終頁面通常是從更大的印張中切割得來的。由于切割工序不可能完全精確,設計版面時一般都會作「出血」處理,即有意讓底色、背景圖片等元素向實際尺寸外「溢出」幾毫米,以確保經過切割后,背景元素能延伸到紙張邊緣而不留下白邊。上述流程中,頁面內容向外延伸到的邊界就是「出血框」(bleed box),而經過裁切后的預期尺寸就是「裁切框」(trim box)了。
上圖中,數字 1 指向頁面的實際(經裁切后)邊框,數字 2 指向為裁切而預留的出血邊框。兩者之間的部分會在印刷后的裁切流程被切掉。(來源:維基百科)
最后文檔元素后丟棄的內容,實際頁面往往不會被主體內容完全占據,而是還會包括頁面標題、留白等其他元素。這些元素對于當前頁面是有意義的,但在將設計稿插入到其他頁面或文件中時,你可能就希望隱去這些元素,只保留主體內容。這時,就可以通過「作品框」(art box)說明頁面中「有意義」的主體內容的范圍,免去插入后再裁剪的麻煩。
目前為止提到的四種邊界的共性,是它們都具有與設計、印刷流程對應的特定含義:要么定義了物理介質的邊界(媒體框)、要么具有預期的用途(出血框、裁切框、作品框)。相比之下,最后一種邊界——「裁剪框」(crop box)則不具有任何特定含義或用途,它代表的是 PDF 頁面的「可視范圍」;換句話說,代表頁面上哪一部分需要被顯示或者打印出來。
裁剪框也是動態的。PDF 軟件不會越俎代庖幫用戶設置其他幾種邊界,但對于裁剪框則有一定的自主空間。例如,如果用戶指定的裁剪框比媒體框更大,那么只有重合部分會實際生效(因為媒體框是印刷紙張的尺寸,裁剪操作不能「無中生有」)。又如,打印時,軟件還可以移動、旋轉裁剪框,保證內容既能被紙張容納、又能盡量填充利用紙張空間。
不難看出,5 種邊框中與裁剪操作最為相關的是裁剪框。裁剪操作的目的和范圍都具有任意性,與出血設定、主體范圍等因素沒有必然聯系,因此跟出血框、裁切框和作品框都關系不大。至于媒體框,它更多定義的是頁面內容付印時最初使用、未經處理的介質尺寸,而裁剪操作從邏輯上屬于后續加工步驟,因此理論上也不應直接通過修改媒體框來實現。實際上, 的「設定頁面框」默認就是將裁剪范圍應用到裁剪框,并且沒有提供修改媒體框的選項;媒體框只能通過更為專業的 功能修改。
中的設定頁面框功能默認將裁剪應用到裁剪框,媒體框只能通過更為專業的 功能修改
不過,像 這樣將專業選項直接暴露給用戶的畢竟是少數。對于多數面向日常用戶的軟件,例如預覽 app、PDF 等,裁剪只是一個功能按鈕,并不會讓用戶選擇要調整的邊界。那么,它們的裁剪功能是在設定哪種「框」呢?
為此,我分別嘗試用預覽 app 和 PDF 的裁剪功能處理了同一份 PDF 文件,然后通過 的檢查 PDF 結構功能查看所得頁面的屬性。
經預覽 app 和 PDF 裁剪后的頁面邊界信息
可以看到,PDF 的裁剪功能修改的是頁面的媒體框,并同步修改了裁剪框的值。而預覽 app 則只修改了裁剪框,媒體框保持不變。根據我們上面的分析,預覽 app 的做法是比較接近裁剪框的本意的;但由于兩種做法的效果基本相同,非專業用戶一般也沒有必要糾結實現細節。
相比之下,用戶更需要關注的,可能是裁剪功能是否能實現自己的預期目的。
你可能已經發現,PDF 中所謂的「裁剪」是名不副實的,其本質只是在設定邊界,而不涉及修改文件內容。形象地說,PDF 中的裁剪功能并不是在「剪紙」,拿起一把剪刀把不要的部分咔咔剪掉;而更像是在「折紙」,沿著幾道給定的邊界,把不要的部分「折」到背面去,眼不見為凈。
事實上,在點擊預覽 app 中的「裁剪」按鈕時,它還會彈出對話框提示用戶:裁剪操作只是隱藏了選區之外的內容,并沒有真正刪除,這些內容在其他閱讀器中可能還是會被顯示出來。
預覽 app 在裁剪 PDF 時彈出的提示
這種特性當然有很多好處。正是因為裁剪的本質是劃定邊界,多種裁剪邊界的并存才成為可能。此外,這也使得裁剪操作是無損和可逆的:如果對于裁剪結果不滿意,即使已經將改動保存,只要重置裁剪框的值就能將頁面還原到原始形態。
但這種以「折紙」代替「剪紙」的缺點在于,如果用戶希望刪除 PDF 文件中的特定內容或者縮減 PDF 文件的尺寸,那么裁剪操作并不能實現目的:「裁」掉的內容哪都沒去,而是原封不動地留在 PDF 文件中。簡單地通過文本編輯器打開經過裁剪的 PDF 文件(可能需要先解壓經壓縮的內容),就可以看到被「裁」掉的內容。
用文本編輯器打開裁剪后的 PDF 文件,仍可看到被裁去部分的文本內容(圖中以字符編碼表示)
你可能會感到困惑:為什么不能提供一個選項,允許用戶在裁剪頁面的同時一并刪除內容呢?
這固然是一個合理的需求,但 PDF 格式的特點決定了做到這點并非易事。
PDF 文檔本質上是通過一條條繪圖指令描述出來的——在某某像素位置畫上某個字母、從 A 點到 B 點畫一道線,等等。在 PDF 文件內部,這些指令和其所處的頁面(包括上述各類邊界的信息)是相互獨立的,分別存儲在不同對象()中,只在顯示時才通過引用關系疊放起來,并繪制出完整頁面。
PDF 文件相互勾連的內部結構
因此,要做到在裁剪的同時刪除多余內容,必須在裁剪的同時完整渲染原始頁面,根據坐標判斷哪些內容落在裁剪框之外。如果裁剪框恰好將某個元素「攔腰斬斷」(例如落在一段文字中間),那么相關的繪圖指令也必須相應更新。PDF 的結構特征還決定了任何元素的改動都可能具有牽一發動全身的影響,文件中的很多相關部分(例如交叉引用關系)都將需要重新寫入。對于那些只具有基本的閱讀、批注等功能的 PDF 軟件來說,這些編輯操作已經超出了它們的功能范圍。
如果裁剪框恰好將某個元素「攔腰斬斷」,那么相關的繪圖指令也必須相應更新才能徹底刪除被裁去的內容
當然,一些高級 PDF 編輯器確實可以提供這種功能。例如, 就具有一項「移除隱藏信息」功能,可以檢測 PDF 頁面中落在裁剪框之外的元素,并批量將其刪除。
的「移除隱藏信息」功能
但對于沒有購買這些軟件的用戶,能做的就比較有限了。以 macOS 為例,在不安裝額外工具的前提下,最接近的實現方式或許就是使用自帶的 app,先將裁剪后的 PDF 導出成圖片(因此也就丟棄了裁剪范圍之外的信息),然后再從圖片重新生成 PDF。這當然遠不夠理想,不過也算是個聊勝于無的臨時方案吧。
用 間接刪除 PDF 中的被裁剪內容
附錄:PDF 中關于頁面邊界的內容翻譯
注:由于我非印刷專業從業者文檔元素后丟棄的內容,對術語的翻譯可能不準確,僅供參考。
10.10.1 頁面邊界(Page )
PDF 頁面的準備既可能是為了用于最終介質,例如一張紙,也可能是預印流程的一部分,頁面內容被放置在例如膠片或印刷拼版( plate)等過渡介質上。對于后一種情況,區分過渡頁面和最終頁面是非常重要的。過渡頁面往往可能包含與印刷相關的額外內容,例如出血線()、打印標記( marks)等。為了處理這些情形,一個 PDF 頁面可以定義至多五個不同的邊界來控制成像流程的不同方面:
上述邊界在頁面對象詞典中分別由 、 、、 和 指定,都是以用戶空間的默認單位表示的矩形。裁剪框、出血框、裁切框和作品框通常不應超過媒體框的邊界,否則,其范圍將被縮減到與媒體框的重疊部分。圖 10.3 演示了上述邊界的關系(裁剪框未在圖中展示,因為該框與其他邊界并無確定的關系。——譯者注:即前文中的圖片。)。
如何使用不同邊界,取決于放置頁面的用途。常見的用途如下:
在上述場景中,為特定目的讀取出血框、裁切框和作品框的應用程序通常會改變裁剪框的尺寸,以實現這些邊框所指定的裁剪范圍。
附錄 H:功能實現提示 第 167 項
提供多種由用戶指定的選項,用于在打印時確定如何在輸出媒介上體現裁剪框劃定的范圍。盡管不同版本的提供的選項各有不同,默認做法均如下述:
上面的描述僅適用于簡易印刷流程,即關于 PDF 頁面在輸出媒介上的放置方式不存在任何其他信息。某些流程中則存在此類額外信息,其既可能體現在 PDF 文件內部(、或的值)或單獨的作業傳票文件(如 JDF 或 PJTF 文件)。這些場合適用其他的規則,具體則取決于流程的細節。
因此,建議在最初創建 PDF 文件時,使裁剪框與媒體框的尺寸相同(或者略去裁剪框的值,效果是一樣的)。這確保了頁面被打印在 [媒體框] 尺寸的媒介上時,裁剪框與媒介的邊緣是等長的,從而讓頁面內容的放置方式可預測且可靠。另一方面,如果頁面被打印在不同尺寸的媒介上,則其又可根據 [應用程序的] 實現方式定義的或用戶指定的方法被移動或縮放。
更多熱門文章