【发布时间】:2017-10-03 18:32:30
【问题描述】:
我想以此作为开头,理解我正在使用遗留代码,因此我不得不忍受不太理想的情况,因此我正在做一些古怪的事情。在我获得重写的批准之前,我将不得不到期。
上下文
这是我的情况。该应用程序是一个“简单”的应用程序,因为它报告了一个 SQL 数据库。无论好坏,它都使用附言来构建报告。它利用嵌入到应用程序目录中的 Ghostscript dll。这是踢球者,有人要求我包含 SSIS 报告,其输出已经是 PDF 格式。出于兼容性考虑,我需要将这些 PDF 转换为 postscript,即使在大多数情况下它们稍后会立即转换回 PDF。我知道这很可能是糟糕的设计,但有某些功能需要这样做,而目前它就是这样。我正在使用 GhostScript 来处理转换。
观察到的行为 以下行为是在将 PDF 转换为 PS、通过应用程序然后转换回 PDF 后观察到的行为。
当使用“sDevice=pswrite”时,一切正常,除了报告编译的分辨率很差,尽管我如何调整分辨率选项。
当利用我理解为当前接受的协议的“sDevice=ps2write”时,PDF 将不会返回并产生以下错误。
ERROR:
undefined
OFFENDING COMMAND:
U1!‘WVt92\a
STACK:
--nostringval--
20
仅当使用来自通过 Web 客户端访问的报表服务器的报表时,才会产生上述错误。我可以确认 PDF 成功返回并且没有损坏。
在应用程序上运行本地 SSIS 包时,可以成功处理生成的 PDF。
当使用 PS2Write 将原始 PDF 转换为 PS 时,cmets 填充如下
%!PS-Adobe-3.0
%%BoundingBox: 0 0 612 792
%%Creator: GPL Ghostscript 905 (ps2write)
%%LanguageLevel: 2
%%CreationDate: D:20171003154139-05'00'
%%Pages: 3
%%EndComments
pswrite 产生
%!PS-Adobe-3.0
%%Pages: (atend)
%%BoundingBox: 21 30 761 576
%%HiResBoundingBox: 21.600000 30.400000 760.566016 575.100000
%.....................................
%%Creator: GPL Ghostscript 905 (pswrite)
%%CreationDate: 2017/10/03 15:53:40
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
怀疑
我怀疑 PDF 的标准不兼容,无法转换为 PostScript。例如,无法处理的较新 PDF 版本。或者它可能包含一些不兼容的东西,例如字体或 img。
有没有办法确定地追捕这个?有没有人遇到过类似的情况,解决方法是什么?关于要研究什么或要尝试什么的任何指示?
【问题讨论】:
-
您能否发布用于双向转换的完整命令?
标签: c# pdf ssis ghostscript postscript