利用 Imagemagick 來對 pdf 文件進行擷取

週二(2022/11/15)有外籍老師來班上進行教學活動,主題是「復活節」相關課題,期間進行了一些活動,並要孩子畫出他心目中的火雞。

在課堂結束後,我便將孩子的作品收集起來,並掃描成「PDF」檔案。

再來我便遇到個問題,便是當初掃描的文件是雙面,而我只需要其中的一面(畫有火雞的那一面)。而「PDF」檔案卻是有兩面內容的檔案。

而要從該「PDF」檔案擷取出我需要的那一面(手繪火雞圖),並合併成一個檔案,其實是個很單純很簡單的工作,而我卻只想「一行命令」就直接處理掉

目前我手頭上也正好有可以達成這個需求的工具:「Imagemagick」的「convert」。

以下為用法:

假設,檔名為 all.pdf,文件全部有 54 頁,那麼可能有以下需求:(注意,頁數從 0 開始)

  1. 若僅需其中的第 8 頁
  2. convert all.pdf[7] target.pdf

  3. 若需要其中的第 4 ~ 18頁
  4. convert all.pdf[3-17] target.pdf

  5. 若要取其中的第 5, 9, 10, 28 頁
  6. convert all.pdf[4,8,9,27] target.pdf

  7. 若僅要取奇數頁:
  8. convert -define frames:step=2 all.pdf[0-53] target.pdf

  9. 若僅要取偶數頁:
  10. convert -define frames:step=2 all.pdf[1-53] target.pdf

  11. 若要將每一頁都拆開並成獨立檔案,檔名以 target_01.pdf, target_02.pdf, …. 等規則列出:
  12. convert all.pdf target_%02d.pdf

 

 

參考資源

  1. ImageMagick-Annotated List of Command-line Options
  2. https://imagemagick.org/script/command-line-options.php#define

5 Replies to “利用 Imagemagick 來對 pdf 文件進行擷取”

  1. 您好,我是李先生。在網路上無意間看到您有用過imagemagick 軟體。請問imagemagick軟體 需要軟體費用? 容易自學嗎? 我有一項需求,是想要將PDF學術論文 的每一行,賦予行號,然後作筆記。網路上查到資料在此(https://tex.stackexchange.com/questions/18760/add-page-and-line-numbers-to-a-pdf/18776#18776)。網路作者就是用此軟體,搭配寫了一推我看不懂的code來執行。(我不會寫code, 只是一般使用MS文書的人)。(若我學會imagemagic軟體的話,我也只有line number的功能會用到。)網路上也查不到這軟體的中文使用教學之類的。請問這個軟體對素人來說,易入門嗎? 謝謝

    • 您好,imagemagic 是自由軟體,任何人都可以自由取得與使用(也不用付費)。

      另外針對您的問題,您的 pdf 文件想加上行號,以及在上面作筆記,是要印出來 還是 想要直接在上面作筆記。

      有個您一定會操作的方式,將 pdf 成 word 檔案,然後 word 有加上行號功能,完成後,您再轉成 pdf ,或是根本不用轉了!

      • 你好,我是想讓行號 直接標記在pdf檔案上。存檔 或是列印時,都可以看到行號。
        另外,您說”pdf轉成word檔,然後加註行號”這有試過,但是因為學術文獻有不少圖、公式、化學反應式出現,所以行號數字容易與段落 對不齊、跑掉。我搜尋好久後,看到有人用這軟體做出的效果,實在好整齊、 易讀,所以想問看看這個軟體,適不適合素人自學編輯行數的功能。

        • Imagemagick 可以將文件加上行號,但是他是把文件變成圖像,再轉成PDF, 這樣您要在 文件上註記的目的,便無法達成。

          我剛剛有試著用 python 簡單寫了個加上行號的程式,出來的結果,排版完全跑掉,標題也變成內容,更不用說圖片,表格,所以也不適合您用。

          有試過哪些 pdf 編輯工具?

          • 你好:我看了(https://pse.is/73m3nx)這網站內容後,也發現對方式在”圖片檔”作編輯。 看來為了標註行號,也是多了一道工(PDF –>轉圖片檔標記行數–>再次轉成PDF)。

            至於其他PDF標記行數的方式,小弟目前就找不到了。目前就是用原始人方式:確認文章段落有用處,然後就老實慢慢數行數,做標記。例如: 第5~8行提到 先見解。

            謝謝您的python嘗試。 🙂

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*