2

Ubuntu 13.04 マシンで code::blocks 12.11 からいくつかのコードを出力したいと思います。他のすべての印刷は問題ないように見えますが、プリンターとファイル (postscipt) への出力の色が奇妙にずれています。テキストはすべてそこにあるように見えますが、異なる色のテキストが移動/拡大/縮小/上書きされて使用できなくなっているため (残念ながら、画像を含めるという評判はありません)、picpasteにアップロードしました。

任意のアイデア - これが CB なのか、ubuntu なのか、それとも .. なのかわかりません。

ありがとうございました

4

1 に答える 1

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
于 2013-09-11T20:43:24.107 に答える