NETReporter.Abstractions 3.8.0

NETReporter.Abstractions

Společná rozhraní a typy knihovny NETReporter. Balíček nemá žádné závislosti na renderovacích knihovnách (QuestPDF, Roslyn, OxyPlot, ZXing), takže ho může používat kód, který report jen zadává, bez toho, aby tahal celou knihovnu.

Obsahuje:

  • IReportRenderer – vykreslení reportu z proudů šablony a dat (PDF, SVG, HTML, JSON, WebP, PNG, JPEG, stránky po jedné),
  • ITemplateTools – validace šablony a dat, datový kontrakt (TemplateDataContract) a ukázková data,
  • RenderOptions a PDF volby (PdfConformance, PdfAttachment, PdfEncryption),
  • diagnostiky (Diagnostic, BindingDiagnostic, DiagnosticCodes) a pozorovatele pipeline (IReportPipelineObserver).

Implementace jsou dvě a nahrazují se registrací v DI:

Balíček Implementace Kde se renderuje
NETReporter ReportRenderer, TemplateTools v procesu aplikace
NETReporter.Client ReportServerRenderer, ReportServerTemplateTools na serveru ReportServer, přihlášení API tokenem

Typy zůstaly ve svých jmenných prostorech (NetReporter, NetReporter.Common, NetReporter.Bindings …) a knihovna NETReporter je přeposílá (TypeForwardedTo), takže stávající kód se nemění.

Balíčky NETReporter, NETReporter.Abstractions a NETReporter.Client se vydávají společně se stejnou verzí. Seznam změn je v souboru CHANGELOG.md v balíčku.

Požadavky: .NET 10.

Showing the top 20 packages that depend on NETReporter.Abstractions.

Packages Downloads
NETReporter
Reportovaci knihovna pro generování PDF reportů z JSON šablon
62
NETReporter
Reportovaci knihovna pro generování PDF reportů z JSON šablon
9
NETReporter
Reportovaci knihovna pro generování PDF reportů z JSON šablon
8
NETReporter.Client
Tenký klient pro ReportServer: stejné rozhraní jako knihovna NETReporter (IReportRenderer, ITemplateTools), ale report se vykreslí na serveru a klient se přihlašuje API tokenem. Bez QuestPDF, Roslynu a dalších těžkých závislostí.
8
NETReporter
Reportovaci knihovna pro generování PDF reportů z JSON šablon
6
NETReporter
Reportovaci knihovna pro generování PDF reportů z JSON šablon
5
NETReporter.Client
Tenký klient pro ReportServer: stejné rozhraní jako knihovna NETReporter (IReportRenderer, ITemplateTools), ale report se vykreslí na serveru a klient se přihlašuje API tokenem. Bez QuestPDF, Roslynu a dalších těžkých závislostí.
5
NETReporter.Client
Tenký klient pro ReportServer: stejné rozhraní jako knihovna NETReporter (IReportRenderer, ITemplateTools), ale report se vykreslí na serveru a klient se přihlašuje API tokenem. Bez QuestPDF, Roslynu a dalších těžkých závislostí.
4

