2016-08-17 68 views
0

如何使用iTextSharp繪製複選框(帶X)。 我不希望它成爲圖像。更多類似符號 我想這一點,但沒有奏效:使用itextsharp繪製複選框

RadioCheckField fCell = new RadioCheckField(writer, new Rectangle(20,20), "NoDeletion", "Yes"); 
fCell.CheckType = RadioCheckField.TYPE_CROSS; 
PdfFormField footerCheck = null; 
footerCheck = fCell.CheckField; 
writer.AddAnnotation(footerCheck); 

感謝,

+1

您使用的代碼與繪製複選框無關。這是關於繪製交互式複選框。你希望複選框是交互式的嗎?或者你只是想畫一個複選框的符號?請參閱[此問題]的額外答案(http://stackoverflow.com/a/37991842/1622493)。你有一個字體,你想顯示的複選框字符? –

回答

1

我假設你不需要交互複選框。您只想使用複選框字符。你需要的第一件事就是擁有這樣一個角色的字體。當我在Windows上工作時,我可以訪問名爲WINGDING.TTF的文件。這是一個包含各種符號,以及其他一些複選框的字體程序:

enter image description here

我創建在屏幕上顯示的PDF拍這樣的:

public static final String DEST = "results/fonts/checkbox_character.pdf"; 
public static final String FONT = "c:/windows/fonts/WINGDING.TTF"; 
public static final String TEXT = "o x \u00fd \u00fe"; 

public void createPdf(String dest) throws IOException, DocumentException { 
    Document document = new Document(); 
    PdfWriter.getInstance(document, new FileOutputStream(dest)); 
    document.open(); 
    BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
    Font f = new Font(bf, 12); 
    Paragraph p = new Paragraph(TEXT, f); 
    document.add(p); 
    document.close(); 
} 

正如你所看到的,空的複選框對應於字母o,有一個選中的複選框有三種變體。

0

謝謝你,但我找到了解決辦法。這裏是:

var checkBox = new Phrase(); 
checkBox.Add(new Chunk(" ☒ ", new Font(BaseFont.CreateFont(PrintCommonConstants.UnicodeFontNormal, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED), 18))); 
+0

將代碼複選框字符原樣放入代碼中是個不錯的主意。這可能導致各種編碼問題。最好使用Unicode符號。查看我的答案以獲取更多信息。 –