ZplCore.Designer.Blazor
1.0.0
dotnet add package ZplCore.Designer.Blazor --version 1.0.0
NuGet\Install-Package ZplCore.Designer.Blazor -Version 1.0.0
<PackageReference Include="ZplCore.Designer.Blazor" Version="1.0.0" />
<PackageVersion Include="ZplCore.Designer.Blazor" Version="1.0.0" />
<PackageReference Include="ZplCore.Designer.Blazor" />
paket add ZplCore.Designer.Blazor --version 1.0.0
#r "nuget: ZplCore.Designer.Blazor, 1.0.0"
#:package ZplCore.Designer.Blazor@1.0.0
#addin nuget:?package=ZplCore.Designer.Blazor&version=1.0.0
#tool nuget:?package=ZplCore.Designer.Blazor&version=1.0.0
ZplCore.Designer.Blazor
The zplCore label editor as a Blazor component – for Blazor Server and Blazor WebAssembly.
A thin wrapper around the iframe JS SDK of a ZplCore.Designer host or the
zplcore/designer container: design JSON in and out, data binding, ZPL/PDF/PNG export, undo/redo.
<ZplCoreDesigner @ref="editor"
@bind-Design="design"
Data="rows"
BaseUrl="/designer"
Locale="de"
Theme="DesignerTheme.Auto"
ReadOnly="false"
OnChange="OnChange"
OnSelectionChange="OnSelection" />
@code {
ZplCoreDesigner? editor;
JsonObject? design; // DesignDocument { schemaVersion, label, editor, records }
List<object> rows = [new Dictionary<string, object?> { ["name"] = "Anna", ["ean"] = "9506000134352" }];
async Task Export()
{
string zpl = await editor!.GetZplAsync();
byte[] pdf = await editor.GetPdfAsync();
}
}
Same host (Blazor Server or a hosted WebAssembly app):
builder.Services.AddZplCoreDesigner();
app.MapZplCoreDesigner("/designer").RequireAuthorization(); // your auth
Container on another origin: BaseUrl="https://labels.example.com/designer", list your app in the container's
ZPLCORE_DESIGNER__ALLOWEDORIGINS__0, pass the key with RequestHeaders="@(new Dictionary<string, string> { ["X-Api-Key"] = key })".
| Parameter | |
|---|---|
BaseUrl (required) |
URL of the editor (MapZplCoreDesigner prefix or container URL) |
Design / DesignChanged |
design document, two-way with @bind-Design (a new object is loaded into the editor) |
Data |
records for the data binding (a new collection instance is sent) |
Locale, Theme, ReadOnly |
changeable at any time |
Unit, Tab, Features, Autosave, FitOnLoad, RequestHeaders, AllowedOrigins, SdkUrl |
read when mounting (a change mounts again) |
OnChange, OnSelectionChange, OnValidation, OnReady, OnError |
events (OnValidation switches the validation on) |
Height, Class, Title, MaxResultBytes |
host element, iframe title, largest result read back (64 MB) |
Methods: GetDesignAsync, SetDesignAsync, SetDataAsync, GetZplAsync, GetPdfAsync, GetPngAsync, GetSelectionAsync,
ValidateAsync, UndoAsync, RedoAsync, SetLocaleAsync, SetThemeAsync, SetRequestHeadersAsync.
Notes
- The SDK is loaded from the editor host (
{BaseUrl}/sdk/zplcore-designer.js), never from a CDN. - Designs, ZPL and PDFs come back as byte streams, so the SignalR message limit of Blazor Server does not apply.
- Data field names are written as they are (System.Text.Json without naming policy).
- Interactive render modes only; nothing happens during prerendering.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Microsoft.AspNetCore.Components.Web (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 40 | 10/27/2026 |