admin-dashboard-backend/groupTasks/groups/shx-order/discounts.py

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')