无法在Windows 10中编辑ghostprint ppd

时间:2018-12-15 14:12:15

标签: ghostscript

我很难以“标题”过滤器令人满意的方式提出问题。真正的问题在于,在使用Windows 10设备安装程序重新安装后,仅修改Windows 10中GS9.26安装中的GhostPDF.PDD文件似乎不会影响输出。

我将打印到联网的Sun SPARCprinter 1,该SPARCprinter 1由Ghostprint(脚本?)控制,该Ghostprint编译为在SunOS 4.1.4上运行。多年来,这种方法已经成功运行了,使用Adobe的PS驱动程序和SPARCstation PPD从Windows XP上打印输出,这些输出是从网上找到的样本中拼凑而成的。

我已经在Windows 10上安装了Artifex的9.26,并输出到LPR打印机(Sun)。输出有效,被Sun识别为PS输出,但会产生许多致命错误。

我需要编辑Windows Ghostscript安装以输出更适合Sun的PS文件。

对于我的一个简单问题:除Ghostpdf.PPD文件之外,我是否需要修改Ghostscript Windows 10安装中的任何内容?

其他信息:

SPARCstation 10信息:

SunOS 4.1.4

arcad# gcc -dumpversion
2.95.2 Note: I had to bootstrap this version up from the early GCC which could be compiled with the SunOS 4.1.4 C compiler.  I had the impression I couldn't bring it up any further but could be mistaken.  

arcad# gs --help  

Aladdin Ghostscript 6.01 (2000-03-17)
Copyright (C) 2000 Aladdin Enterprises ...

Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF

.....

For more information, see /usr/local/share/ghostscript/6.01/doc/Use.htm.

Note: I think this is the most recent GS version I can compile with this gcc version

printcap section:

gp|GhostPrinter:\
        :lp=/dev/lpvi0:sd=/var/spool/gsprintspool:lf=/var/spool/gsprintspool/log:\
        :mx#0:sh:if=/usr/local/libexec/lpfilter-gps:


Typical spool file - "....." indicates stuff not included here"

arcad# more dfA004DESKTOP-M8C5I86
%!PS-Adobe-3.0
%%Title: Document
%%Creator: PScript5.dll Version 5.2.2
%%CreationDate: 12/14/2018 19:56:8
%%For: jferg
%%BoundingBox: (atend)
%%Pages: (atend)
%%Orientation: Portrait
%%PageOrder: Special
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentData: Clean7Bit
%%TargetDevice: (Ghostscript) (3010) 815
%%LanguageLevel: 3
%%EndComments

%%BeginDefaults
%%PageBoundingBox: 0 0 612 792
%%ViewingOrientation: 1 0 0 1
%%EndDefaults

.....

 %%EndResource
userdict /Pscript_WinNT_Incr 230 dict dup begin put
%%BeginResource: file Pscript_FatalError 5.0 0
userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
%%EndResource
userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
            quires more memory than is available in this printer.)100 500
            more of the following, and then print again:)100 485
            put format, choose Optimize For Portability.)115 470
            ce Settings page, make sure the Available PostScript Memory is accur--More--(2%)
            ce the number of fonts in the document.)115 440
            ocument in parts.)115 425 12/Times-Roman showpage
            Error: Low Printer VM ]%%)= true FatalErrorIf}if}bind def end
            2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg get def}ifelse

.....

SPARCprinter PDD file which works with Adobe PS in Windows XP:


john@hp2:~/sun-stuff/cups-sparc$ more SPARCprinter2.ppd

*PPD-Adobe: "4.1"
*% PostScript(R) Printer Description File for SPARCprinter
*% Date: 94/01/14
*% Copyright 1994 Sun Microsystems, Inc.  All Rights Reserved.
*% Permission is granted for redistribution of this file as
*% long as this copyright notice is intact and the contents
*% of the file is not altered in any way from its original form.
*% End of Copyright statement
*% Changed margins on SPARCprinter JAF 3-3-2017
*FormatVersion: "4.1"
*FileVersion: "1.10"
*LanguageEncoding: ISOLatin1
*LanguageVersion: English
*PCFileName: "SPRN.PPD"
*Product: "(SPARCprinter)"
*PSVersion: "(3.000) 0"
*ModelName: "SPARCprinter"
*ShortNickName: "SPARCprinter"
*NickName: "SPARCprinter"


