diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor index ee1808ae..478b47bb 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor @@ -47,9 +47,7 @@ {
@L("SenderEditor_NoPagesToDisplay", "Keine Seiten zur Anzeige verfügbar.")
} - else - { - @if (Pages.Count == 0 && !string.IsNullOrWhiteSpace(PdfDataUrl)) + else if (Pages.Count == 0 && !string.IsNullOrWhiteSpace(PdfDataUrl)) {
} + else + { +
+ @for (var pageIndex = 0; pageIndex < PageCount; pageIndex++) + { + var pagePreview = pageIndex < Pages.Count ? Pages[pageIndex] : null; + var pageNumber = pagePreview?.PageNumber ?? (pageIndex + 1); + var widthPt = pagePreview?.WidthPt ?? 595.0; + var heightPt = pagePreview?.HeightPt ?? 842.0; -
- @for (var pageIndex = 0; pageIndex < PageCount; pageIndex++) - { - var pagePreview = pageIndex < Pages.Count ? Pages[pageIndex] : null; - var pageNumber = pagePreview?.PageNumber ?? (pageIndex + 1); - var widthPt = pagePreview?.WidthPt ?? 595.0; - var heightPt = pagePreview?.HeightPt ?? 842.0; +
+
+ @if (!string.IsNullOrWhiteSpace(pagePreview?.ImageDataUrl)) + { + PDF Page @pageNumber + } + else + { +
@L("SenderEditor_PageLabel", "Seite") @pageNumber
+ } -
-
- @if (!string.IsNullOrWhiteSpace(pagePreview?.ImageDataUrl)) - { - PDF Page @pageNumber - } - else - { -
@L("SenderEditor_PageLabel", "Seite") @pageNumber
- } - - @foreach (var field in Fields.Where(f => f.Page == pageNumber)) - { -
- @field.ReceiverName - -
- } + @foreach (var field in Fields.Where(f => f.Page == pageNumber)) + { +
+ @field.ReceiverName + +
+ } +
-
- } -
+ } +
}
diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/SenderEditorPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/SenderEditorPage.razor index 871d3ea3..1700f7a8 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/SenderEditorPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/SenderEditorPage.razor @@ -826,11 +826,31 @@ _originalPdfBytes = document?.ByteData; _pdfLoaded = _originalPdfBytes is { Length: > 0 }; - _pagePreviews = []; - _pageCount = _pagePreviews.Count > 0 - ? _pagePreviews.Count - : EstimatePdfPageCount(_originalPdfBytes) - ?? Math.Max(1, _signatureFields.Select(f => f.Page).DefaultIfEmpty(1).Max()); + + if (_pdfLoaded) + { + try + { + _pagePreviews = (await PdfRenderService.RenderPagesAsync(_originalPdfBytes!)) + .OrderBy(p => p.PageNumber) + .ToList(); + } + catch (Exception renderEx) + { + Logger.LogWarning(renderEx, "Failed to render PDF page previews for envelope {EnvelopeId}. Falling back to native preview.", envelopeId); + _pagePreviews = []; + } + + _pageCount = _pagePreviews.Count > 0 + ? _pagePreviews.Count + : 1; + } + else + { + _pagePreviews = []; + _pageCount = Math.Max(1, _signatureFields.Select(f => f.Page).DefaultIfEmpty(1).Max()); + } + _fileName = $"Envelope-{envelopeId}.pdf"; _pendingReceiverForPlacement = null; _loadedEnvelopeId = envelopeId;