- Templates: `reportFooter` takes the new optional `"pinToBottom": true`. The report footer then fills the rest of the last page and lies at its bottom edge (above `pageFooter`) instead of right after the content, so the signature block of a delivery note or an invoice is always at the bottom of the last page; when it does not fit under the content, it moves as a whole to a new page and lies at its bottom. PDF, SVG and the image formats lay it out with QuestPDF `ExtendVertical().AlignBottom().PreventPageBreak()`; HTML and JSON have no pages and keep it right after the content. `pinToBottom` on another section is ignored with the warning `NRP013`, a value that is not a bool is the error `NRP014`. `SectionNode.PinToBottom` is new. - Templates: page sections by data item. `pageHeader`, `pageFooter`, `pageBackground` and `pageOverlay` take the new optional `perPage` (`source`, `as`, optional `filter` and `sortBy`, like `repeat`): page N gets the N-th item of the source under the alias, `loop` has its order and count, and a page without an item has no section. Until now a page section was composed once for the whole document from the root data, so a document with one item per page (labels, certificates with tear-off stubs in the footer) could not show the item of the page in the footer. PDF, SVG and the image formats compose the section for every page (`PerPageSectionComponent`, a QuestPDF dynamic component; `page.number` and `page.total` are the real ones there), HTML and JSON have no pages and use the item of the first page. `perPage` on another section is ignored with the warning `NRP013`, a missing `source` or `as` is an error at `$.<section>.perPage.*`. The data contract treats the fields of the item as fields of the collection (`$.Items[*].Name`), the binding diagnostics of the pages are reported once. `SectionNode.PerPage` and `TemplateRuntimeEngine.RenderSection` are new. - Template schema: `template-schema.json` describes the properties of a section next to `root` in the new list `sectionProperties`, each with the sections it belongs to (`sections`): `perPage` (`source`, `as`, `filter`, `sortBy`) for the page sections and `pinToBottom` (bool) for `reportFooter`. `TemplateSchema.SectionProperties` and `TemplateSchema.GetSectionProperties(section)` are new. The JSON schema of the template editor takes the section properties from it instead of its own copy. - Template editor: section properties. A selected section offers its properties from the schema in the properties panel: `perPage` on the page sections (`pageHeader`, `pageFooter`, `pageBackground`, `pageOverlay`; *Load items from the schema* fills `source`, `as`, `filter` and `sortBy`) and the `pinToBottom` check box on `reportFooter`. The JSON of the section in the panel is checked against the schema of the section (`JsonEditorSchemas.ForSection`, `TemplateJsonSchemaBuilder.BuildSectionSchema`). The Data panel, the `{{` suggestions and the context of the expression assistant know the item alias of `perPage` in the nodes of the section (`DataBindingPaths.ResolveScopes`), as they know the alias of `repeat`. The AI assistant knows `perPage` and `pinToBottom` from its cheat sheets and the schema digest. The HTML preview keeps a pinned report footer right after the content, the PDF and image previews show it at the bottom. - Template editor fix: saving the properties of a section or of the template root (*Save node*, the properties panel) wrote `"id"` and `"type"` (`section_pageFooter`/`Section`, `$`/`Template`) into the section object or the root of the template. The library ignored them, but the JSON editor marked them as unknown properties. Sections and the template root no longer get them (`EditableTreeNode.IsStructural`). - Template editor, ReportServer web UI and account pages: a page icon (favicon), the blue NR mark of the header, shared as `_content/NetReporter.UiShared/favicon.svg`. The editor had no icon, so the browser asked for `/favicon.ico` outside the path of the application (404); the web UI had the default icon of the Blazor project template (`favicon.png`, removed). Celý seznam změn: CHANGELOG.md v balíčku a https://dev.azure.com/advsoft/Knihovny/_git/NetReporter?path=/src/NetReporter/CHANGELOG.md

.NET 10.0

  • No dependencies.

Version Downloads Last updated
3.9.2 4 10/28/2026
3.9.1 1 10/27/2026
3.9.0 6 10/20/2026
3.8.1 6 10/19/2026
3.8.0 4 10/19/2026
3.7.0 4 10/19/2026
3.6.0 5 10/17/2026
3.5.1 62 10/15/2026
3.5.0 4 10/15/2026
3.4.2 4 10/15/2026
3.4.0 6 10/12/2026
3.3.0 4 10/11/2026
3.2.2 4 10/10/2026
3.2.1 4 10/10/2026
3.2.0 5 10/10/2026
3.1.1 5 10/09/2026
3.1.0 4 10/09/2026
3.0.1 8 10/08/2026
3.0.0 4 10/08/2026
2.2.1 5 10/05/2026
2.2.0 6 10/05/2026
2.1.0 8 10/04/2026
2.0.1 7 10/04/2026
2.0.0 5 10/03/2026
1.7.0 4 10/03/2026