單色 PDF 檔案抽掉教用色紅版

9 月 19, 2012 , , , , ,

主要參考這篇: Converting (any) PDF to black (K)-only CMYK - Stack Overflow (本機備份)

後來又參考了一堆雜七雜八的資料,最後才發現不用搞這麼複雜 ....

指令說明

  • GhostScript 的 gswin32c 使用 tiffsep 這個 DEVICE 會將指定檔案分解成「版」的狀態,就像是
    .
    tif 前面的 (Black) (Cyan) (Magenta) (Yellow) 就是 CMYK 一定會分離出來的檔案,一頁 PDF 產生五個檔案,最後一個檔案是完整的。
  • -r300 是設定輸出的 DPI 解析度,正常印刷是 300 DPI ,在此因為要從向量重新取樣成點陣資料,要設定高些才會清楚,最差也要設定 300 DPI 才可。
  • -sOutputFile 設定輸出檔名,%02d 表示使用 01, 02, 03 ... 97, 98, 99 這樣子的流水碼表示,實際使用依照 PDF 頁數設定。
  • 分離出來之後,只用 (Black) 也是黑版就可以重新還原成 PDF 檔案,任務就完成了。在此使用的是 ImageMagick 的 convert 指令。
  • For 迴圈主要是自動處理目錄內的所有 PDF 檔案,達到自動化目的,有空再來整理資料。

以上的方案在 Windows 實際運作是失敗的 ...... 請遺忘後繼續往下看 Orz

真正可運作方案: Linux

Windows 的批次檔我實在是搞不懂,第二次使用 convert 將 TIFF 還原成 PDF,可以在命令提示字元執行正常執行的指令,到了批次檔裡面就死活不執行,訊息是詭異的「這個時候不應有 .tif。」.... 意思其實就是找不到要輸入處理的 TIF 檔案。去拜了 Google 大神,沒人反應這個狀況,全世界應該是我第一個發現的,我又搶了全世界一次沙發了,可是我不想啊 ......

人的生命有限,我不想和 Windows 糾纏了,換到 Linux 平台,打開 php 用恍神的狀態馬上就寫好,並且可以順利運作,其中又踩到 Memory allocation failed 以及  No space left on device 的地雷,不過把 DPI 往下調整,實際列印看結果後,就蓋棺結案了,兩天了 ...我累了 ...

 

原始檔案長這樣

處理後長這樣

移除裁切線範圍

上面完成其實實際的長相是這樣

在角落有裝訂時要對準的裁切線,一般 PDF 檔案應該是難得一見,不過在出版社看到的幾乎都是這種檔案 Orz

裁切線對於一般使用者並無意義,而且佔據版面位置、影響閱讀,所以最好是可以在轉檔時一併移除。

所以必須使用 ImageMagick 的 convert 來作裁切處理:

 

  • 舉例而說,a01(Black).tif 原圖尺寸為 3504x4958 ,使用 convert -crop 參數進行裁切動作,因為四邊都需要處理,所以需要使用兩次 -crop 參數
  • 第一次的 -crop 參數使用 + 的方法, + 的動作是從指定左方、上方要內縮的距離,
  • 第二次使用 - 的方法, 扣除右方、下方距離

需要注意的是,在我使用的版本  ImageMagick 6.5.4-8 ,在 -crop 指定的尺寸都是原圖尺寸,搜尋看到的其他網站在後面 - 的時候,都必須先減去 + 的尺寸,也就是其他的網站會寫成 -crop 3236x4758-150-175 ,不只尺寸扣除連後面的距離也除二 .... ,我就是看了其他網站的錯誤示範讓我卡關超久,請直接使用原圖尺寸然後該內縮多少、扣除多少直接寫會比較容易。

然後處理後的就是比較滿版的頁面。

最後得到的 TIFF 檔案不能直接轉成 PDF 檔案,會出現我無法理解的怪頁面,所以中間又多了一次轉成 BMP 然後才轉成 PDF  ...... ( 如果世界上沒有 BMP 我不知道該怎麼活了 = =a )

 1,678 total views,  1 views today

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。