*% ==== Device Capabilities ===============
*LanguageLevel: "3"
*Extensions: CMYK Composite
*FreeVM: "4194304"

*ColorDevice: False
*DefaultColorSpace: Gray
*VariablePaperSize: False
*TTRasterizer: None
*FileSystem: False

..... more of the usual stuff

1 个答案:

答案 0 :(得分:0)

我不太了解为什么您在Windows上安装了Ghostscript。 Windows完全能够自己生成PostScript文件。另外,PPD文件实际上并不能做很多事情,只是一个带有打印机功能描述的文本文件。

所以真正的问题是,或者似乎是,您的SUN设置不喜欢新版本的Windows生成的PostScript。

您没有说如何来打印PostScript文件。而不是如何通过Ghostscript控制打印机(我不知道有什么产品叫Ghostprint,GSView中有一个GSPrint,但这确实适用于Windows)。

假设您正在Sparc工作站上使用Ghostscript来驱动打印头,那么我想说的最可能的问题是您在工作站上使用了旧版本的Ghostscript,并且它不喜欢由Windows的较新版本。

如果您已经包含了工作站Ghostscript安装中的抄本,也许可以多说几句话,但是如果没有,我宁愿猜测。

另一种可能性是您正在Ghostscript中使用ps2write设备在Windows上生成PostScript文件。我想不出为什么要这么做,但这有点符合您的描述。在这种情况下,编辑PPD文件将无效,因为Ghostscript不使用它。

现在ps2write设备发出级别为 2 的PostScript,线索就在名字中,并且很可能再次表明您的Sparc设置太老了,以至于它不了解级别2或不了解级别2。全面实施。在这种情况下,您可能会得到错误。同样,如果您要提供错误消息的文本,这将有所帮助!

在后一种情况下,坦率地说,您不走运。不久前,我们放弃了对第1级PostScript输出的支持,现在第2级已经有28年了,而第3级将要达到20。如果您需要第1级语言输出,则必须回到非常旧的Ghostscript版本。包含pswrite设备的最新版本是9.07(距今五年半)。

您可以轻松地购买pswrite设备并对其进行升级,使其能够与当前版本的Ghostscript一起使用

[编辑]

我的话,那是Ghostscript的确实旧版本!

您可以尝试构建新版本来替换它,但是我也不知道当前代码是否可以在gcc 2.95上编译。这是“应该的”,因为我们只希望使用C89,但是第三方库(必不可少的)可能会很不编译。

您引用的PostScript文件是Windows而非Ghostscript(%%Creator: PScript5.dll Version 5.2.2)生成的。因此,在我看来,您的问题似乎是由较新版本的Windows生成的PostScript与您18岁的Ghostscript版本不兼容。这实际上并不完全令人惊讶。

如果您查看DSC注释,则会显示:

%%LanguageLevel: 3

您的Ghostscript信息说它支持1级和2级语言。当时3级规范才刚刚发布(1999年),显然当时的维护者还没有时间完全实现它。 / p>

请注意,ghostpdf.ppd文件旨在与Redhost端口监视器一起与Ghostscript一起用作“打印到PDF”打印机。

现在对我来说,您正在使用哪个PPD文件并不明显,但是..... ghostpdf.ppd文件和sparcprinter ppd文件都具有:

*LanguageLevel: "3"

这告诉PostScript驱动程序可以使用语言级别3,而Sparc Ghostscript不支持该语言级别3。您可以尝试将其更改为:

*LanguageLevel: "2"

看看是否有区别(您必须从Windows卸载打印机,然后使用修改后的PPD文件重新安装它们。)

如果它不起作用,我唯一想到的另一件事就是使用Windows系统上安装的Ghostscript,并在发送前对Windows生成的PostScript文件进行预处理。您可以使用Ghostscript 9.26中的ps2write设备来获取3级文件,并生成2级文件。它可能更大一些,但应该可以使用。

要在Windows上执行此操作,应使用类似以下内容的

gswin64c -sDEVICE=ps2write -sOutputFile=out.ps <input.ps>

文件“ out.ps”应为2级PostScript文件。我不能保证输出可以在Sparc上使用旧版本的Ghostscript,但是您有机会!