62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
import subprocess
|
|
import PyPDF2
|
|
import sys
|
|
|
|
def createPdf(sourceHtml, outputPdf):
|
|
command = [
|
|
"google-chrome-stable",
|
|
"--headless",
|
|
"--no-sandbox",
|
|
"--disable-gpu",
|
|
"--debug=1",
|
|
"--print-to-pdf=" + outputPdf,
|
|
"--run-all-compositor-stages-before-draw",
|
|
"--virtual-time-budget=10000",
|
|
sourceHtml,
|
|
]
|
|
|
|
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
_, stderr = process.communicate()
|
|
|
|
if process.returncode != 0:
|
|
print("Error creating PDF")
|
|
print(stderr)
|
|
sys.exit(1)
|
|
|
|
print("PDF created successfully")
|
|
|
|
|
|
def merge_pdfs(pdf1_path, pdf2_path, output_path):
|
|
# Öffne die beiden PDF-Dateien
|
|
with open(pdf1_path, 'rb') as file1, open(pdf2_path, 'rb') as file2:
|
|
# Erstelle PDF-Reader-Objekte
|
|
pdf1_reader = PyPDF2.PdfReader(file1)
|
|
pdf2_reader = PyPDF2.PdfReader(file2)
|
|
|
|
# Erstelle PDF-Writer-Objekt
|
|
pdf_writer = PyPDF2.PdfWriter()
|
|
|
|
# Füge Seiten aus der ersten PDF hinzu
|
|
for page_num in range(len(pdf1_reader.pages)):
|
|
page = pdf1_reader.pages[page_num]
|
|
pdf_writer.add_page(page)
|
|
|
|
# Füge Seiten aus der zweiten PDF hinzu
|
|
for page_num in range(len(pdf2_reader.pages)):
|
|
page = pdf2_reader.pages[page_num]
|
|
pdf_writer.add_page(page)
|
|
|
|
# Speichere die kombinierte PDF
|
|
with open(output_path, 'wb') as output_file:
|
|
pdf_writer.write(output_file)
|
|
|
|
if __name__ == "__main__":
|
|
createPdf("oldFiles/frontPage.html", "finalFrontPage.pdf")
|
|
createPdf("oldFiles/backPage.html", "finalBackPage.pdf")
|
|
|
|
merge_pdfs('finalFrontPage.pdf', 'finalBackPage.pdf', 'combined.pdf')
|
|
|
|
# delete temporary files
|
|
|
|
subprocess.run(["rm", "finalFrontPage.pdf"])
|
|
subprocess.run(["rm", "finalBackPage.pdf"]) |