# Issue #18: Add page-by-page preview in the GUI after building ## Summary Add a PDF preview panel to the GUI that appears after a successful build. It renders PDF pages as images using Apache PDFBox and displays them with previous/next navigation and a page counter. The preview loads pages lazily for performance and updates automatically on new builds. ## AC Verification Checklist 1. After a successful build, a preview panel appears showing generated pages 2. Users can navigate between pages (previous/next buttons) 3. Current page number and total count displayed (e.g., "Seite 3 / 42") 4. Preview renders actual PDF pages as images (PDF-to-image via PDFBox) 5. Preview panel can be closed/hidden to return to normal view 6. Preview updates automatically when a new build completes 7. GUI remains responsive while preview is loading (async rendering) ## Implementation Steps ### Step 1: Add PDFBox dependency to gui module Add `org.apache.pdfbox:pdfbox:3.0.4` to gui/build.gradle.kts. ### Step 2: Create PdfPreviewState class A state holder for the preview: current page index, total pages, rendered page images (cached), loading state. Pages are rendered lazily — only the current page is rendered at a time. ### Step 3: Create PdfPreviewPanel composable A Compose panel with: - An Image composable showing the current page - Navigation row: "< Prev" button | "Seite X / Y" label | "Next >" button - A close/hide button - Loading indicator while page is rendering ### Step 4: Integrate preview into App composable After a successful build: - Show a "Vorschau" button in the action buttons row - When clicked, show the preview panel (replacing or overlaying the song list area) - When a new build succeeds, update the preview automatically ### Step 5: Lazy page rendering Render pages on demand using coroutines on Dispatchers.IO to keep the UI responsive.