Glad to know iTextSharp is used in SharpDevelop Reports, because iTextSharp supports CJK(maybe I should say it supports all encodings).
I downloaded SharpDevelopReports_2.2.0.263_Source and had a test, it does not support Chinese Characters, so I reviewed the source codes, I found the following lines,
if (this.StyleDecorator.Font.Unit == GraphicsUnit.Point) {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name,
this.StyleDecorator.Font.Size,
(int)this.StyleDecorator.Font.Style);
} else {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name,
new UnitConverter(this.StyleDecorator.Font.Size,XGraphicsUnit.Pixel).Point,
(int)this.StyleDecorator.Font.Style);
}
by default, it only supports “CP1250”, it can not show Chinese Characters correctly. I changed the codes to
if (this.StyleDecorator.Font.Unit == GraphicsUnit.Point) {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name, BaseFont.IDENTITY_H,
this.StyleDecorator.Font.Size,
(int)this.StyleDecorator.Font.Style);
} else {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name,BaseFont.IDENTITY_H,
new UnitConverter(this.StyleDecorator.Font.Size,XGraphicsUnit.Pixel).Point,
(int)this.StyleDecorator.Font.Style);
}
let it uses “IDENTITY_H”, and it can show Chinese now, of course it is not a good way, and I found JasperReports also stores pdfEncoding in report files , here is an example,
<font fontName=”Arial” size=”14″ pdfFontName=”ARIAL.TTF” pdfEncoding=”Identity-H” isPdfEmbedded=”true”/>
so how about sdr? btw, how about let SharpDevelope Reports supports JasperReports format? JasperReports format is very popular and mature now.