建立 pdf 輸出檔案在兩個檔案之間交替頁面

建立 pdf 輸出檔案在兩個檔案之間交替頁面

我有一個pdf文件,我們稱之為A,由許多頁面組成。然後我有第二個 pdf 文件,我們稱之為 B,由單頁組成。

我的目標是擁有一個輸出文件,我們稱之為 O,具有以下模式:

O[1] = A[1]
O[2] = B[1]
O[3] = A[2]
O[4] = B[1]
O[5] = A[3]
O[6] = B[1]
O[7] = A[4]
O[8] = B[1]
...

換句話說,我想將 A 頁面與 B 頁面交錯。

產生的輸出檔案將允許我將筆記放在投影片的右側(因為我要每張列印兩頁)。

我可以在 LibreOffice 中導入每個頁面,但我正在尋找一個腳本(也許是 pdftk?)來輕鬆運行不同的檔案。

答案1

這是關於整理頁面的,這裡用 B 作為奇怪的/直腸和 A 作為甚至/反面(考慮到OP的確切要求),除非沒有足夠的B頁可用:它們必須在第一次操作中複製足夠的次數。

如果 A 頁面(因此反面)是在B頁左邊看到的,那麼應該要有一個守衛直腸第一頁:例如附加 B 頁。

  • 數一下 A 中的頁數。

    這意味著總共需要 10+1 = 11(或如下所示的 0 到 10),需要額外的 B 頁。如果有一種方法可以自動執行此計數,則應將其用作下方循環的上限值。我不知道這樣的方式。

  • 在 shell 循環中產生足夠的 B 頁(B 的唯一頁 B1)以從第一個pdftk命令複製,並將它們提供給標準輸出到第二個pdftk命令將使用標準輸入對於 B 部分,並將沿著 A 整理它們。

    pdftk B=B.pdf cat $(for page in $(seq 0 10); do echo B1; done) output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
    

    或以更易讀的形式進行相同的分割:

    pdftk B=B.pdf \
          cat $(for page in $(seq 0 10); do echo B1; done) \
          output - | \
    pdftk A=A.pdf \
          B=- \
          shuffle B A \
          output O.pdf
    

    注意:如果不清楚,一旦展開 shell 循環,就會解析為:

    pdftk B=B.pdf cat B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
    

如果頁面順序在 A 和 B 之間顛倒(從 A 頁面開始列印,而不是 B 頁面),可能會在 B 中少生成一頁(可能不需要最後一個 B 頁)並更改shuffle B Ashuffle A B最後一頁命令。

這裡的java(重新)實現pdftk使用了最近發行版中打包的 。

相關內容