27

PDF ドキュメントのページを並べ替えたり、シートごとに複数のページを結合したりできる無料のツールを探しています。最初の部分(再配置)は、多くのツールで簡単に解決できます(私はPyPDFを使用しています)。

問題は 2 番目の要件にあります。つまり、2 つ (またはそれ以上) のページを 1 つのページに結合することです。たとえば、2 つのページ (A と B) を取得し、これらを回転、拡大縮小して、このように 1 つのページに結合します。

------       ------            ------
|     |      |      |          |     |
|  A  |      |  B   |          | a   |
|     |      |      |          |     |
|     |      |      |  --->    ------
|     |      |      |          |     |        
|     |      |      |          | b   |        
|     |      |      |          |     |        
------       ------            ------

このソリューションは Linux で動作する必要があり、できれば Windows でも動作する必要があります。Python または Perl バインディングを備えたコンソール アプリケーションまたはライブラリを探しています。

正確にこの種の変換を実行するはずの pdfnupライブラリがあり、クロスプラットフォームですが、これに似たバグのために使用できません.

4

11 に答える 11

26

これは、私が見つけた PDF 用のツールの要約です (psup と psbook に相当するものを見つけたかったのです)。

  • 小冊子の作成: pdfbook、pdf-tools (コマンド: pdfbklt)
  • PDF ファイルのマージ: pdfmerge、pdfjam (コマンド: pdfjoin)
  • ページの回転: pdfjam (コマンド: pdf90)
  • 1 シートに複数ページ: pdfjam (コマンド: pdfnup)
  • ポスターの作成 (1 ページに複数のシート): pdfposter

私のパッケージマネージャーから:

A6 小冊子を作成します。

pdfbook -2 -p a5 infile.pdf outfile.pdf

pdf-tools には以下が含まれます。

  • pdfbklt: 小冊子を作成
  • pdfrevert: PDF ファイルへの変更の 1 つのレイヤーを削除し、出力ファイルのサイズを最大化しようとします (線形化された PDF を考慮するため)。
  • pdfstamp: 指定された場所、フォント、およびサイズで、指定された文字列を infile .pdf ファイルに追加します。

多価もあります: http://multivalent.sourceforge.net/Tools/index.html

于 2010-07-22T13:29:53.530 に答える
9

Linux では、PDF ファイルを Postscript に変換して使用できますpsnup。それを呼び出す正確な方法は、ページをどのようにまとめたいか、回転させたいかどうか、どの用紙サイズを使用したいかなどによって異なりますが、次のようになります。

pdf2ps infile.pdf infile.ps
psnup -2 infile.ps outfile.ps
ps2pdf outfile.ps outfile.pdf

利用可能なツールによっては、これを行うためのより効率的な方法があるかもしれません -psnup確かに唯一の方法ではありませんが、比較的よく知られているプログラムです (とにかく Linux では)。

于 2009-02-11T08:07:55.167 に答える
2

Linux を使用している場合は、BookletImposerを使用して複数の PDF ページを 1 つのページに配置できます。

Ubuntu ユーザーは、このツールを Ubuntu Software Center で入手できます。

于 2013-03-18T12:02:59.627 に答える
1

あなたの質問に答えるには、PDF の「面付け」ツールが必要です。これは、PDF ページの画像を特定の配列に配置して、新しい単一の PDF ページを作成するツールです。新聞の組版のようなものだと想像してください。特定の固定寸法 (cm 単位) のページ上で、特定の数の列の幅、特定の数の行の深さのスロットの配列を定義します。次に、これらの空のスロットを上から下、左から右に pdf ソース ファイルのページで埋めます。OP の場合、1x2 配列 (1 列、2 行) に配置された 2 つの 8.5x11 ページで構成される単一のページを作成したいと考えています。それらのページは、1、2 の順序で配列にドロップされます。したがって、最初のページ (pdf のページ 1) を配列の最初のスロット (列 1、行 1) にドロップします。

これを実現するためのツールの使用方法: 古いバージョンの Multivalent をダウンロードします。著者は説明なしに最新版から適切なツール クラスを削除したため、古いものを使用する必要があることに注意してください。2012 年 2 月現在の作業リンクは次のとおりです: http://code.google.com/p/pdfsizeopt/downloads/detail?name=Multivalent20060102.jar 簡単にするために、jar ファイルの名前を m.jar に変更しました。これを機能させるには JRE をインストールする必要があることは言うまでもありませんが、ここに記載しておきます。m.jar を Java クラス パス環境変数に追加する (スクリプト用) か、または -cp オプションと相対パスを指定してコマンド ライン構文を実行します (以下を参照)。以下の例では、インストール ディレクトリのコマンドラインから実行したことに注意してください。それ以外の場合は、ルートからの絶対パスを指定します (c:\1\bin\m.jar など)。

OPが投稿したことを正確に達成する例を次に示します: C:\1\bin>java -cp m.jar tool.pdf.Impose -dim 1x2 -verbose -papersize "21.59x55.88cm" -layout "1,2 「あなたのファイル名.pdf

