Fehlende Seiten werden ergänzt

This commit is contained in:
2025-05-29 21:21:18 +02:00
parent 092dbcf4c9
commit 93507bfc67
+34 -14
View File
@@ -173,8 +173,8 @@ class MainWindow(QMainWindow):
print(f" ref: {len(ref_doc)} Seiten")
print(f" new: {len(new_doc)} Seiten")
# Nehme die minimale Seitenzahl aller drei PDFs
max_pages = min(len(diff_doc), len(ref_doc), len(new_doc))
# Nehme die maximale Seitenzahl aller drei PDFs (diff_doc bestimmt die Anzahl)
max_pages = len(diff_doc)
# Erstelle nur Thumbnails (keine Vollbilder)
for page_num in range(max_pages):
@@ -251,29 +251,49 @@ class MainWindow(QMainWindow):
try:
docs = self.pdf_documents[pdf_filename]
# Seiten aus allen drei PDFs laden
# Diff-Seite laden (bestimmt die Abmessungen)
diff_page = docs['diff'][page_num]
ref_page = docs['ref'][page_num]
new_page = docs['new'][page_num]
# Seiten in hoher Auflösung rendern
matrix = pymupdf.Matrix(2.0, 2.0) # 2x Vergrößerung für bessere Qualität
# Alle drei Ebenen rendern
# Diff-Seite rendern (immer vorhanden)
diff_pix = diff_page.get_pixmap(matrix=matrix)
diff_img_data = diff_pix.tobytes("png")
diff_qimg = QImage.fromData(diff_img_data)
diff_pixmap = QPixmap.fromImage(diff_qimg)
ref_pix = ref_page.get_pixmap(matrix=matrix)
ref_img_data = ref_pix.tobytes("png")
ref_qimg = QImage.fromData(ref_img_data)
ref_pixmap = QPixmap.fromImage(ref_qimg)
# Ermittle die Abmessungen der Diff-Seite für weiße Seiten
diff_width = diff_pixmap.width()
diff_height = diff_pixmap.height()
new_pix = new_page.get_pixmap(matrix=matrix)
new_img_data = new_pix.tobytes("png")
new_qimg = QImage.fromData(new_img_data)
new_pixmap = QPixmap.fromImage(new_qimg)
# Ref-Seite prüfen und rendern oder weiße Seite erstellen
if page_num < len(docs['ref']):
ref_page = docs['ref'][page_num]
ref_pix = ref_page.get_pixmap(matrix=matrix)
ref_img_data = ref_pix.tobytes("png")
ref_qimg = QImage.fromData(ref_img_data)
ref_pixmap = QPixmap.fromImage(ref_qimg)
print(f"Ref-Seite {page_num + 1} gerendert")
else:
# Erstelle weiße Seite mit gleichen Abmessungen wie Diff-Seite
ref_pixmap = QPixmap(diff_width, diff_height)
ref_pixmap.fill(Qt.GlobalColor.white)
print(f"Weiße Ref-Seite {page_num + 1} erstellt (Seite existiert nicht)")
# New-Seite prüfen und rendern oder weiße Seite erstellen
if page_num < len(docs['new']):
new_page = docs['new'][page_num]
new_pix = new_page.get_pixmap(matrix=matrix)
new_img_data = new_pix.tobytes("png")
new_qimg = QImage.fromData(new_img_data)
new_pixmap = QPixmap.fromImage(new_qimg)
print(f"New-Seite {page_num + 1} gerendert")
else:
# Erstelle weiße Seite mit gleichen Abmessungen wie Diff-Seite
new_pixmap = QPixmap(diff_width, diff_height)
new_pixmap.fill(Qt.GlobalColor.white)
print(f"Weiße New-Seite {page_num + 1} erstellt (Seite existiert nicht)")
# Cache die gerenderten Pixmaps für schnelle Alpha/Zoom-Operationen
self.current_rendered_pixmaps = {