web-dev-qa-db-ja.com

Windowsマシンのコマンドラインから1ページPDFドキュメントを(垂直に)半分に切り取りますか?

Windowsマシンのコマンドラインから1ページPDFを(垂直に)半分にカットする方法はありますか?

6
Stryker84

それは技術的に非常に複雑です...

A PDFにはページの画像が含まれていません(2つに簡単にカットできます)。
代わりに、PDFには、ページの作成方法を読者に指示する(Postscriptのような)コンピューター言語のスクリプトが含まれています。
このスクリプトは、必ずしも論理的な上から下の順序で機能するとは限りません。ページを下から上に作成することも、左から右に作業することも同様に有効です。
またはページの要素がランダムな順序で指定されています。
(フッターのレンダリング、ヘッダーのレンダリング、ページ全体の周囲の境界線の描画、「このテキスト」を含む右下のテキストブロック。この画像を含む左上のボックスなど)

これは、スクリプトに明確な下半分または上半分がないことを意味します。前半はどの部分に、後半はどの部分に入るのかを考えるのは非常に難しいでしょう。また、一部のものは複製する必要があり(両方の半分で使用される埋め込みフォントなど)、2つの部分に変更する必要があります(画像や切断線と交差する境界線など)。

私が考えることができる最も簡単な方法は、最初にページ全体を画像としてレンダリングする「PDFから画像へ」のコンバーターです。次に、画像を切り取り、下部と上部の画像から新しいPDFを作成します。
これを行うには3つのプログラムが必要です。
そして、元のPDF(テキスト領域の検索機能やselect-copy-pasteなど)の優れた点を失うことになります。

私はこれを1ステップで実行できるプログラムを知りません。 PDF2Imageおよびその逆とバッチイメージマニピュレータは簡単に見つけることができます。

2
Tonny

PDFファイルを切り取り/切り抜くには、2つの一般的な方法があります。(1)前述のように画像に変換する方法と、(2)切り抜きディレクティブを使用してページを複数回レンダリングする方法です。オプション( 2)PDFファイル(たとえば、強調表示可能なテキスト)の元の側面のほとんどを保持するため、一般的に最適に機能します。いくつかのプログラムは、オプション(1)および/またはオプション(2)を実行します。 --k2pdfopt(1&2)、briss(2)、sopdf(2)、papercrop(1&2)などがあります。k2pdfoptが最もよくわかっています。

「垂直に半分」とは2つの列を意味する場合は、次のように使用します。

k2pdfopt -grid 2x1x0 -w 0.5s -h 1s file.pdf

ページの上半分と下半分が必要な場合は、次を使用します。

k2pdfopt -grid 1x2x0 -w 1s -h 0.5s file.pdf

出力(ファイル名がfile.pdfの場合)はfile_k2opt.pdfになります。

k2pdfoptは、 http://willus.com/k2pdfopt/ からオープンソース(MS Windowsバイナリがあります)として入手できます。

PDFを電子書籍に適合させようとしているだけの場合は、ここで「スティッキー」スレッドを確認してください。

http://www.mobileread.com/forums/forumdisplay.php?f=184

9
willus