Wir haben eine spezielle Schriftart, die auf dem Server installiert ist. Wir arbeiten per Remote-Desktop auf dem Server, und die Schriftart ist im L&L-Designer ausgewählt und im Dokument zu sehen – soweit, so gut. Wenn wir jedoch ein PDF erstellen, wird die Schriftart als Arial und nicht als unsere Schriftart angezeigt. Wir verwenden Version 28 und können daher die eingebetteten Schriftarten nicht nutzen. Gibt es eine Lösung?
Guten Morgen Brent, auf dem Zielsystem, bzw. auf dem System auf dem das Dokument erstellt/exportiert wird, muss die Schriftart auch installiert sein→ alleine im Designer reicht nicht aus.
LG
In List & Label 28 gibt es zwei getrennte Themen, die hier zusammenlaufen:
Die neue Funktion „Schriftarten in Projektdateien einbetten“ existiert tatsächlich erst ab List & Label 30, d. h. in LL28 kannst du dich nicht darauf verlassen, dass die Schrift aus dem Projekt heraus „mitgebracht“ wird List & Label 30 – Neue Version / Schriftarten in Projektdateien einbetten.
Für den PDF‑Export muss die Schriftart zur Laufzeit im System verfügbar und für den Prozess „sichtbar“ sein – sonst ersetzt das PDF‑Modul sie durch eine Standardschrift wie Arial.
Da du im Designer über Remote Desktop die Schrift siehst, ist sie zumindest im interaktiven Benutzerkontext vorhanden. Dass sie im PDF durch Arial ersetzt wird, spricht aber dafür, dass der Prozess, der den Export ausführt, die Schrift nicht (oder nicht vollständig) sieht.
Typische Punkte in solchen Szenarien:
Die Schrift wurde nur für einen Benutzer installiert („nur für mich“) und nicht systemweit, der Export läuft aber unter einem anderen Benutzerkonto (Dienstkonto, anderer RDP‑User, IIS‑User o. Ä.).
Die Schrift ist zwar als Datei auf dem Server vorhanden, aber nicht korrekt im System registriert.
In Server- oder Container-Umgebungen (z. B. Windows Server Core, Docker) sind generell nur wenige Fonts installiert und müssen manuell bereitgestellt und ggf. zur Laufzeit mit AddFontResource() eingebunden werden Font-Probleme in Docker/Server-Umgebungen.
Lösungsansätze für List & Label 28
Schrift systemweit installieren und Benutzerkontext prüfen
Prüfe auf dem Server in der Systemsteuerung / Einstellungen, ob die Schriftart unter „Schriftarten“ für alle Benutzer sichtbar ist.
Stelle sicher, dass der Prozess, der den PDF‑Export startet (z. B. Windows-Dienst, Web-Server-Account), dieselben Fonts zur Verfügung hat wie dein RDP‑Benutzer.
Test: Melde dich mit genau dem Benutzer an, unter dem auch der Export ausgeführt wird, starte deine Anwendung bzw. den Designer aus diesem Kontext und erzeuge ein PDF. Wenn die Schrift dann korrekt erscheint, ist es eindeutig ein Benutzerkontext-/Installationsproblem.
Fonts in Server-/Docker-/„Printerless“-Szenarien korrekt bereitstellen
In Headless-/Server-Szenarien reicht reines Kopieren der .ttf/.otf-Dateien nicht, die Fonts müssen dem System bzw. dem Prozess bekannt gemacht werden. Im verlinkten Beitrag zu Docker/Server-Umgebungen wird beschrieben:
Fonts in das Image / auf den Server kopieren.
Diese Fonts vor der Nutzung von List & Label mit der Windows‑API registrieren, z. B. AddFontResource() (bzw. dessen neuere Varianten) Font-Probleme in Docker/Server-Umgebungen.
Beispiel für den Einsatz im eigenen Code (stark vereinfacht, C#‑Pseudocode):
[DllImport("gdi32.dll", CharSet = CharSet.Auto)]
public static extern int AddFontResource(string lpFileName);
public void RegisterCustomFont(string fontPath)
{
int res = AddFontResource(fontPath);
// Optional: Fehlerbehandlung, wenn res == 0 (Font nicht hinzugefügt)
}
public void ExportPdf()
{
RegisterCustomFont(@"C:\Fonts\IhreSpezialschrift.ttf");
using (var ll = new ListLabel())
{
// Datenquelle, Projekt etc. setzen
ll.ExportOptions.Add(LlExportOption.ExportTarget, "PDF");
// weitere Export-Optionen…
ll.Export();
}
}
Dadurch „kennt“ der Prozess die Schriftart während des Exports.
Prüfen, ob „Printerless“-Modus im Spiel ist
Falls du LL in einem „printerless“ Szenario einsetzt (z. B. Web/Cloud ohne installierten Drucker), kann es bei der Textdarstellung zu Abweichungen kommen, insbesondere wenn Fonts im Container / auf dem Server fehlen oder das System-Setup sehr minimal ist Printerless-Modus.
In solchen Fällen gilt ebenfalls: Fonts explizit bereitstellen und dem Prozess anmelden, Layout im Designer unter denselben Bedingungen prüfen.
PDF/A als Test (falls relevant)
Das PDF-Modul von LL bettet für PDF/A‑Exports grundsätzlich alle verwendeten Schriftarten ein. Wenn deine Schrift dort trotzdem als Arial erscheint, ist das ein starker Hinweis, dass die Schrift zum Zeitpunkt der Ausgabe schlicht nicht verfügbar war (d. h. sie kann auch nicht eingebettet werden).