我遇到了一个我正在开发的Winforms应用程序的小问题。我有一些全局热键,可以在文本框中插入一些ASCII字符。然后使用iTextSharp将这些字符写入PDF文件。这一直工作得很好,除了一个字符:方形符号(#127)。在Windows应用程序中,角色看起来很好,但是一旦我将它写入PDF,它就会显示为一个子弹点,并且在任何角色之后(而不是出现在它之前)出现。我无法弄清楚为什么会发生这种情况。我所有其他的ASCII字符都写入PDF没有问题。有什么建议么?使用Winforms将ASCII字符127写入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);
}
在这里被写入的数据的代码到PDF使用iTextSharp:
//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();
任何帮助赞赏!
ASCII 127是[控制字符](http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters) - 特别是[Delete](http://en.wikipedia.org/wiki/Delete_character)。你确定你应该写吗? – raveturned
@raveturned不,我不知道它是正确的,我在这里找到了(试图插入一个正方形):http://yorktown.cbe.wwu.edu/sandvig/shared/ASCIICodes.aspx其他的工作完美无缺,所以我认为这也是。你知道正方形的代码吗? –
我不认为有一个正方形的ASCII字符。在我的浏览器中,该列表中的127显示为空白 - 也许你的显示一个正方形,因为渲染它的字体试图处理不支持的字符?如果你需要渲染一个正方形,也许你可以使用两个方括号'[]'(代码91和93)。 – raveturned