Manuel/.py/test 1.1.py
√(noham)² 82f3bc2fff changes
2023-04-07 19:40:57 +02:00

126 lines
4.1 KiB
Python

import pdfkit
import re
from pdfkit.api import configuration
from pypdf import PdfMerger
import time
import os
import sys
import shutil
from tkinter import messagebox
import csv
def load_csv_liste(fichier, contenu, entête = [] ) :
with open(fichier, newline='', encoding="utf8") as csvfile :
spamreader = csv.reader(csvfile, delimiter=',')
for champs in next(spamreader) :
entête.append(champs)
for row in spamreader :
contenu.append(row)
def afficherMatrice(matrice, entête = None) :
maxi = [max([len(str(tab[i])) for tab in (matrice if entête == None else matrice + [entête]) if len(tab) > i]) for i in range(0, max([len(tab) for tab in matrice]))]
if entête != None and len(entête) == len(maxi) :
print("==".join(['=' * max for max in maxi ]))
print("".join([("{:<" + str(maxi[i] + 2) + "." + str(maxi[i]) + "}") for i in range(len(entête))]).format(*[str(e) for e in entête]))
print("==".join(['=' * max for max in maxi ]))
for line in matrice :
print("".join([("{:<" + str(maxi[i] + 2) + "." + str(maxi[i]) + "}") for i in range(len(line))]).format(*[str(e) for e in line]))
def clear(n):
for i in range(0, n):
try:
shutil.rmtree("C:/Users/Noham/Downloads/Manuel/Code/gen/")
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
directory = "gen"
parent_dir = "C:/Users/Noham/Downloads/Manuel/Code/"
path = os.path.join(parent_dir, directory)
try:
os.mkdir(path)
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
def question1():
contenu = []
load_csv_liste("liste.csv", contenu)
print(contenu[3])
matrice = [[contenu[i][6]] for i in range (1,len(contenu))]
# afficherMatrice(sorted(matrice))
question1()
toc = time.perf_counter()
wkhtml_path = pdfkit.configuration(wkhtmltopdf="C:/Program Files/wkhtmltox/bin/wkhtmltopdf.exe") #by using configuration you can add path value.
# options = {
# 'page-size': 'Letter',
# 'margin-top': '0.75in',
# 'margin-right': '0.75in',
# 'margin-bottom': '0.75in',
# 'margin-left': '0.75in',
# 'custom-header': [
# ('Accept-Encoding', 'gzip')
# ],
# 'no-outline': None
# }
options = {}
id = int(input("Quel est l'id ? "))
edition = input("Quelle est l'édition ? ")
nbpages = int(input("Quel est le nombre de pages ? "))
if edition == 'hachette':
debuturl = 'https://exobank.hachette-livre.fr/contents/final/'
finurl = '-fxl/OEBPS/Page_{}.html'
elif (edition == 'hatier') or (edition == 'didier'):
debuturl = 'https://exobank.hachette-livre.fr/contents/final/'
finurl = '-fxl/OEBPS/page{}.xhtml?interface=postMessage'
else:
print("L'édition entrée n'existe pas encore")
url = debuturl + str(id) + finurl
# url = "https://exobank.hachette-livre.fr/contents/final/9782278093472-fxl/OEBPS/page{}.xhtml?interface=postMessage"
output = 'C:/Users/Noham/Downloads/Manuel/Code/gen/pdf{}.pdf'
for offset in range(1, nbpages + 1, 1):
newurl = url.format(offset)
print(newurl)
newoutput = output.format(offset)
print(str(offset) + "/" + str(nbpages))
try:
pdfkit.from_url(newurl,
newoutput,
configuration=wkhtml_path,
options=options,
verbose=False)
except:
pdfkit.from_string("Une erreur est survenue lors de la génération de la page.")
print("error", newoutput)
pdfs = 'C:/Users/Noham/Downloads/Manuel/Code/gen/pdf{}.pdf'
pdfsnewpdfs = []
for offset in range(1, nbpages + 1, 1):
newpdfs = pdfs.format(offset)
pdfsnewpdfs.append(str(newpdfs))
# print(pdfsnewpdfs)
finpage = time.perf_counter()
debutmerge = time.perf_counter()
merger = PdfMerger()
for pdf in pdfsnewpdfs:
merger.append(pdf)
merger.write("result.pdf")
merger.close()
finmerge = time.perf_counter()
print(f"Gen pdfs en {finpage - toc:0.4f} secondes")
print(f"Gen pdf unique en {finmerge - debutmerge:0.4f} secondes")
print(f"Tout en {finmerge - toc:0.4f} secondes")
print('DONE')