我正在使用ABCpdf.net组件将HTML转换为PDF.某些HTML使用Symbol字体显示某些字符.不幸的是,我们正在使用来自第三方的HTML,并且无法更改.
我的开发环境正确显示字体,但我的生产环境不会.它就好像没有安装字体,即使它是.如果我在生产环境中的Internet Explorer中呈现相同的HTML,它就会显示正常.
我尝试将字体嵌入为.eot并在标题中提供@ font-face样式.我尝试过使用TheDoc.AddFont('Symbol').有什么建议?
产品:ABCpdf .NET 7 x64
生产操作系统:Windows Server 2003 x64,IE8
开发操作系统:Win7 x64,IE8
我们有一个大型应用程序成功使用ABCPDF.NET与HTML样式文本.我们习惯于使用未安装在Windows中的字体添加文本,但存储在文件系统中其他位置的文件中 - 我们这样做,这样每个用户都可以上传自己的字体并将其与输出一起使用.我们使用AddFont调用将字体嵌入Doc中,然后使用AddText调用在HTML样式文本的标记中引用该字体.
我们开始考虑使用AddImageUrl/AddImageHTML来获得更多HTML功能.因此,字体是一个棘手的问题.似乎MSHTML和Gecko引擎只能看到与Windows相同的字体列表.
我试过这段代码来看看@ font-face是否适用于Gecko:
Sub Main
dim pdf as new Doc
with pdf.HtmlOptions
.Engine = EngineType.Gecko
.FontEmbed = true
.FontSubstitute = false
.FontProtection = false
end with
pdf.AddImageUrl("http://www.w3.org/2010/09/web-on-tv/slides/1009-tv-web-chaals/demos/webfonts.htm")
pdf.Save("c:\temp\a.pdf")
End Sub
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.还有什么我可以做的吗?
这是ABCpdf.NET 8.1.0.7.升级到9或更高版本的8会有帮助吗?