2016-03-23 6 views
0

Ich verwende eine Webanwendung auf azurblau, um eine PDF mit PDFsharp 1.32 zu erstellen. Da es sich um eine Azure-Webanwendung handelt, kann ich keine Schriftarten installieren.PDFsharp auf Azure mit benutzerdefinierten Schriftarten

Deshalb verwende ich die folgenden mit eingebetteten Schriftoptionen:

var globalFontCollection = XPrivateFontCollection.Global; 
_fontBytes = File.ReadAllBytes(_pathToFont); 
globalFontCollection.AddFont(_fontBytes, _fontName); 

Allerdings funktioniert dies nicht. Es gibt keinen Fehler, der sich nur so verhält, als ob die Schriftart nicht bekannt ist und auf den Standardwert zurückfällt. Wenn ich die Schriftart installiere, funktioniert es, also weiß ich, dass der Rest des Codes korrekt ist.

Andere Code zeigt mit AddFont mit anderen Parametern aber diese sind nicht für mich verfügbar und mit Blick auf den Quellcode ist dies die einzige Methode implementiert.

Kennt jemand den richtigen Code, damit wir nicht installierte Schriften verwenden können?

Antwort

0

Das Schrifthandling von PDFsharp 1.50 wurde überarbeitet - auch im Hinblick auf Azure und Medium Trust. Ich würde empfehlen, PDFsharp 1.50 (neueste Version ist Beta 3) oder später für Azure zu verwenden. Ich denke, der WPF-Build wird angemessen sein.
Die neue IFontResolver gibt Ihnen eine bessere Kontrolle der Schriftart Handhabung.
Das Beispielpaket für PDFsharp 1.50 enthält ein Beispiel. Alternativ können Sie EZFontResolver von einem Dritten verwenden.

In Bezug auf PDFsharp 1.32: gibt es verschiedene Builds, die verschiedene Überladungen für AddFont verfügbar machen. Ich würde auch den WPF-Build für Azure empfehlen.
Die Handhabung von Schriftarten ist plattformspezifisch (GDI + oder WPF). Es kann schwierig sein, die Schriftartnamen "korrekt" zu erhalten, damit die Plattform die benutzerdefinierte Schriftart verwendet.
PDFsharp 1.32 enthält ein funktionierendes WPF-Beispiel, das eine Schriftart aus einer Ressource verwendet. Sie können dieses Beispiel verwenden, um loszulegen.

GDI + ist, soweit ich weiß, keine Option für Azure-Websites. Also WPF ist der Weg zu gehen. Ich würde Version 1.50 mit der neuen Schnittstelle IFontResolver verwenden. Mit der Implementierung von EZFontResolver ist es einfach zu bedienen. Es gibt ein Beispiel für PDFsharp 1.50, das eine Implementierung von IFontResolver zeigt, die als Vorlage verwendet werden kann, wenn Sie es ohne EZFontResolver tun möchten.

+0

Ich habe seitdem gelernt, dass Azure Web-Anwendungen nicht GDI + unterstützen, wenn ich die WPF-Option verwenden funktioniert dies auf Azure-Webapps oder ist es GDI + unter der Haube? – John

+0

Der WPF-Build verwendet GDI + nicht. –

Verwandte Themen