PDFのページ付け

PDFのページ付け

1つの仮想ページに2つの異なる物理ページが一緒に表示されるスキャンしたPDFファイルがあります。

解像度の品質は良いです。問題は、読みながらズームして左から右にドラッグする必要があるということです。このpdfファイルを通常のページ(書籍の1ページ= pdfファイルの1ページ)に変換できるコマンド(、、、...)またはスクリプトは
ありますか?convertpdftk

答え1

Pythonスクリプト(および他のいくつかの解決策)に問題があるので、追加しましょう:mutool私にとってはうまくいきます。これはエレガントなリーダーが付属するシンプルで小さなアドオンですmupdf。したがって、次のことを試すことができます。

mutool poster -y 2 input.pdf output.pdf

水平分割の場合yに置き換えてくださいx。もちろん、より複雑なソリューションのために2つを組み合わせることもできます。

(何年も毎日mupdfを使った後)これを見つけて本当に嬉しいです:)


ソースからのインストールmupdfmutool起動

mutoolバージョン1.4以降、mupdfで利用可能:http://www.mupdf.com/news)

wget http://www.mupdf.com/downloads/mupdf-1.8-source.tar.gz
tar -xvf mupdf-1.8-source.tar.gz
cd mupdf-1.8-source
sudo make prefix=/usr/local install

または次に行くダウンロードページ最新バージョンを探してください。

mutoolLinuxディストリビューションパッケージからインストール

Debianに含まれるパッケージはmutool次のとおりです。mupdf-tools:

apt-get install mupdf-tools

答え2

これは、次のコマンドを使用する小さなPythonスクリプトです。古いPyPdfライブラリこれにより、操作は非常にうまく完了します。 (または必要に応じて)というスクリプトに保存してun2up実行可能にし、(chmod +x un2up)フィルタで実行します(un2up <2up.pdf >1up.pdf)。

#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
    q = copy.copy(p)
    (w, h) = p.mediaBox.upperRight
    p.mediaBox.upperRight = (w/2, h)
    q.mediaBox.upperLeft = (w/2, h)
    output.addPage(p)
    output.addPage(q)
output.write(sys.stdout)

廃止予定の警告を無視してください。 PyPdf管理者だけがこれに興味を持っている必要があります。

入力方向が異常な方向の場合は、ページをトリミングするときに別の座標を使用する必要があります。バラよりコードがスキャンしたPDFの各ページを正しく分割しないのはなぜですか?


役に立つ場合に備えて、2つのツールといくつかの手動介入を一緒に使用する以前の答えは次のとおりです。

私が知っている限り、pdfpagesは1つのストリームで同じページに2つの異なる変換を適用できないため、両方のツールが必要です。呼び出しでpdftk42を入力文書のページ数()に置き換えます2up.pdf

pdfjam -o odd.pdf --trim '0cm 0cm 14.85cm 0cm' --scale 1.141 2up.pdf
pdfjam -o even.pdf --trim '14.85cm 0cm 0cm 0cm' --scale 1.141 2up.pdf
pdftk O=odd.pdf E=even.pdf cat $(i=1; while [ $i -le 42 ]; do echo O$i E$i; i=$(($i+1)); done) output all.pdf

pdfjam 2.0がない場合は、pdfpagesパッケージを使用してPDFLaTeXをインストールするだけで十分です(Ubuntuでは次のものが必要です)。texlive-latex-推奨 texlive-latex-推奨インストールたぶん(Ubuntuでは:texliveフォントのおすすめ texlive-fonts-recommended インストール)、次のドライバファイルを使用してくださいdriver.tex

\batchmode
\documentclass{minimal}
\usepackage{pdfpages}
\begin{document}
\includepdfmerge[trim=0cm 0cm 14.85cm 0cm,scale=1.141]{2up.pdf,-}
\includepdfmerge[trim=14.85cm 0cm 0cm 0cm,scale=1.141]{2up.pdf,-}
\end{document}

次に、次のコマンドを実行して、42を入力ファイルのページ数(呼び出す必要がある2up.pdf)に置き換えます。

pdflatex driver
pdftk driver.pdf cat $(i=1; pages=42; while [ $i -le $pages ]; do echo $i $(($pages+$i)); i=$(($i+1)); done) output 1up.pdf

答え3

Imagemagickは1段階で完了できます。

$ convert in.pdf -crop 50%x0 +repage out.pdf

答え4

ImageMagickの変換コマンドを使用すると、ファイルを2つに分割するのに役立ちます。バラよりhttp://www.imagemagick.org/Usage/crop/

私があなたなら、次のような(シェル)スクリプトを作成します。

  1. ファイル分割pdfsam:1ページ=ディスクに1つのファイル(形式は関係ありません。ImageMagickが知っている形式を選択してください。PSまたはPDFのみ)。
  2. ページごとに、前の切り抜き${PageNumber}Aというファイルに入れてください。

  3. 後半を切り取り、${PageNumber}Bというファイルに入れます。

    1A.pdf、1B.pdf、2A.pdf、2B.pdfなどを入手できます。

  4. さて、それを新しいPDFにまとめてみてください。 これを行う方法はいくつかあります。

関連情報