Si vous souhaitez allouer un PDF A4 à gauche et à droite toutes les deux pages pour le rendre A3,
"PDF A4 sur A3 avec 2 pages (2 en 1) - Python (PyPDF2)" https://qiita.com/miko/items/054b982700c6219c7fce
Je l'ai trouvé, alors je vais l'arranger un peu. En d'autres termes, par exemple, si vous avez un PDF de 10 pages A4, vous pouvez le convertir en PDF de 5 pages A3 avec 2 en 1. Et si le nombre total de pages est impair, le côté droit de la dernière page sera vierge et toutes les pages seront de toute façon converties en A3.
pdf_A3.py
import PyPDF2
A3_width = 1190.5511811024
A3_height = 841.8897637795
#Lecture du fichier A4 original
pdf_file = open('***.pdf','rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
#Comprendre le nombre de pages du fichier A4 original
page_num = pdf_reader.getNumPages()
cnt = 1
for start_page in range(0, page_num, 2):
A3_page = PyPDF2.pdf.PageObject.createBlankPage(width=A3_width, height=A3_height)
end_page = start_page + 1
#Placez les pages impaires sur la gauche
page_left = pdf_reader.getPage(start_page)
A3_page.mergePage(page_left)
#Placez les pages paires sur la droite, mais laissez le côté droit de la dernière page A3 vierge lorsque le nombre total de pages est impair
if start_page + 1 < page_num:
page_right = pdf_reader.getPage(end_page)
A3_page.mergeRotatedScaledTranslatedPage(page_right, 0, 1, A3_width / 2, 0, expand=False)
else:
pass
pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(A3_page)
#Un sortilège magique pour ajouter un numéro à 4 chiffres complété par zéro après le nom du fichier généré
file_num = str(cnt).zfill(4)
file_name = 'test_A3_' + file_num + '.pdf'
output_file = open(file_name,'wb')
pdf_writer.write(output_file)
output_file.close()
cnt += 1
pdf_file.close()
print ('Fin!')
Je ne sais pas quelle est la demande, mais comme l'écran de l'ordinateur est horizontalement long, je voudrais insister sur le fait qu'il serait plus facile de voir si le PDF A4 est affiché côte à côte en A3, mais l'affichage est défini dans le paramètre de visionneuse d'Acrobat Reader. C'est juste une question d'en faire une "page de diffusion".
Recommended Posts