modified: QUICKSTART.md
modified: app.py new file: start.bat modified: static/js/pdf-tools.js
This commit is contained in:
@@ -15,6 +15,11 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
initializeDOMElements();
|
||||
setupEventListeners();
|
||||
setupDragAndDrop();
|
||||
|
||||
// Überprüfe Abhängigkeiten beim Laden
|
||||
setTimeout(() => {
|
||||
checkDependencies();
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
function initializeDOMElements() {
|
||||
@@ -171,8 +176,9 @@ function createMergeFileItem(file, index) {
|
||||
// Create preview element
|
||||
const previewElement = file.preview ?
|
||||
`<img src="/uploads/${file.preview}" class="pdf-preview size-medium rotate-${file.rotation}"
|
||||
alt="${file.original_name}" onclick="showPdfModal('${file.preview}', '${file.original_name}', ${index})">` :
|
||||
`<div class="pdf-preview pdf-no-preview size-medium rotate-${file.rotation}">
|
||||
alt="${file.original_name}" onclick="showPdfModal('${file.preview}', '${file.original_name}', ${index})"
|
||||
onerror="handlePreviewError(this, '${file.original_name}')">` :
|
||||
`<div class="pdf-preview pdf-no-preview size-medium rotate-${file.rotation}" title="Keine Vorschau verfügbar">
|
||||
<i class="fas fa-file-pdf"></i>
|
||||
</div>`;
|
||||
|
||||
@@ -500,6 +506,54 @@ function showError(message) {
|
||||
errorArea.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
||||
}
|
||||
|
||||
function handlePreviewError(img, originalName) {
|
||||
// Ersetze fehlgeschlagenes Bild durch Fallback
|
||||
const container = img.parentElement;
|
||||
container.innerHTML = `
|
||||
<div class="pdf-preview pdf-no-preview size-medium" title="Vorschau nicht verfügbar">
|
||||
<i class="fas fa-file-pdf"></i>
|
||||
</div>
|
||||
`;
|
||||
|
||||
console.warn(`PDF-Vorschau konnte nicht geladen werden: ${originalName}`);
|
||||
showNotification(`Vorschau für ${originalName} nicht verfügbar`, 'warning');
|
||||
}
|
||||
|
||||
// Debug-Funktion für PDF-Vorschau-Probleme
|
||||
async function debugPdfPreview(filename) {
|
||||
try {
|
||||
const response = await fetch(`/debug/pdf-preview/${filename}`);
|
||||
const data = await response.json();
|
||||
console.log('PDF-Vorschau Debug:', data);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Debug-Fehler:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Überprüfe Abhängigkeiten
|
||||
async function checkDependencies() {
|
||||
try {
|
||||
const response = await fetch('/debug/check-dependencies');
|
||||
const data = await response.json();
|
||||
console.log('Abhängigkeiten:', data);
|
||||
|
||||
// Warne bei fehlenden Abhängigkeiten
|
||||
if (data.pdf2image !== 'verfügbar') {
|
||||
showNotification('pdf2image nicht verfügbar - PDF-Vorschauen funktionieren möglicherweise nicht', 'warning');
|
||||
}
|
||||
if (data.poppler === 'nicht gefunden') {
|
||||
showNotification('Poppler nicht gefunden - Installieren Sie Poppler für PDF-Vorschauen', 'warning');
|
||||
}
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Abhängigkeits-Check fehlgeschlagen:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Global functions
|
||||
window.removeMergeFile = removeMergeFile;
|
||||
window.rotatePdf = rotatePdf;
|
||||
@@ -508,4 +562,7 @@ window.movePdfDown = movePdfDown;
|
||||
window.showPdfModal = showPdfModal;
|
||||
window.rotatePdfInModal = rotatePdfInModal;
|
||||
window.updatePdfPreviewSize = updatePdfPreviewSize;
|
||||
window.showSplitPdfModal = showSplitPdfModal;
|
||||
window.showSplitPdfModal = showSplitPdfModal;
|
||||
window.handlePreviewError = handlePreviewError;
|
||||
window.debugPdfPreview = debugPdfPreview;
|
||||
window.checkDependencies = checkDependencies;
|
||||
Reference in New Issue
Block a user