問題タブ [imposition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java -> iText -> 面付け (n-Up) -> 例
このコードを完全に理解するのを手伝ってくれる人にスターバックス カードを提供したいと思います。それは私にとって重要です。お時間をいただきありがとうございます!
ローワギー氏の素晴らしい本 (iText in Action, Second Edition) を読み始めました。それは本当によく書かれており、有益です。雇用主からの圧力が高いため、第 6 章にスキップするように強いられています。n-Up コード例を理解することは、今の私にとってかなり重要であり、新しいプログラマーであるため、以下のコードにコメントを付けてみます。質問。
もしよろしければ、お時間を割いて下の私の質問を見て、私がそれを説明するのを手伝っていただければ、それは素晴らしいことです. すべての有益なコメントに感謝します。
Q: ここで、「pow」変数は、たとえば、pow が 3 の場合、結果の n-up は (2x2x2) 8 になることを示しています。結果の pdf には、「src」PDF の 8 つのコピーが含まれます。これは正しいです?
A:
Q: 何が起こっているのかわかりません。私には、モジュラス操作の残りがゼロの場合、新しい長方形が縦向きで作成され、その逆のように見えます。これは正しいです?もしそうなら、理由を聞いてもいいですか?
A:
Q: 上記の「for」ループでは、最終的な pdf サーフェスに圧縮される各 pdf の単位サイズを準備していると思います。getWidth() が 2 で除算されない理由がわかりません。
A:
Q: 'n' は、最終的な pdf サーフェスに n'up される pdfPages の数です。ここまでは順調ですよね?
'r' は行数、'c' は列数でしょうか?
A:
Q: 上記の「for」ループは、現在の作業ページで所定の nup 数に達するたびに、最終的な pdf に新しいページを追加します。n = 8 の場合、新しいページは i = 8、16、24 などで呼び出されます。
A:
Q: この行は、ソース PDF に多くのページがあり、すべてのページが同じ PDF ページ サイズを共有しているわけではない状況を説明しています。正しい?
A:
Q: min 関数は最小の数値を返します。unitSize が currentSize で除算されるのはなぜですか? ここで私の理解が途切れます。
A:
Q: わかりました。offsetX と offsetY は、pdf ページをより大きな最終的な pdf サーフェスに配置するために使用されます。私は理解しています。プログラマーではない人に計算を英語で説明してもらえますか? これは、各数学演算が何をするかを知っていても、全体像を理解していない場合です。
A:
この質問が、iText を初めて使用し、このコードの詳細なコード ウォークスルーが必要な他の多くの人に役立つことを願っています。
同様に、否定的で一般的に役に立たないコメントが投稿されないことを願っています.
お時間とご協力ありがとうございました!
pdf - PDFページを半分に切り取り、ghostscriptを使用してパーツを別の方法で再インポーズする
左側の要素が右側にコピーされるようにPDFページを再インポーズするゴーストスクリプト(または他のコマンドライン)コマンドを探しています。そのようです:
ページのサイズは変更しないでください (各ページのトリミングとカットは異なります)。最終的なサイズを手動で指定することもできますが、元の pdf から読み取る方が適切です。
簡単にするために、入力ファイルには 1 ページしかないと仮定しましょう。
私は非常に複雑な一連のコマンドを思いつきました。
- でCropBoxを読む
pdfinfo
-c "[/CropBox [*new dimensions*] /PAGES pdfmark"
ファイルをコピーし、クロップボックスを変更して、コマンドで左半分を短くし、右半分を拡張する- ファイルをコピーし、左半分が残るようにクロップボックスを変更する
- このファイルを古いページの寸法で再処理し
-g "PageDimension"
、-c \"<<\/Install{1 1 scale WithOfRightside 0 translate}>> setpagedevice\"
- pdftk を使用して、2 つの新しいファイルを 1 つのページにマージします。
pdftk.exe lefthalf.pdf background righthalf.pdf output combinedfile.pdf
しかし、私はこれを十分に機能させることができませんでした。また、関連する一連の手順も、関与するツールの数も好きではありません。確かに、ghostscript を使用して、すべてのステップをより少ないステップ (および元の再処理の少ないステップ) で実行できます。