-dim オプションは、列 x 行で配列を作成することに注意してください。-papersize はここではセンチメートルで指定されていますが、インチが必要な場合は、インチを 2.54 倍して cm を求めてください。-layout オプションを使用すると、配列内の空のスロットを上から下、左から右に埋める順序を指定できます。この場合、pdf の 1 ページ目を一番上に、2 ページを一番下にしたいので、引数は "1,2" です。最後の引数は、実際のソース ファイルです。完了すると、ツールは yourfilename-up.pdf というファイルを出力します。

それが役立つことを願っています。

-マット・ツワイル

于 2012-02-05T11:13:01.863 に答える
1

Multivalentを使用して PDF ページを面付けするこの回答を確認してください

于 2009-02-13T11:43:15.020 に答える
0

これは、サードパーティのアプリからprnファイルでいっぱいのディレクトリを取得し、単一のマージされたpdfを作成するために使用するperl関数です。

sub runMerged($)
{
    my($path) = @_;

    print "Generating merged PDFs for $path\n";

    my @files = sort(getFiles($path, ".prn\$"));
    if (scalar(@files))
    {
        open(MERGE, ">$path/merged.prn");
        for (my $i = 0; $i < scalar(@files); $i++)
        {
            print MERGE "^L\n" if ($i > 0);

            open(FN, "$path/" . $files[$i]);
            while (my $line = <FN>)
            {
                print MERGE $line;
            }
            close(FN);
        }

        chdir("$BASE_PATH/txt2pdf");
        print `./txt2pdf.pl $path/merged.prn`;
    }
}
于 2009-02-13T11:55:57.393 に答える
0

これは、このサイズの 2 倍のシート (A4、縦長) でページ (A5、横長など) を 2 回繰り返すためのスクリプトです。

#!/bin/bash
INPUTFILE=$*
PAGENUM=`pdftk ${INPUTFILE} dump_data | grep NumberOfPages | cut -d : -f 2  | cut -d " " -f 2`
PAGES=`seq 1 ${PAGENUM}`
DUPAGES=`for i in ${PAGES} ; do echo $i $i | tr "\n" " " ; done`
OUTPUT1=`basename ${INPUTFILE} .pdf`.dup.pdf
OUTPUT2=`basename ${INPUTFILE} .pdf`.double.pdf
pdftk ${INPUTFILE} cat ${DUPAGES} output ${OUTPUT1}
pdfjam --nup 1x2 ${OUTPUT1} --outfile ${OUTPUT2}

それは本当にエレガントではありません。2 番目の pdftk 呼び出しなしで実行でき、スペースを含むファイルでは機能しません。ただし、複数ページの PDF では機能します。

于 2015-08-07T09:57:36.713 に答える
0

PyPDF のソース コード、特にrotateClockwise() メソッドを確認してください。ページの内容が書かれている場所がなければなりません。コンテンツの前に "q" 演算子 (状態を保存) と "cm" (スケーリング マトリックスの正しいパラメーターを使用) を挿入し、その後に "Q" 演算子 (状態を復元) を挿入します。

演算子の説明とページの構造については、 PDF ドキュメントを参照してください (便利なリンクについては、一番下までスクロールしてください)。

PyPDF にパッチを送信することを忘れないでください :)

[編集] pdfnup コマンドを含むpdfjam ソースを確認することもできます。

于 2009-02-11T08:35:59.560 に答える
0

Adobe Acrobat XI Pro を使用して、最初のドキュメントを開きます。編集し、「スナップショットを撮る」を選択し、コピーしたいものの上隅をクリックして反対側の隅にドラッグします。ペイントで白紙を開いてください。ペイントでクリーン シートをクリックし、V を制御して、最初のドキュメントをクリーン シートに貼り付けます。同じページに結合する 2 番目のアイテムについて繰り返します。ただし、2 番目のアイテムをペイント シートの 1 番目のアイテムの下に一時的に配置します。次に、2 番目のアイテムをドラッグして、ペイント シートの必要な場所に配置します。ペイント シート ファイルを保存すれば完了です。

于 2016-02-09T08:33:10.510 に答える
0

今週も同様のニーズがありました。しかし、A3シート(縦)で各A4ページ(横)を「2回」繰り返して、後で半分にカットする必要がありました。

私は、私のニーズに最適な多数の面付け機能と、完全に機能する 30 日間の試用版を備えた Acrobat プラグインを見つけました。

他の誰かに役立つことを願っています。
http://www.pdfsnake.com/

于 2011-09-30T17:00:38.427 に答える
0

私はあなたと同じ問題を抱えていましたが、これが私がしたことです:

  1. PDFファイル内の全ページをそれぞれ別ファイルとして抽出
  2. irfanView (プラグインを使用) で、垂直方向の「パノラマ」画像を作成しました
  3. PDFファイルを画像セクションにドラッグしました
  4. クリックして作成
  5. 「画像」は、すべてのページが 1 つの非常に長い垂直画像として連続して作成されます。
  6. 品質をほとんど損なうことなく PDF にエクスポートできます。
  7. 楽しみ
于 2014-02-09T07:59:00.200 に答える