前提条件
pdfファイルは8, 16, 32ページなど8の倍数ページ
Google Colabを使用できる
Windows Powershellを使用できる
手順
- ilovepdfでpdfを複数のjpgに変換
- Google Colabを起動し以下のpythonコードを実行、powershellスクリプトで使用するリストをコピー。ページ枚数を正しく指定する。
def generate_booklet_order(page_num):
if page_num % 8 != 0:
print("page_num must be multiple of 8. "+str(page_num))
return
head = 1
tail = page_num
page_order = []
for _ in range(page_num // 8):
group = [
tail, head,
tail - 2, head + 2,
head + 1, tail - 1,
head + 3, tail - 3
]
page_order.append(group)
tail -= 4
head += 4
import itertools
page_order = list(itertools.chain.from_iterable(page_order))
for i in range(len(page_order)):
page_order[i] += 1
page_order = [f"{page - 1:02d}" for page in page_order]
return page_order
def display(page_order):
print('@(', end='')
for i in range(len(page_order)-1):
print('\'', end='')
print(page_order[i], end='')
print('.jpg\',', end='')
print('\'', end='')
print(page_order[len(page_order)-1], end='')
print('.jpg\'', end='')
print(')', end='')
display(generate_booklet_order(32))
@('32.jpg','01.jpg','30.jpg','03.jpg','02.jpg','31.jpg','04.jpg','29.jpg','28.jpg','05.jpg','26.jpg','07.jpg','06.jpg','27.jpg','08.jpg','25.jpg','24.jpg','09.jpg','22.jpg','11.jpg','10.jpg','23.jpg','12.jpg','21.jpg','20.jpg','13.jpg','18.jpg','15.jpg','14.jpg','19.jpg','16.jpg','17.jpg')
- 以下のpowershellスクリプトで名前を
01.png
のように変換
Get-Item * | ForEach-Object {
$oldName = $_.Name
$right2 = $oldName.Substring(9, 2)
Rename-Item $_.FullName -NewName "$right2.jpg"
}
- Google Colabで作成したリストを貼り付け
$order = @(
>> '32.jpg','01.jpg','30.jpg','03.jpg','02.jpg','31.jpg','04.jpg','29.jpg',
>> '28.jpg','05.jpg','26.jpg','07.jpg','06.jpg','27.jpg','08.jpg','25.jpg',
>> '24.jpg','09.jpg','22.jpg','11.jpg','10.jpg','23.jpg','12.jpg','21.jpg',
>> '20.jpg','13.jpg','18.jpg','15.jpg','14.jpg','19.jpg','16.jpg','17.jpg'
>> )
- 以下のpowershellスクリプトで別フォルダにファイルを複製。
narabikae
フォルダを同じ深さのところに作っておくとコピペで使える。
for($i = 0; $i -lt $order.Count; $i++){
$origin = $order[$i]
$newFileName = "$i.jpg"
$destPath = "../narabikae/$newFileName"
Move-Item -Path $origin -Destination $destPath
}
- ilovepdfでjpgファイルをpdfに変換。20個ずつの制限があるため何回かに分けることになるかもしれない。
- pdfファイルを4in1形式で長編とじ両面印刷
- 長辺を半分に切り、小冊子になる様に並び替える。
- 完成
感想
もっといいやり方があれば教えてください