我遇到了一個我正在開發的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