本を印刷して製本したいのですが、正しいページ数を印刷できません。
この本には248ページあります。
このように(二重)印刷したいのですが、2つの「セグメント」に分割します。
上から下、左から右の順序で:
最初のセグメント:1.1。最初の論文:表:2,4,15,13裏:16,14,1,3
1.2。 2番目の紙:表:6,8,11,9裏:12,10,5,7
2番目のセグメント:など...
A4用紙を1枚使用し、水平方向と垂直方向にA6形式に折ります。
将来の印刷のためにこの問題を解決できるプログラムやスクリプトはありますか?
少なくともこのシーケンスに従うスクリプト:2,4,15,13,16,14,1,3,6,8,11,9,12,10,5,7,18,20,31,29,32 、30、17、19、22、24、27、25、28、26、21、23 ..
そして、助けてくれてありがとう。
この特定の問題には、いくつかの簡単なツールが必要になります。まず、Linuxを使用している場合は、pythonがインストールされていない場合は、インストールする必要があります。どのバージョンのpythonでも機能します。これは、次のコマンドです。それをインストールします:
Sudo apt install python3
コードを読むと、numpyというライブラリを使用していることがわかります。それをインストールするには、最も簡単な方法は「pip」を使用することです
次のコマンドを使用してpipをインストールします。
Sudo apt install pip
次に、pipを使用してnumpyをインストールします。
pip install numpy
これで、このスクリプトを新しいファイルにコピーするだけです。
import numpy as np
import sys
pages = int(sys.argv[1])
pages /= 8
if (pages % 2 == 0):
pass
else:
pages += 1
a = np.arange(1, pages*8+1).reshape(pages, 8)
final = []
for i in a:
t = i[0]
i[0] = i[0]
i[0] = t
t = i[1]
i[1] = i[7]
i[7] = t
t = i[2]
i[2] = i[2]
i[2] = t
t = i[3]
i[3] = i[5]
i[5] = t
t = i[4]
i[4] = i[6]
i[6] = t
t = i[7]
i[7] = i[5]
i[5] = t
for i in a:
for j in i:
final.append(j)
print(final)
次に、次のように保存します。
whatever.py
これを使用するには、ターミナルを開いて次のコマンドを入力します。
python whatever.py 123
123はPDFのページ数であることに注意してください。お持ちのページ数に変更してください。
出力は、次のような一連のページになります。
[1, 8, 3, 6, 7, 2, 5, 4, 9, 16, 11, 14, 15, 10, 13, 12, 17, 24, 19, 22, 23, 18, 21, 20, 25, 32, 27, 30, 31, 26, 29, 28, 33, 40, 35, 38, 39, 34, 37, 36, 41, 48, 43, 46, 47, 42, 45, 44...]
あとは、角かっこなしでそのシーケンスをコピーするだけです: "["、 "]"
次に、ドキュメントを開き、[印刷]をクリックします。デフォルトのシステム印刷ダイアログを使用している場合は、次のようになります。
[
次に、[範囲]の下の[ページ]を選択し、角かっこなしでシーケンスを貼り付けます。
最後に、[ページ設定]タブをクリックして、次のオプションを選択します。
[
ドキュメントを「プレビュー」してページの縮尺と順序が正しいかどうかを確認するか、「印刷」を押して印刷することができます。
!! :これらの手順は、1枚のセグメントが2つある8ページの面付けにのみ有効です。
!! :私はそれをより洗練されたプログラムに変える必要があるかもしれません、どんな更新もここにあります。
あなたの本は次のようになります:
----------------- -----------------
| | | | | |
| | | | | |
| 1 | 2 | | 3 | 4 | . . .
| | | | | |
|_______|_______| |_______|_______|
sheet 1 - top-front sheet 1 - top-back
----------------- -----------------
| | | | | |
| | | | | |
| 5 | 6 | | 7 | 8 | . . .
| | | | | |
|_______|_______| |_______|_______|
sheet 1 - bottom-front sheet 1 - bottom-back
一般に、アプリケーションは1ページをシートに印刷するためにページを順番に出力します。出力を本または小冊子として印刷するには、変更後に何かが必要です。
両面印刷用の両面印刷や、シートごとに2ページを同じ向きに合わせるなどの単純な変換は、プリンタードライバーで実行できる場合があります。ページを単純な署名に順序付けることは、いくつかのPDFユーティリティで処理できます(署名はページのグループであり、通常は中央で折りたたまれ、本を作成する際のセクションの1つとしてバインドされます)小さな仕事のためにあなたのために変換を行うウェブサイトもたくさんあります。
あなたがしたいのは、私が知っているPDFソフトウェアの組み込み機能ではありません。ドキュメント全体を署名に分割し、ページを表と裏の間で順序付けする必要があります。上部と下部、複雑な方法で、ページを4つ上にレイアウトし、ページの半分を回転させ、シート内でそれらを混合し、コンテンツを縮小サイズにスケーリングし、正しいサイズでバインドし、場合によってはトリミングできるように調整します。ページの端。手動で、またはスクリプトを使用して、PDFユーティリティと組み合わせて実行できます。スクリプトがどのようになるかを理解するには、 buntu-面付けまたはドキュメントから本を印刷する方法 、それは署名のために半分のサイズでページを順番に並べるだけです。248ページの本の場合、多くの作業が必要になります。
小冊子印刷プログラムはたくさんありますが、それらのほとんどはこの複雑なもののために設計されていません(そして、Linuxで実行されるものは多くありません)。調査できます PdfBooklet 。使ったことはありませんが、かなり洗練されています。私が知る限り、それはあなたが必要とするものを達成することができますが、ページごとにいくつかの手動設定が必要になります(偶数ページと奇数ページに別々の設定が可能ですが、この場合は役に立ちません)。
まだWindowsを使用していたときは、 ClickBook というアプリケーションを多用しました。このアプリケーションは、ドキュメントを本や小冊子の形式にすばやく変換するのに最適でした。あなたがやりたいのは組み込みのフォーマットだと思います。そうでない場合は、フォーマットを定義できます。これはWindowsとMacで利用できますが、Linuxでは利用できません。また、Wineでは実行できません(試してみましたが、おそらくDRMコントロールに関連しています)。 15日間の無料トライアルがありますが、現在の価格は50ドルです。仕事が1つしかない場合は、無料トライアルを取得して、それを実行するWindowsまたはMacコンピューターを見つけます。さまざまな本や小冊子の形式で定期的に印刷する必要がある場合、WindowsまたはMacコンピューターにすぐにアクセスできれば、お金に見合う価値があります。 Linuxに代わるものは見つかりませんでした。
それを行うための最も基本的な方法(自分で行うのは難しいことではありません):
$ pdfimages --help pdfimagesバージョン0.41.0 Copyright 2005-2016 The Poppler Developers-http://poppler.freedesktop.org Copyright 1996- 2011 Glyph&Cog、LLC 使用法:pdfimages [オプション] -f:変換する最初のページ -l:変換する最後のページ -png:変更デフォルトの出力形式をPNG -tiff:デフォルトの出力形式をTIFF に変更します。-j:JPEG画像をJPEGファイルとして書き込みます -jp2:JPEG2000画像をJP2ファイルとして書き込みます[.____。 .____。]-jbig2:JBIG2画像をJBIG2ファイルとして書き込む -ccitt:CCITT画像をCCITTファイルとして書き込む -all:-png -tiff -j -jp2 -jbig2 -ccitt [と同等.____。]-list:保存せずに画像のリストを印刷する -opw:所有者パスワード(暗号化ファイルの場合) -upw:ユーザーパスワード(暗号化ファイルの場合) - p:出力ファイル名にページ番号を含めます -q:メッセージやエラーを印刷しない -v:著作権とバージョン情報を印刷する -h:使用情報を印刷する -help:使用情報を印刷する -help:使用情報を印刷する -? :使用情報を印刷する