我正在使用codeplex doddlereport项目来报告我的linq查询。这很简单也很成功。但对我来说只有一个问题。当我报告excel,html或csv文件土耳其字符似乎没问题。但是,当我尝试将我的查询导出到pdf与doddlereport.itextsharp土耳其字符隐藏。隐藏的字符是(“İ,ı,Ş,ş,Ğ,ğ,Ö,ö,ç,Ç,ü,Ü”)。任何人使用doddlereport并导出到pdf与土耳其字符帮助我如何成功?
或者我如何更改pdf文件的doddlereport字体系列?可以为我解决。
答案 0 :(得分:0)
您需要更改https://doddlereport.codeplex.com/SourceControl/latest#src/DoddleReport.iTextSharp/PdfReportWriter.cs文件的ConvertStyleToFont
方法以支持Identity_H编码(Unicode编码)。 More info here
using DoddleReport;
using iTextSharp.text;
using iTextSharp.text.pdf;
using Font = iTextSharp.text.Font;
namespace Test
{
public class PdfReportWriter // …
{
public static Font ConvertStyleToFont(ReportStyle reportStyle, string fontFamily)
{
var style = Font.NORMAL;
if (reportStyle.Underline)
{
style = Font.UNDERLINE;
}
else if (reportStyle.Bold || reportStyle.Italic)
{
if (reportStyle.Bold && reportStyle.Italic)
{
style = Font.BOLDITALIC;
}
else if (reportStyle.Bold)
{
style = Font.BOLD;
}
else
{
style = Font.ITALIC;
}
}
// todo: to use this method you need to register your fonts at the beginning of the report
// FontFactory.Register(@"c:\windows\fonts\myfont.ttf");
return FontFactory.GetFont(
fontFamily, BaseFont.IDENTITY_H, BaseFont.EMBEDDED,
reportStyle.FontSize, style,
new BaseColor(reportStyle.ForeColor.R, reportStyle.ForeColor.G, reportStyle.ForeColor.B));
}
}
}