From 280b6a77297b6b2e4b015266850df658249e5856 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Fri, 12 Jun 2026 11:54:50 -0400 Subject: [PATCH 1/2] docs: Add radar chart example and update documentation for chart integration --- docs/assets/images/charts/radarchart.png | Bin 0 -> 32547 bytes .../adding-charts-to-a-report-module.md | 63 +++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 docs/assets/images/charts/radarchart.png diff --git a/docs/assets/images/charts/radarchart.png b/docs/assets/images/charts/radarchart.png new file mode 100644 index 0000000000000000000000000000000000000000..859b868e6d475c8e61fc632d069acb30f0f3e075 GIT binary patch literal 32547 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 XeN&?R@l8YclXYrJM->a@E&cu Date: Fri, 12 Jun 2026 12:07:23 -0400 Subject: [PATCH 2/2] docs: Add watermark support and example to chart integration guide --- docs/assets/images/charts/watermark.png | Bin 0 -> 19775 bytes .../adding-charts-to-a-report-module.md | 93 ++++++++++++++++-- 2 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 docs/assets/images/charts/watermark.png diff --git a/docs/assets/images/charts/watermark.png b/docs/assets/images/charts/watermark.png new file mode 100644 index 0000000000000000000000000000000000000000..894027624bc1c45ccaf1998e0bb2b894ce3f838e GIT binary patch literal 19775 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 m`3Sjps1lyA>EXuZ~g-<80uXB literal 0 HcmV?d00001 diff --git a/docs/dev-guide/adding-charts-to-a-report-module.md b/docs/dev-guide/adding-charts-to-a-report-module.md index 60de69b..59e228c 100644 --- a/docs/dev-guide/adding-charts-to-a-report-module.md +++ b/docs/dev-guide/adding-charts-to-a-report-module.md @@ -109,7 +109,7 @@ $chartFileItem = New-PieChart ` -TitleFontSize 16 ``` ##### Pie Chart example output: -![alt text](../assets/images/charts/piechart.png) +![Pie Chart](../assets/images/charts/piechart.png) ### Donut Chart @@ -138,7 +138,7 @@ $chartFileItem = New-DonutChart ` -TitleFontSize 16 ``` ##### Donut Chart example output: -![alt text](../assets/images/charts/donutchart.png) +![Donut Chart](../assets/images/charts/donutchart.png) ### Bar Chart @@ -175,7 +175,7 @@ $chartFileItem = New-BarChart ` ``` ##### Bar Chart example output: -![alt text](../assets/images/charts/barchart.png) +![Bar Chart](../assets/images/charts/barchart.png) ### Stacked Bar Chart @@ -218,7 +218,7 @@ $chartFileItem = New-StackedBarChart ` ``` ##### Stacked Bar Chart example output: -![alt text](../assets/images/charts/stackedbarchart.png) +![Stacked Bar Chart](../assets/images/charts/stackedbarchart.png) ### Single Stacked Bar Chart @@ -246,7 +246,7 @@ $chartFileItem = New-SingleStackedBarChart ` ``` ##### Single Stacked Bar Chart example output: -![alt text](../assets/images/charts/singlestackedbarchart.png) +![Single Stacked Bar Chart](../assets/images/charts/singlestackedbarchart.png) ### Signal Chart @@ -266,7 +266,7 @@ $chartFileItem = New-SignalChart ` ``` ##### Signal Chart example output: -![alt text](../assets/images/charts/signalchart.png) +![Signal Chart](../assets/images/charts/signalchart.png) ```powershell title="Signal chart — multi-line throughput trend" $readThroughput = [double[]]@(120, 145, 132, 160, 155) @@ -288,7 +288,7 @@ $chartFileItem = New-SignalChart ` ``` ##### Multi-line Signal Chart example output: -![alt text](../assets/images/charts/signaladvchart.png) +![Multi-line Signal Chart](../assets/images/charts/signaladvchart.png) ### Radar Chart @@ -340,7 +340,7 @@ $chartFileItem = New-RadarChart ` ``` ##### Radar Chart example output: -![alt text](../assets/images/charts/radarchart.png) +![Radar Chart](../assets/images/charts/radarchart.png) **Key parameters:** @@ -394,6 +394,83 @@ New-PieChart -Title 'Distribution' -Values $chartValues -Labels $chartLabels ` **Available palettes:** Amber, Category10, Category20, Aurora, Building, ColorblindFriendly, ColorblindFriendlyDark, Dark, DarkPastel, Frost, LightOcean, LightSpectrum, Microcharts, Nero, Nord, Normal, OneHalf, OneHalfDark, PastelWheel, Penumbra, PolarNight, Redness, SnowStorm, SummerSplash, Tsitsulin +## Watermarks + +All chart types support an optional watermark that overlays semi-transparent text in the center of the chart. Watermarks are **disabled by default** and are activated only when the `-EnableWatermark` switch is supplied. This is useful for marking sensitive reports with classifications like "CONFIDENTIAL" or "DRAFT". + +### Watermark Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `-EnableWatermark` | Switch | (off) | Enables the watermark overlay | +| `-WatermarkText` | String | `Confidential` | Text to display as the watermark | +| `-WatermarkFontName` | String | `Arial` | Font family for the watermark text | +| `-WatermarkFontSize` | Int | `24` | Font size (points) for the watermark text | +| `-WatermarkColor` | BasicColors | `Gray` | Color of the watermark text | +| `-WatermarkOpacity` | Double | `0.3` | Opacity (0.0–1.0) of the watermark; lower values are more transparent | + +### Watermark Examples + +**Default watermark** — gray "Confidential" at 30% opacity: + +```powershell title="Pie chart with default watermark" +$chartFileItem = New-PieChart ` + -Title 'Sales' ` + -Values @(10, 20, 30) ` + -Labels @('A', 'B', 'C') ` + -Format base64 ` + -EnableWatermark ` + -Width 600 -Height 400 +``` + +**Custom watermark text and color** — red "CONFIDENTIAL" at 20% opacity: + +```powershell title="Bar chart with custom watermark" +$chartFileItem = New-BarChart ` + -Title 'Revenue' ` + -Values @(100, 200, 150) ` + -Labels @('Q1', 'Q2', 'Q3') ` + -Format base64 ` + -EnableWatermark ` + -WatermarkText 'CONFIDENTIAL' ` + -WatermarkColor Red ` + -WatermarkOpacity 0.2 ` + -Width 600 -Height 400 +``` + +**Larger watermark font** — "DRAFT" at default opacity: + +```powershell title="Stacked bar chart with draft watermark" +$chartFileItem = New-StackedBarChart ` + -Title 'Budget' ` + -Values @(@(1, 2), @(3, 4)) ` + -Labels @('A', 'B') ` + -LegendCategories @('X', 'Y') ` + -Format base64 ` + -EnableWatermark ` + -WatermarkFontSize 36 ` + -WatermarkText 'DRAFT' ` + -Width 600 -Height 400 +``` + +**Custom font and higher opacity** — better visibility for sensitive data: + +```powershell title="Signal chart with custom font watermark" +$chartFileItem = New-SignalChart ` + -Title 'Throughput' ` + -Values @(,[double[]]@(1, 2, 3, 4, 5)) ` + -Format base64 ` + -EnableWatermark ` + -WatermarkFontName 'Arial' ` + -WatermarkFontSize 28 ` + -WatermarkText 'SENSITIVE' ` + -WatermarkOpacity 0.5 ` + -Width 600 -Height 400 +``` + +##### Example output with watermarks: +![Watermarks](../assets/images/charts/watermark.png) + ## Placing Charts in a Report Charts should appear **before** their related data table within the same section, providing a visual summary that the table then backs with detail. Place the `Image` call, then a `BlankLine`, then the `Table` call.