1

我正在开发的 Winforms 应用程序有一个小问题。我有一些全局热键可以将一些 ASCII 字符插入到文本框中。然后使用 iTextSharp 将字符写入 PDF 文件。这一直工作正常,除了一个字符:方形符号(#127)。该字符在 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 显示为空白:

在此处输入图像描述

如果您看到一个正方形,则可能是您的浏览器字体试图呈现不受支持的字符的结果。

如果您需要渲染一个正方形,您可以使用两个方括号[](代码 91 和 93)作为近似值。

于 2012-05-24T15:47:07.423 回答