Hvordan konfigurere generering av PDF.
Det er mulig å ekskludere enkelte komponenter, eller hele sider fra å bli med i pdf.
Det er to måter å ekskludere data fra PDF på
- Via konfigurasjon i filen
Settings.json
underApp/ui
- Programmatisk i filen
PdfHandler.cs
underApp/logic/Print
.
Dersom ekskludering av en side/komponent er avhengig av dynamikk må dette gjøres programmatisk.
Ekskludere sider
I eksemplene nedenfor ekskluderes siden med id page2 fra PDF.
Konfigurasjon
Oppsett i Settings.json
under App/ui
:
{
"$schema": "https://altinncdn.no/schemas/json/layout/layoutSettings.schema.v1.json",
"pages": {
"excludeFromPdf": ["page2"]
}
}
Programmatisk
public async Task<LayoutSettings> FormatPdf(LayoutSettings layoutSettings, object data)
{
if (data.GetType() == typeof(Skjema))
{
layoutSettings.Pages ??= new();
layoutSettings.Pages.ExcludeFromPdf ??= new();
layoutSettings.Pages.ExcludeFromPdf.Add("page2");
}
return await Task.FromResult(layoutSettings);
}
Ekskludere komponenter
I eksemplene nedenfor blir komponenten med id image-component-id ekskludert fra pdf.
Konfigurasjon
Oppsett i Settings.json
under App/ui
:
{
"$schema": "https://altinncdn.no/schemas/json/layout/layoutSettings.schema.v1.json",
"components": {
"excludeFromPdf": ["image-component-id"]
}
}
Programmatisk
public async Task<LayoutSettings> FormatPdf(LayoutSettings layoutSettings, object data)
{
if (data.GetType() == typeof(Skjema))
{
layoutSettings.Components ??= new();
layoutSettings.Components.ExcludeFromPdf ??= new();
layoutSettings.Components.ExcludeFromPdf.Add("image-component-id");
}
return await Task.FromResult(layoutSettings);
}
Ekskludere komponentinnslag i en repeterende gruppe
Dersom du ønsker å ekskludere én eller flere komponenter fra et innslag i en repeterende gruppe gjøres dette ved å spesifisere indeksen av gruppeelementet i tillegg til komponent id.
Format for ekskludering: componentId-<groupIndex>
.
Dersom komponenten skal ekskluderes for alle innslag i den repeterende gruppen kan intruksjonene i seksjonen over følges i stedet.
I eksempelet nedenfor ekskluderes gruppeelement med indeks 1 og id ownerId fra PDF.
Programmatisk
public async Task<LayoutSettings> FormatPdf(LayoutSettings layoutSettings, object data)
{
if (data.GetType() == typeof(Skjema))
{
layoutSettings.Components ??= new();
layoutSettings.Components.ExcludeFromPdf ??= new();
layoutSettings.Components.ExcludeFromPdf.Add("ownerId-1");
}
return await Task.FromResult(layoutSettings);
}
Bildet illustrerer at komponenten med indeks 0 og 2 er bevart i PDF, mens komponent med indeks 1 er borte.
