94 lines
2.7 KiB
Python
94 lines
2.7 KiB
Python
import os
|
|
import pdfkit
|
|
import qrcode
|
|
import subprocess
|
|
import PyPDF2
|
|
|
|
|
|
def create_pdf_from_html(html_file, pdf_file):
|
|
pdfkit.from_file(html_file, pdf_file, options={"page-size": "A5", "orientation": "Landscape", "enable-local-file-access": ""})
|
|
|
|
|
|
def list_files_in_directory(directory):
|
|
files = os.listdir(directory)
|
|
for file in files:
|
|
print(file)
|
|
|
|
|
|
def create_qrcode():
|
|
data = "https://www.example.com"
|
|
|
|
# Generate QR code
|
|
qr = qrcode.QRCode(
|
|
version=1,
|
|
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
|
box_size=10,
|
|
border=4,
|
|
)
|
|
qr.add_data(data)
|
|
qr.make(fit=True)
|
|
|
|
# Create an image from the QR Code instance
|
|
img = qr.make_image(fill_color="black", back_color="#fdf8ef")
|
|
|
|
# Save image to a file
|
|
img.save("./example_qr.png")
|
|
|
|
# Display the generated QR code image
|
|
img.show()
|
|
|
|
def test(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)
|
|
stdout, stderr = process.communicate()
|
|
|
|
print("STDOUT:", stdout)
|
|
print("STDERR:", stderr)
|
|
|
|
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__":
|
|
directory = "oldFiles/" # Aktuelles Verzeichnis
|
|
list_files_in_directory(directory)
|
|
|
|
create_pdf_from_html("oldFiles/frontPage.html", "outputFront.pdf")
|
|
create_pdf_from_html("oldFiles/backPage.html", "outputBack.pdf")
|
|
create_pdf_from_html("oldFiles/backPage3.html", "outputBack3.pdf")
|
|
create_qrcode()
|
|
test("oldFiles/frontPage.html", "finalFrontPage.pdf")
|
|
test("oldFiles/backPage.html", "finalBackPage.pdf")
|
|
|
|
merge_pdfs('finalFrontPage.pdf', 'finalBackPage.pdf', 'combined.pdf') |