2012-05-24 28 views
1

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

任何幫助讚賞!

+2

ASCII 127是[控制字符](http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters) - 特別是[Delete](http://en.wikipedia.org/wiki/Delete_character)。你確定你應該寫嗎? – raveturned

+0

@raveturned不,我不知道它是正確的,我在這裏找到了(試圖插入一個正方形):http://yorktown.cbe.wwu.edu/sandvig/shared/ASCIICodes.aspx其他的工作完美無缺,所以我認爲這也是。你知道正方形的代碼嗎? –

+2

我不認爲有一個正方形的ASCII字符。在我的瀏覽器中,該列表中的127顯示爲空白 - 也許你的顯示一個正方形,因爲渲染它的字體試圖處理不支持的字符?如果你需要渲染一個正方形,也許你可以使用兩個方括號'[]'(代碼91和93)。 – raveturned

回答

3

ASCII 127是control character - 具體地,Delete。控制字符不打算是可打印的。

我不認爲有一個正方形的ASCII chatacter。在我的瀏覽器,127從問題列表中顯示爲空白:

enter image description here

如果你看到一個正方形它可能是你的瀏覽器的字體試圖呈現一個不支持的字符的結果。

如果您需要渲染一個正方形,您可以使用兩個方括號[](代碼91 & 93)作爲近似值。

+0

謝謝!這是有道理:)羞愧廣場不存在,雖然... –

相關問題