如何使用iTextsharp for VB.NET将PDF中的字体更改为Calibri
我试图在使用VB.net和itextsharp时更改PDF文件中的字体。 我想我在这方面做得很好,但我在宣布正确的事情方面失败了。 我得到的代码看起来不错,但我得到了一个错误如何使用iTextsharp for VB.NET将PDF中的字体更改为Calibri,vb.net,itext,Vb.net,Itext,我试图在使用VB.net和itextsharp时更改PDF文件中的字体。 我想我在这方面做得很好,但我在宣布正确的事情方面失败了。 我得到的代码看起来不错,但我得到了一个错误 Dim FontColour As VariantType = New BaseColor(35, 31, 32) Dim Calibri8 As VariantType = FontFactory.GetFont("Calibri", 8, FontColour) 我得到的错误如下 严重性代码说明项目文件行抑制状态 错
Dim FontColour As VariantType = New BaseColor(35, 31, 32)
Dim Calibri8 As VariantType = FontFactory.GetFont("Calibri", 8, FontColour)
我得到的错误如下
严重性代码说明项目文件行抑制状态
错误BC30311“BaseColor”类型的值无法转换为“VariantType”。J C:\Users\Jeffrey\Documents\Visual Studio 2013\Projects\J\J\UniFormulieren\Offerte\OfferteUniverseel.vb 61处于活动状态
严重性代码说明项目文件行抑制状态
错误BC30311“字体”类型的值无法转换为“VariantType”。J C:\Users\Jeffrey\Documents\Visual Studio 2013\Projects\J\J\UniFormulieren\Offerte\OfferteUniverseel.vb 62处于活动状态
我还尝试使用另一种方法,如下所示
Dim bftimes As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, False)
Dim times As New Font(bftimes, 10)
这样我就可以介绍“泰晤士报-新罗马”,但不能介绍Calibri。
上面的代码只允许met添加Times new roman、Courier和Helvetica
我正在使用带有VB.NET和iTextSharp的Microsoft Visual studio 2017。
我的C#不是很好,但它帮助我在VB.net中走了这么远:)
编辑:
第一个解决方案是我尝试使用Nalan M.的答案。
编辑2:
解决方案
谢谢你的帮助!我对那个varianttype太挑剔了,以至于我对另一种选择视而不见
做了如下调整,它确实像一个魅力
Dim FontColour As BaseColor = New BaseColor(35, 31, 32)
Dim Calibri8 As Font = FontFactory.GetFont("Calibri", 8, FontColour)
谢谢你们的帮助。(仍然不明白为什么我自己没有想到,使用C#to VB.net转换器有时会让你发疯)错误消息
“BaseColor”类型的值无法转换为“VariantType”
及
“Font”类型的值无法转换为“VariantType”
指出问题所在:无法将BaseColor
和Font
实例转换为VariantType
因此,必须将它们分配给不同类型的变量。幸运的是,还有一些自然的选择:让我们以已知的实际类型BaseColor
和Font
为例
Dim FontColour As BaseColor = New BaseColor(35, 31, 32)
Dim Calibri8 As Font = FontFactory.GetFont("Calibri", 8, FontColour)
“BaseColor类型的值不能转换为‘VariantType’”,“Font类型的值不能转换为‘VariantType’”,这已经说明了一切,不是吗?将
FontColour
变量声明为BaseColor
并将Calibri8
变量声明为Font
…作为旁白:c#中的var
与vb中的VariantType
完全不同。我试图将您的回答标记为答案,但我无法找到答案。这还不是回答,只是一个注释。如果这句话对你有帮助的话,我很乐意回答。这句话对我有帮助,先生,你是我的英雄。请把它作为一个答案,这样我就可以把它标记为帮助我的解决方案。这是我一直在寻找的答案,开始用解决方案更新帖子。