Fehlende Seiten werden ergänzt
This commit is contained in:
+34
-14
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user