2017-03-05 63 views
0

我想創建一個PDF,它是.NET核心,並且我正在使用Syncfusion的PDF庫來完成它。在.NET中使用Syncfusion創建PDF時使用「自定義」字體核心

根據他們的docs,我應該可以使用下面的代碼:

PdfFont font = new PdfTrueTypeFont(new Font("Arial", 14)); 

但是,我唯一的構建函數是:

public PdfTrueTypeFont(Stream fontStream, float size); 
public PdfTrueTypeFont(PdfTrueTypeFont prototype, float size); 
public PdfTrueTypeFont(Stream fontStream, float size, PdfFontStyle style); 

這是我已經安裝了Syncfusion包

"Syncfusion.Compression.Portable": "15.1120.0.37", 
"Syncfusion.Pdf.Portable": "15.1120.0.37" 

我也試過MVC版本以代替Portable版本。

我使用的是最新的.NET的核心,「netstandard1.6」

我缺少一個包,做錯了什麼,或者這只是不.NET的核心支持了嗎?

我的最終遊戲就是能夠從.NET Core Library的任何網絡安全字體()中將文本寫入PDF。我還需要有一種方法來衡量文本。

回答

1

由於PdfTrueTypeFont不支持在.Net Core中給出字體名稱,因此可以將.ttf字體作爲Stream添加到PdfTrueTypeFont

string path = _hostingEnvironment.WebRootPath + "/Font/Arial.ttf"; 

Stream fontStream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite); 

//Create a new PDF true type font. 
PdfTrueTypeFont tFont = new PdfTrueTypeFont(fontStream, 12,PdfFontStyle.Regular); 

我們已經創建了一個樣本,以繪製文本的PDF既PdfTrueTypeFontPdfStandardFont的幫助。而且,使用一個變量來衡量給定文本的大小。

請找到下面的鏈接樣本:
http://www.syncfusion.com/downloads/support/directtrac/174333/ze/sample-2079659962

請參考下面的鏈接,在.net核心支持的功能:
https://help.syncfusion.com/file-formats/pdf/supported-and-unsupported-features

+0

謝謝。字體流是否真的需要寫訪問字體? – David