2017-02-13 100 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应该可能已经将该文件添加为解决方案的资源。 –

相关问题