Dzień dobry,
mam raport w formacie pdf który generowany jest za pomocą biblioteki itext7 (wersja 8.0.0) po stronie backendu w ASP.NET Core 6
Problem powstaje gdy raport ma więcej niż jedną stronę, ponieważ wówczas otrzymuje kod błędu:
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
iText.Kernel.Exceptions.PdfException: Cannot draw elements on already flushed pages.
at iText.Layout.Renderer.DocumentRenderer.FlushSingleRenderer(IRenderer resultRenderer)
at iText.Layout.Renderer.RootRenderer.AddChild(IRenderer renderer)
at iText.Layout.RootElement1.CreateAndAddRendererSubTree(IElement element) at iText.Layout.RootElement
1.AddElement(IElement element)
at iText.Layout.RootElement1.Add(IBlockElement element) at iText.Layout.Document.Add(IBlockElement element) at iText.Layout.RootElement
1.ShowTextAligned(Paragraph p, Single x, Single y, Int32 pageNumber, Nullable1 textAlign, Nullable
1 vertAlign, Single radAngle)
at WebAPI.Controllers.PdfController.OrderCompleted() in D:\projekty IT\Rejestr_Wylegow_NET\Backend\Controllers\BazaController.cs:line 672
Poniżej zamieszczam kod programu z linią 672, która powoduje problem.
....
document.Add(tabelka);
int n = pdfDocument.GetNumberOfPages();
for (int i = 1; i <= n; i++)
{
document.ShowTextAligned(new Paragraph($"Strona {i} z {n}"), // Oto linia 672, która generuje problem :(((
559, 806, i, TextAlignment.RIGHT, VerticalAlignment.BOTTOM, 0);
}