【问题标题】:How to use System Font in iTextSharp with VB.net如何在 VB.net 中使用 iTextSharp 中的系统字体
【发布时间】:2015-05-02 02:25:43
【问题描述】:

我正在使用 Itextsharp 使用 VB.net 将文本文件动态转换为 PDF 文档。但是,我需要使用不属于 iTextSharp 库的系统字体。我看过一些使用 C# 的代码示例。但是,我是编程新手,我的经验全是 Visual Basic。有人可以帮我编写代码以使用系统字体吗?

【问题讨论】:

  • 您尝试过免费的在线转换器之一吗?如果您无法转换代码,请发布代码。
  • 欢迎来到 Stackoverflow!不幸的是,我们在这里帮助您弄清楚为什么您编写的代码,并且您认为应该可以工作,但实际上并没有工作。在编写任何代码之前寻求帮助的问题不在此处讨论,可能会关闭。在互联网上搜索一下在 C# 中使用字体的教程,并尝试使用那些谈论的 API 调用。然后,当您无法让代码工作时,您可以发布一个问题,并附上代码来向您展示您已经在尝试什么。
  • OneFineDay,当您提到转换器时,您是什么意思?你是说有转换器可以将 C# 转换为 VB.net?
  • 哈,我刚刚阅读了您的简历,我发现您像我一样学会了在 TRS-80 上编码:slideshare.net/StartUpsBE/bruno-lowagie-tech-startup-day-2015(幻灯片 2 上的第三张图片)。我在 14 岁时(1984 年)用我的 TRS-80 4P 开始了第一次创业。
  • 我实际上有您使用的版本之前的版本。它使用盒式磁带作为“磁带”驱动器(哈哈——即使在那时也非常低技术!)。但对于像我这样没有经验或知识的人来说,这是一个很好的工具。

标签: vb.net fonts itextsharp


【解决方案1】:

假设你想使用 Arial 正则并且你的C:\windows\fonts 目录中有文件arial.ttf,那么创建Font 对象就这么简单:

Dim arial As BaseFont = BaseFont.createFont("c:\windows\fonts\arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
font = New Font(arial, 16)

使用字体也很简单:

document.Add(New Paragraph("Hello World, Arial.", font))

这几乎是大量可以找到的 Java 和 C# 示例的直译。如果这不能解决您的问题,请展示您的尝试并解释为什么它不起作用。

更新:

您声称您在目录C:\Windows\Fonts\ 中有一个名为Arial monospaced for SAP.ttf 的文件。我有 99% 的把握这不是真的。我在谷歌上搜索过这样的字体,我找到了a webpage that says

转到 c:\windows\fonts 并且 [it] 应该包含 arimon__.ttf 和 arimonbd.ttf

换句话说,你需要:

Dim arial As BaseFont = BaseFont.createFont(
    "c:\windows\fonts\arimon__.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
Dim arialbd As BaseFont = BaseFont.createFont(
    "c:\windows\fonts\arimonbd.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)

不是 iText 问题。这是一个不理解包含字体程序的文件和该字体程序的名称之间的区别的问题。

在 cmets 中,您声称文件名为 Arial monospaced for SAP.ttf。请允许我指导您了解 Windows 资源管理器的基础知识。

您正在查看您的字体目录,如下所示:

该视图显示您的字体名称不是字体文件的名称。请选择右上角的查看图标并更改它以查看详细信息。这就是您将看到的:

现在右键单击详细列表的标题并选择字体文件名。这就是您将看到的:

使用本概述中显示的路径,您的代码将起作用。如果它不起作用,请发布一个新问题并准确地解释您在做什么,以便我们纠正您。不是每个人都有耐心制作屏幕截图来向您展示您所说的......不准确。

如果您在c:\windows\fonts 下找不到arimon__.ttfarimonbd.ttf,则字体可能不存在。如果它们不存在,您的代码将无法工作。检查它们是否存在的另一种方法是单击 Windows 下的 Run(在右键单击“开始”图标时打开的菜单中)并打开 cmd。然后执行cd c:\windows\fonts,然后执行dir ari*。这将显示以ari 开头的所有字体文件的列表。

请看下面的屏幕截图,它显示了当我在我的机器上执行此操作时会发生什么:

如您所见,我的c:\windows\fonts 目录中没有arimon__.ttfarimonbd.ttf,因此您的代码将永远无法在我的计算机上运行。

【讨论】:

  • 布鲁诺,谢谢。在我可以尝试之前将是星期一。但我会回来报告并让你知道。这看起来像个把戏!
  • 这是我要尝试使用的代码:
    Dim fontpath As String = "C:\Windows\Fonts\"
    Dim bf As BaseFont = BaseFont.CreateFont(fontpath & "Arial monospaced for SAP.ttf", BaseFont.CP1252, BaseFont.EMBEDDED) Dim ffont As New Font(bf, 7)
  • 如果你有一个名为 Arial monospaced for SAP.ttf 的字体文件,我真的会感到惊讶。你确定那个文件存在吗?我会更新我的答案,向您展示您的方式的错误。
  • 我正在查看系统文件夹 (C:\Windows\Fonts),文件名就是这样。但是,如果我尝试将其复制并粘贴到我的桌面或其他地方,它会作为 2 个文件粘贴:“arimon_.ttf”和“arimonbd.ttf”。不用说,我得到了找不到该文件名的错误。所以我将尝试使用其中之一,看看会发生什么。我会回来报告的。
  • 这两个名字都不行。关于我应该做什么或使用什么的任何想法?
猜你喜欢
  • 2013-12-30
  • 2018-05-19
  • 2012-12-16
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 2013-10-15
  • 2018-05-25
  • 1970-01-01
相关资源
最近更新 更多