2016-03-23 34 views
0

我在使用PDFsharp 1.32來創建PDF格式的webapp。由於這是一個Azure Web應用程序,我無法安裝字體。在Azure上使用自定義字體的PDFsharp

因此我使用嵌入字體選項如下:

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

然而,這是行不通的。沒有錯誤就像字體不知道並且回到默認狀態一樣。如果我安裝它的字體,所以我知道其餘的代碼是正確的。

其他代碼顯示了使用不同參數的AddFont,但是這些對我來說是不可用的,並且查看源代碼這是唯一實現的方法。

有誰知道允許我們使用未安裝字體的正確代碼?

回答

0

對PDFsharp 1.50的字體處理進行了大修 - 也考慮了Azure和Medium Trust。我建議使用PDFsharp 1.50(最新版本是beta 3)或更高版本的Azure。我認爲WPF構建將是適當的。
新的IFontResolver可讓您更好地控制字體處理。
PDFsharp 1.50的樣本包包含一個樣本。或者,您可以使用第三方的EZFontResolver

對於PDFsharp 1.32:有不同的構建爲AddFont公開不同的重載。我也推薦爲Azure製作WPF。
字體處理是平臺特定的(GDI +或WPF)。可能很難讓字體名稱「正確」,讓平臺使用自定義字體。
PDFsharp 1.32包含一個正在使用WPF示例,該示例使用資源中的字體。您可以使用此示例開始。據我所知,GDI +並不是Azure網站的選項。所以WPF是要走的路。我將使用版本1.50和新的IFontResolver接口。使用EZFontResolver實現它很容易使用。有一個用於PDFsharp 1.50的示例,它顯示了IFontResolver的實現,如果您不想使用EZFontResolver,可以將其用作模板。

+0

從那時起,我瞭解到Azure Web應用程序不支持GDI +,如果我使用WPF選項在Azure webapps上工作,還是在GDI +下使用GDI +? – John

+0

WPF構建不使用GDI +。 –