0

誰かが助けてくれることを願っています。TextRenderingHint.SingleBitPerPixel は、.net からバーコードを印刷するときにアンチエイリアシングをオフにしていないようです。

バーコードを実際にレンダリングするコードのスニペットを次に示します。

    graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;

    graphics.DrawString(
        barCodeText,
        humanReadableFont,
        Brushes.Black,
        currentXPosition,
        currentYPosition,
        StringFormat.GenericTypographic);

デバッグ中に出力を詳しく調べるために、「Microsoft Office Document Image Writer」プリンターを使用して .tiff 形式のファイルに出力しています。.tiff を拡大すると、アンチエイリアシングが黒いバーコード バーの周りの灰色の光輪としてはっきりと見えます。

同様に、実際のプリンター (HP Laser Jet エミュレーション モードの BOCA チケット プリンター) に印刷すると、バーコードがにじむ/予想より太く表示されます。

ポイントサイズが大きくても問題なくスキャンできるため、バーコードが構文的に正しいことはわかっています。また、ネイティブの「FGL」モードでは、私のものよりもさらに小さい判読可能なバーコードを印刷するため、プリンターが少なくとも私が要求しているのと同じくらい小さい判読可能なバーコードを印刷できることも知っています。

使用しているフォントはエルフリングフォント社の「Code 128AB」と「Code 128AB HR」です。

ありがとう

ヨアヒム

4

1 に答える 1

0

OK、ここで 2 つの問題が発生しました。

1) バーコード フォントの製造元は、私が印刷しようとしていたほど小さく印刷されるようにフォントを設計していませんでした。私はフォントの専門家ではないので、彼らの言葉を信じています。しかし、私が印刷していたプリンターが「デモ」モードを使用してこれよりも小さいバーコードを正確に印刷できるため、完全には確信が持てません。

2) 私が見た「光輪」効果は、実際には Windows の「画像とファックス ビューアー」が私にとって物事をきれいにしようとしていたものでした。別のソフトウェアを試したところ、バーはくっきりとはっきりしていました。

于 2009-02-25T16:31:57.120 に答える