我尝试将手工构建的PostScript代码插入到pscript5.dll生成的更大文档中。
我使用了从http://paulbourke.net/dataformats/postscript/获得的方法(由于一些奇怪的原因,我以前的代码使用相同的转换矩阵打印4位字符(0.f),停止工作)。
因此,示例代码是:
100 200 translate
26 34 scale
26 34 8 [26 0 0 -34 0 34]
{<
ffffffffffffffffffffffffffffffffffffffffffffffffffff
ff000000000000000000000000000000000000ffffffffffffff
ff00efefefefefefefefefefefefefefefef0000ffffffffffff
ff00efefefefefefefefefefefefefefefef00ce00ffffffffff
ff00efefefefefefefefefefefefefefefef00cece00ffffffff
ff00efefefefefefefefefefefefefefefef00cecece00ffffff
ff00efefefefefefefefefefefefefefefef00cececece00ffff
ff00efefefefefefefefefefefefefefefef00000000000000ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efef000000ef000000ef000000ef0000ef0000efefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efef000000ef00000000ef00000000ef000000efefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efef0000ef00000000000000ef000000ef0000efefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff00efefefefefefefefefefefefefefefefefefefefefef00ff
ff000000000000000000000000000000000000000000000000ff
ffffffffffffffffffffffffffffffffffffffffffffffffffff
>}
image
showpage接着,在HP LaserJet 1320上将源图像(png)转换为1位(从而以'00‘或’FF‘的形式打印每个像素),我偶然发现了一个奇怪的问题:在图像大小达到128x128到300x450之间时,打印机打印白色矩形而不是预期的图像。测试文件的总大小为2..9 MB。
Ghostscript-9.07解释器正确地显示了更大的插入映像,但是它似乎与HP的嵌入式解释器的实现不同--它仍然与我前面提到的代码工作得很好,软件解释器的放任自流是事实。
有什么可能的方法来解决白方,除了蛮力打印机确定最大。“图像”方法可打印数据大小?
Upd: 300x300已确认可打印,但随机的500x500图像是不可打印的:(在280+字符上断线)没有帮助。
发布于 2013-08-23 06:43:18
对于非常大的图像,您将开始遇到各种实现限制。常用的限制是字符串、数组和字典中的65535个元素。如果您的图像数据大于64k,则需要将其分割成64k块,并分别送至image (为此目的,image采用过程参数,而不仅仅是字符串数据源)。
如果您只是将数据嵌入其中一次使用,则可以使用标准成语将数据读取到缓冲区中。
/buf 100 string
26 34 8 [26 0 0 -34 0 34]
{ currentfile buf readhexstring }
image
%hex data starts hereimage可以被认为是一个循环运算符,它将不断调用提供的过程以获取更多数据。这个过程甚至不需要返回整行,只需要返回少量的字符串。
https://stackoverflow.com/questions/18376481
复制相似问题