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


# by using configuration you can add path value.
wkhtml_path = pdfkit.configuration(
    wkhtmltopdf="C:/Program Files/wkhtmltox/bin/wkhtmltopdf.exe")
# 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 = {}
nbpages = 68


url = "https://storage.libmanuels.fr/Belin/manuel/9791035824488/3/OEBPS/page0{}.xhtml"
# url = "https://exobank.hachette-livre.fr/contents/final/9782278093472-fxl/OEBPS/page{}.xhtml?interface=postMessage"
output = 'C:/Users/Noham/Documents/GitHub/Manuel/.py/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))
    pdfkit.from_url(newurl,
                    newoutput,
                    configuration=wkhtml_path,
                    options=options,
                    verbose=False)

pdfs = 'C:/Users/Noham/Documents/GitHub/Manuel/.py/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')