首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pdf2htmlEX常见错误“无法加载字体”

Pdf2htmlEX常见错误“无法加载字体”
EN

Stack Overflow用户
提问于 2019-10-05 05:26:23
回答 1查看 323关注 0票数 0

从命令提示符运行pdf2htmlEX.exe Windows二进制文件可以正常工作。当在包装器(在我的例子中是.Net)中运行pdf2htmlEX Windows二进制文件时,我收到如下所示的错误。

代码语言:javascript
复制
__tmp_font1.ttf is not in a known format (or uses features of that format fontfo
rge does not support, or is so badly corrupted as to be unreadable)
Cannot load font C:\Users\admin\AppData\Local\Temp\pdf2htmlEX-5RLDCX/__tmp_fo
nt1.ttf
EN

回答 1

Stack Overflow用户

发布于 2019-10-05 05:26:23

这是一个非常模糊的错误,在使用windows二进制版本的用户中似乎很常见。

显然,鲁旺无法为Windows用户提供解决方案,因为所有相关的帖子都被标记为“信息不足”。不幸的是,pdf2htmlEX项目也被归档了,不能添加新的评论,所以我在这里添加了这个信息,希望这能在未来对其他人有所帮助。

在我的场景中,通过使用System.Diagnostics.Process将上传的文件转换为ASP.Net版本的HTML包装器方法来调用库。Pdf2htmlEX库可以在命令提示符下正常工作,并且出于某些原因,在我的开发环境中也可以完美地工作,但在生产环境(这两个环境都是Windows Server2012R2)中就不行了。

我的第一个假设是存在权限问题,这是正确的。Pdf2htmlEX在内部使用FontForge来处理字体,默认情况下,其中一个或两者都使用Windows Temp目录来存储创建HTML和/或其他文件时使用的资源文件。而且,我“相信”,尽管没有得到证实,但它也可能使用活动用户的%USERPROFILE%\AppData\Local\Temp文件夹……

当从命令提示符运行测试命令时,您是在您的用户上下文中操作的,并且您的用户可以执行的所有操作,Pdf2htmlEX都可以执行。因此,一切都按预期运行。

在服务器环境中,进程在ApplicationPoolIdentity下运行,这是一种具有有限权限的特殊IIS用户类型。在这里,它对我来说失败了。虽然,我会看到在Windows临时文件夹中创建的文件夹和文件,但Pdf2HtmlEX无法打开它们以在其他地方创建最终文件。

解决方案:(对于您的个别情况,可能还有其他解决方案)在我的案例中,添加一个新的系统用户,将该用户添加到Users组,然后将IIS工作进程设置为该帐户,就解决了这个问题。我相信的原因是,Users组拥有对Windows临时目录的读/写访问权限,并可能拥有完成Pdf2htmlEX所需的其他系统区域的权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58243345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档