同じ16ページの文書を50部印刷したいのですが、各コピーにシリアル番号が印刷されています。 Ricoh/Lanier 多機能プリンターで印刷しています。次に、lpr
次の行を印刷してステープルします。
lpr -P <printer> -# 50 -o StapleLocation=UpperLeft file.pdf
だから私は他のオプションと組み合わせてこれを達成できることを願っています。
さまざまな透かしオプションを調べて見つけました。同じ「ドラフト」や「機密」などの各文書のテキスト。しかし、各コピーの上部に異なるデジタル透かしや封印があってほしいです。
PyPDF を使用して、それぞれソースファイルから始めて、カスタムテキストをスタンプにする複数のファイルを生成するプログラムを作成できます。ただし、16ページの50枚の文書を印刷するには、1つの文書を50回印刷するよりもはるかに時間がかかります。どんな提案にも感謝します。
答え1
理想的な世界では、これを行うには、プリンタのインタプリタによって実行される小さなPostScriptフラグメントを作成できる必要があります。これを達成するためのすべての概念が言語に存在するからです。
PostScript演算子は、プリンタが「製造後に正常に処理されたページ数currentsystemparams
」PageCount
を整数として含めることができる情報を取得できます。これは、PostScriptコードがページ出力に追加できる一意のシーケンス番号として使用できます。
あるいは、コードは、プリンタ管理者パスワードを必要とするオペレータを使用してstartjob
「仮想マシンのオブジェクトを継続的に変更する」ことができる。この技術を使用すると、印刷されない小さなジョブをプリンタに送信してグローバルカウンタを初期化できます。その後、その後のタスクでこの情報にアクセスして検索、使用、および更新できます。
ただし、複数のコピーを設定すると、PostScriptが一度だけ実行され、各ページがラスタライズされ、各コピーに対して同じページが印刷されるため、両方のテクノロジは機能しません。
以前のPostScript言語リファレンスから引用PDF。
答え2
一部のプリンタには、新しいドキュメントを作成せずにドライバオプションで有効にすることができる透かし印刷オプションがあります(たとえば、プリンタのラスタライザはページ上部に追加の透かしを追加するだけです)、実際にはそうではありません。ここが欲しいです。
したがって、ここで何を行うにもかかわらず(カップフィルターとPPDを使用して多くの変更を加えたり、文書を生成するなど)、プリンタは800ページをラスタライズする必要があります。だからあなたのPyPDFアプローチは私には良いようです。
(私はpdfpages
パッケージと一緒にLaTeXを使います\includepdf
。
\newcounter{serialnr}{10000}%
\includepdf[pagecommand={\thispagestyle{empty}\arabic{serialnr}]{pdffile.pdf}%
\stepcounter{serialnr}%
\includepdf[pagecommand={\thispagestyle{empty}\arabic{serialnr}]{pdffile.pdf}%
(\pgffor
これをより簡単にします)
答え3
タイトルページにのみシリアル番号を印刷したい場合は、
- 文書を
p01.pdf
と に分割しますp02-16.pdf
。 - 50部印刷
p02-16.pdf
。 p01.pdf
異なるシリアル番号で50のバリエーションを作成して印刷するプログラムを作成します。- 手動シャッフリング。
手動で混合するのに時間がかかりすぎる場合は、ループスクリプトを書くためのバリエーションがあります。
do 50 times:
begin
make a copy of p01.pdf with a unique serial number, and print it
print p02-16.pdf
end
これはおそらく「16ページの文書50枚印刷」ソリューションよりも高速ではありません。
もちろん、両面に印刷するには、文書を内外に分割する必要がp01-02.pdf
ありますp03-16.pdf
。