zPdfGenerator.Charts
0.1.7
dotnet add package zPdfGenerator.Charts --version 0.1.7
NuGet\Install-Package zPdfGenerator.Charts -Version 0.1.7
<PackageReference Include="zPdfGenerator.Charts" Version="0.1.7" />
<PackageVersion Include="zPdfGenerator.Charts" Version="0.1.7" />
<PackageReference Include="zPdfGenerator.Charts" />
paket add zPdfGenerator.Charts --version 0.1.7
#r "nuget: zPdfGenerator.Charts, 0.1.7"
#:package zPdfGenerator.Charts@0.1.7
#addin nuget:?package=zPdfGenerator.Charts&version=0.1.7
#tool nuget:?package=zPdfGenerator.Charts&version=0.1.7
zPdfGenerator.Charts
Extension package for zPdfGenerator that adds chart placeholders (charts) for PDF generation from HTML using OxyPlot (SVG) + iText.
The goal of this project is to generate deterministic, vector-based charts that render consistently on Windows and Linux, following this pipeline:
Data → SVG (OxyPlot) → HTML → PDF (iText)
Features
- Vector charts (SVG)
- Pie charts
- Color palette support
- Correct culture handling (
es-ES,en-US, etc.) - PDF-safe layouts (no browser-dependent rendering)
- Clean public API (internal helpers are not exposed to consumers)
Related packages
This project extends:
zPdfGenerator
Main dependencies:
OxyPlot.CoreiText.Html2Pdf
Installation
dotnet add package zPdfGenerator.Charts
Basic usage
1️ Generator configuration
Action<FluidHtmlPdfGeneratorBuilder<CorporateReport>> config = b => b
.UseTemplatePath("template.html")
.UseCulture(new CultureInfo("es-ES"))
.SetData(report)
.AddPieChart(
name: "chartSvg",
map: r => r.TableRows,
label: i => i.Concept,
value: i => Convert.ToDouble(i.Value),
title: "Pie chart example",
legend: "Distribution",
paletteHex: new[] { "#2563EB", "#F59E0B", "#16A34A" }
);
2️ PDF generation
var pdfBytes = generator.GeneratePdf(config);
Usage in HTML template
<section class="chart-section">
<h2>Performance chart</h2>
<div class="z-chart">
{{ chartSvg | raw }}
</div>
</section>
Recommended CSS (PDF-friendly)
.chart-section {
page-break-inside: avoid;
}
.z-chart {
border: 1px solid #ccc;
padding: 12px;
background: #fafafa;
}
.z-chart svg {
width: 100%;
height: auto;
display: block;
}
Culture and numeric formatting
OxyPlot formats labels using CultureInfo.CurrentCulture at render time.
This project includes an internal helper called CultureScope that ensures the correct culture is applied during SVG export:
using (CultureScope.Use(culture))
{
exporter.Export(model, stream);
}
This guarantees:
- Correct decimal separators
- Correct percentage formatting
- Independence from the operating system culture
License
MIT License © Juanjo Jiménez Zorrilla
Roadmap
- Bar charts
- Line charts
- Automatic HTML legends
Designed for serious, reproducible, cross-platform reporting.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- OxyPlot.Core (>= 2.2.0)
- zPdfGenerator (>= 0.1.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.