2017-02-13 101 views
1

我想添加自定義字體「Ubuntu的Medium.tff」在我的PDF功能都能運行我 使用了下面的代碼如何添加自定義字體的PDF生成器

public override void OnOpenDocument(PdfWriter writer, Document document) 
     { 
      try 
      { 
       PrintTime = DateTime.Now; 
       BaseFont bf =aseFont.CreateFont("..\\Content\\Fonts\\Ubuntu - Medium.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
       PdfContentByte cb = writer.DirectContent; 
       headerTemplate = cb.CreateTemplate(document.PageSize.Width, document.PageSize.Height); 
       footerTemplate = cb.CreateTemplate(document.PageSize.Width, document.PageSize.Height); 
      } 
      catch (DocumentException de) 
      { 

      } 
      catch (System.IO.IOException ioe) 
      { 

      } 
     } 

,但是當我嘗試運行我的解決方案,它會拋出一個錯誤,因爲 「.. \ Content \ Fonts \ Ubuntu - Medium.ttf找不到文件或資源。」

我只想在我的pdf中使用Ubuntu-Medium.ttf字體。請指導我

+0

嘗試使用傳遞給'BaseFont'對象的路徑創建'File'對象。然後詢問'File'是否存在()'。你會注意到它並不是因爲你的道路全是錯的。代替使用什麼?只有你可以知道,因爲只有你知道'Ubuntu - Medium.ttf'的路徑(這不會讓我成爲帶連字符周圍空格的智能文件名)。 –

+0

感謝挑選空間錯誤。我已經刪除了空格,但仍然無法正常工作。我的物理路徑如下** SolutionName - > Content-> Fonts-> Ubuntu-Medium.tff ** – Bob

+0

是你的應用程序的當前工作目錄? – mkl

回答

0

我知道這個問題有一定的年齡,不知道你是否有解決方案呢。

你有沒有嘗試添加該文件作爲資源解決方案,並呼籲像下面的示例中的資源?

BaseFont bf = Properties.Resources.YourResourceName; 

如果不工作,記住文件需要在輸出目錄中存在的正常工作,所以在我的解決方案之一,我有一個文件作爲嵌入資源。如果嵌入式資源不適合您,請將「複製到輸出目錄」更改爲「如果更新則複製」或「始終複製」。

+0

@Pengyy這是一個合法的答案,雖然我不確定它是否正確。他沒有提出另一個問題,他暗示OP應該可能已經將該文件添加爲解決方案的資源。 –

相關問題