Fehlende Seiten werden ergänzt
This commit is contained in:
+26
-6
@@ -173,8 +173,8 @@ class MainWindow(QMainWindow):
|
|||||||
print(f" ref: {len(ref_doc)} Seiten")
|
print(f" ref: {len(ref_doc)} Seiten")
|
||||||
print(f" new: {len(new_doc)} Seiten")
|
print(f" new: {len(new_doc)} Seiten")
|
||||||
|
|
||||||
# Nehme die minimale Seitenzahl aller drei PDFs
|
# Nehme die maximale Seitenzahl aller drei PDFs (diff_doc bestimmt die Anzahl)
|
||||||
max_pages = min(len(diff_doc), len(ref_doc), len(new_doc))
|
max_pages = len(diff_doc)
|
||||||
|
|
||||||
# Erstelle nur Thumbnails (keine Vollbilder)
|
# Erstelle nur Thumbnails (keine Vollbilder)
|
||||||
for page_num in range(max_pages):
|
for page_num in range(max_pages):
|
||||||
@@ -251,29 +251,49 @@ class MainWindow(QMainWindow):
|
|||||||
try:
|
try:
|
||||||
docs = self.pdf_documents[pdf_filename]
|
docs = self.pdf_documents[pdf_filename]
|
||||||
|
|
||||||
# Seiten aus allen drei PDFs laden
|
# Diff-Seite laden (bestimmt die Abmessungen)
|
||||||
diff_page = docs['diff'][page_num]
|
diff_page = docs['diff'][page_num]
|
||||||
ref_page = docs['ref'][page_num]
|
|
||||||
new_page = docs['new'][page_num]
|
|
||||||
|
|
||||||
# Seiten in hoher Auflösung rendern
|
# Seiten in hoher Auflösung rendern
|
||||||
matrix = pymupdf.Matrix(2.0, 2.0) # 2x Vergrößerung für bessere Qualität
|
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_pix = diff_page.get_pixmap(matrix=matrix)
|
||||||
diff_img_data = diff_pix.tobytes("png")
|
diff_img_data = diff_pix.tobytes("png")
|
||||||
diff_qimg = QImage.fromData(diff_img_data)
|
diff_qimg = QImage.fromData(diff_img_data)
|
||||||
diff_pixmap = QPixmap.fromImage(diff_qimg)
|
diff_pixmap = QPixmap.fromImage(diff_qimg)
|
||||||
|
|
||||||
|
# Ermittle die Abmessungen der Diff-Seite für weiße Seiten
|
||||||
|
diff_width = diff_pixmap.width()
|
||||||
|
diff_height = diff_pixmap.height()
|
||||||
|
|
||||||
|
# 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_pix = ref_page.get_pixmap(matrix=matrix)
|
||||||
ref_img_data = ref_pix.tobytes("png")
|
ref_img_data = ref_pix.tobytes("png")
|
||||||
ref_qimg = QImage.fromData(ref_img_data)
|
ref_qimg = QImage.fromData(ref_img_data)
|
||||||
ref_pixmap = QPixmap.fromImage(ref_qimg)
|
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_pix = new_page.get_pixmap(matrix=matrix)
|
||||||
new_img_data = new_pix.tobytes("png")
|
new_img_data = new_pix.tobytes("png")
|
||||||
new_qimg = QImage.fromData(new_img_data)
|
new_qimg = QImage.fromData(new_img_data)
|
||||||
new_pixmap = QPixmap.fromImage(new_qimg)
|
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
|
# Cache die gerenderten Pixmaps für schnelle Alpha/Zoom-Operationen
|
||||||
self.current_rendered_pixmaps = {
|
self.current_rendered_pixmaps = {
|
||||||
|
|||||||
Reference in New Issue
Block a user