Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用iTextsharp for VB.NET将PDF中的字体更改为Calibri_Vb.net_Itext - Fatal编程技术网

如何使用iTextsharp for VB.NET将PDF中的字体更改为Calibri

如何使用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) 我得到的错误如下 严重性代码说明项目文件行抑制状态 错

我试图在使用VB.net和itextsharp时更改PDF文件中的字体。 我想我在这方面做得很好,但我在宣布正确的事情方面失败了。 我得到的代码看起来不错,但我得到了一个错误

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
完全不同。我试图将您的回答标记为答案,但我无法找到答案。这还不是回答,只是一个注释。如果这句话对你有帮助的话,我很乐意回答。这句话对我有帮助,先生,你是我的英雄。请把它作为一个答案,这样我就可以把它标记为帮助我的解决方案。这是我一直在寻找的答案,开始用解决方案更新帖子。