1

開発中の Winforms アプリケーションで小さな問題が発生しています。ASCII 文字をテキスト ボックスに挿入するグローバル ホットキーがいくつかあります。文字は、iTextSharp を使用して PDF ファイルに書き込まれます。これは、四角い記号 (#127) という 1 つの文字を除いて、正常に機能しています。文字は Windows アプリケーションでは問題ないように見えますが、PDF に書き込むと、箇条書きとして表示され、その後に来るはずだった文字のすぐ上に表示されます (その前に表示されるのではなく)。なぜこれが起こるのか分かりません。他の ASCII 文字はすべて問題なく PDF に書き込まれます。助言がありますか?

参考までに、これは私が使用している文字コード シートです: http://yorktown.cbe.wwu.edu/sandvig/shared/ASCIICodes.aspx

文字をフォームに挿入するコードは次のとおりです。

if(focusedTextbox != null)
{
    if (inKey == 'S')
    {
        focusedTextbox.Text += Convert.ToChar(127);//Square symbol
    }
    else if (inKey == 'P')
    {
        focusedTextbox.Text += Convert.ToChar(177);//Plus-minus symbol
    }
    //Places the cursor after the newly-inserted symbol
    focusedTextbox.Select(focusedTextbox.Text.Length, 0);
}

iTextSharp を使用してデータを PDF に書き込むコードは次のとおりです。

//Measurement A
cb.BeginText();
string mesA = mainForm.txtMesA.Text.Trim();
if (mesA.Equals(""))
{
    text = "";
}
else
{
    text = mesA + " " + mainForm.txtUnit.Text;
}
cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, text, offSetStartAt, topRow, 0);
offSetStartAt += colOffset;
cb.EndText();

//Create a PDF page and add the content
PdfImportedPage page = writer.GetImportedPage(reader, 1);
cb.AddTemplate(page, 0, 0);

//Close the streams
document.Close();
fs.Close();
writer.Close();
reader.Close();

どんな助けでも大歓迎です!

4

1 に答える 1

3

ASCII 127 は制御文字、具体的にはDeleteです。制御文字は、印刷可能にするためのものではありません。

正方形の ASCII 文字はないと思います。私のブラウザでは、質問のリストの 127 が空白として表示されます。

ここに画像の説明を入力

四角が表示される場合は、ブラウザのフォントがサポートされていない文字をレンダリングしようとした結果である可能性があります。

正方形をレンダリングする必要がある場合は、代わりに 2 つの角かっこ[](コード 91 & 93) を近似値として使用できます。

于 2012-05-24T15:47:07.423 に答える