我想在Ubuntu 13.04机器上打印code :: blocks 12.11中的一些代码。所有其他打印似乎都很好,但输出到打印机和文件(postscipt)有奇怪的错位颜色。文本似乎都在那里但是不同的彩色文本被移动/缩放/覆盖使其无法使用(遗憾的是我没有包含图像的声誉)所以我在picpaste上传了一个。
任何想法 - 我不知道这是CB,ubuntu还是..?
谢谢
答案 0 :(得分:0)
哇。该文件中有一个很多的废话。一遍又一遍地重新编码相同的字体。 0 0 translate
。 1.00000000 1.00000000 scale
。我不确定是否要责怪wxWindows PostScript渲染器或code :: blocks,但这是一些错误的 postscript代码。
我做了一个解决方法,但它不是一个修复。如果任何一个责任方正在阅读本文,请不要这样做,并认为它是固定的。它坏了。
也就是说,在%%BeginProlog
之后插入此代码会产生更好的效果。似乎文本的放置使用了错误的空格字符大小,因此缩小所有字体使其看起来没问题。
/shrinkfont {
dup dup findfont dup length dict begin {
1 index /FID ne {
1 index /FontMatrix ne {
def
}{
.0008 exch .0008 exch
dup length array copy
scale def
} ifelse
} { pop pop } ifelse
} forall
currentdict end definefont pop pop
} def
/Courier shrinkfont
/Courier-Bold shrinkfont
/Courier-Oblique shrinkfont
打包为AWK脚本:
#shrinkfont.awk
!/%%BeginProlog/{print}
/%%BeginProlog/{
print "%%BeginProlog"
print " % modification by shrinkfont.awk"
print " /shrinkfont {"
print " dup dup findfont dup length dict begin"
print " {"
print " 1 index /FID ne {"
print " 1 index /FontMatrix ne {"
print " def"
print " }{"
print " .0008 exch .0008 exch"
print " dup length array copy"
print " scale def"
print " } ifelse"
print " } { pop pop } ifelse"
print " } forall"
print " currentdict end definefont pop pop"
print " } def"
print " /Courier shrinkfont"
print " /Courier-Bold shrinkfont"
print " /Courier-Oblique shrinkfont"
print " % end modification"
}
调用:
awk -f shrinkfonts.awk postscripttest.txt > postscripttest.ps