java - 什么导致错误****错误:运行ghostscript时为Tz提供的0.0水平文本缩放无效,我该如何解决?
问题描述
嗨,我正在编写一个 java 应用程序,它需要在保存为 pdf 的电气图纸上使用 ghostscript。一些图纸会导致 ghostscript 打印出错误消息:
**** Error: Invalid 0.0 horizontal text scaling given for Tz
我假设用于构建图纸并将它们保存为 pdf 的原始应用程序没有正确遵循规范并创建了一些错误的 pdf:s。我使用的命令是:
gswin64c -sDEVICE=pdfwrite -dNOPAUSE -sOutputFile="output.pdf" "test.pdf"
我在 java 应用程序中运行的命令有更多选项可以以各种方式更改 pdf。
我曾尝试使用 PDFBox 简单地重新保存文件,希望它会在运行 ghostscript 之前自动修复任何问题。
我还尝试使用ghostscript使用GS设备ps2write将pdf保存为ps文件:
gswin64c -sDEVICE=ps2write -dNOPAUSE -sOutputFile="output.ps" "test.pdf"
然后在 ps 文件上运行 ghostscript 命令来创建一个 pdf:
gswin64c -sDEVICE=pdfwrite -dNOPAUSE -sOutputFile="output.pdf" "output.ps"
这会创建一个在运行 ghostscript 时不输出错误的 pdf。所以我最终可能会运行两次 ghostscript 来解决这个问题。但我想在这里其他人的想法以及他们是否有更好的解决方案。
由于错误与文本缩放有关,我认为这可能是由于字体问题,所以我尝试在运行 ghostscript 时使用 fontmap 文件替换字体,看看它是否能更好地与其他字体一起使用。但这并没有帮助。
首先,我想要一些关于错误消息的信息以及它为什么抱怨。我还想要一些关于如何解决您不知道 pdf:s 格式如何的问题的建议,以及在运行 ghostscript 之前您可以做些什么来尝试解决 pdf 的任何问题。
谢谢!
解决方案
在使用 ghostscript 之前,我最终使用 PDFBox 保存了 pdf。PDFBox 能够解决 ghostscript 对 pdf 的任何问题。
推荐阅读
- vue.js - 如何处理 Vue3 中的“keydown.esc”事件?
- r - 在 Markdown 中使用循环生成多个传单地图
- status - Livewire.js 上的 403 状态
- python - ValueError:以 10 为基数的 int() 的无效文字:“无残忍”
- ftp - lftp 正在从远程文件夹中删除所有内容
- php - 检查每个验证码的过期时间
- python - 如何处理 Python OneSignal SDK 请求中的读取操作超时?
- sql-server - 无法初始化 OLED 错误 7399 的数据源对象对象
- ruby-on-rails - 通过 Active Record 时出现 SQL 原始查询错误
- c++ - 从源代码构建 Qt6 的部分内容