我一直在使用 jodconverter 库将 Microsoft Word 文档 (*.doc) 转换为后端服务器上的 PDF 文件。后端是在旧的 Windows Server 2008 Enterprise 上运行的 Spring Boot 应用程序。(jodconverter 需要在这台机器上安装一个 Apache OpenOffice 或 Libre Office 版本 - 我在那里安装了 OpenOffice 4 - 简单的默认安装,不作为服务运行 - 我没有看到任何问题)
一个特定的用例是转换包含使用 Windows 机器上不存在的特定字体呈现的文本的文档(IDAutomation 条形码字体 - 它是 OTF 文件) - 我发现在服务器上安装该字体是唯一必要的让我前进的事情(右键单击字体文件->选择安装-没有其他选项),事情似乎就是这样。
现在,我从命令行启动后端 - 并考虑使用 NSSM 将其包装到 Windows 服务中。我得到了一个很好的工作服务,在本地系统帐户下运行——这似乎工作得很好。
后来有人向我指出,在 DOC 到 PDF 的转换过程中不再呈现条形码字体。事实上,我切换回命令行交互版本,字体再次出现。我知道这显然是我安装该字体的方式以及在本地系统帐户下(或其他任何方式)的问题,该字体无法访问并且使用了后备字体。
我试图指定在不同的帐户下运行该服务 - 特别是我安装字体的那个 - 但这没有帮助。
问题 a) - 如何安装字体以便本地系统帐户可以访问它?如果我可以避免必须以本地管理员身份登录,那就太好了-尽管如果这是唯一的方法,那么我将继续这样做-我认为这个问题是否更适合服务器故障或超级用户,但决定在这里问它,因为我原来的问题似乎是在应用程序编程级别
问题 b) - 是否有一个日志文件,我可以在其中跟踪未找到正确字体和使用替代字体的实际错误消息?
谢谢
[编辑:我的 pom.xml 中与 JODConverter 版本相关的内容]:
<properties>
<jodconverter.version>4.3.0</jodconverter.version>
</properties>
...
<dependencies>
...
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-spring-boot-starter</artifactId>
<version>${jodconverter.version}</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-local</artifactId>
<version>${jodconverter.version}</version>
</dependency>
</dependencies>