多德报告iTextSharp土耳其语字符

本文关键字:土耳其语 字符 iTextSharp 报告 | 更新日期: 2023-09-27 18:28:34

我正在使用codeplex doddlereport项目来报告我的linq查询。它很简单而且非常成功。但对我来说只有一个问题。当我向excel报告时,html或csv文件的土耳其字符似乎还可以。但当我试图将查询导出到隐藏了doddlerreport.itextsharp土耳其字符的pdf时。隐藏的字符是("伊,ı,Ş,ş,'',ğ,Ö,ö,ç,Ç,ü,Ü")。任何人使用doddlereport并导出到带有土耳其字符的pdf帮助我如何成功?

或者我如何更改pdf文件的doddlereport字体系列?可以为我提供解决方案。

多德报告iTextSharp土耳其语字符

您需要更改的ConvertStyleToFont方法https://doddlereport.codeplex.com/SourceControl/latest#src/DoddleReport.iTextSharp/PdfReportWriter.cs文件以支持Identity_H编码(Unicode编码)。更多信息点击这里

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));
        }
    }
}

或者你可以试试http://pdfreport.codeplex.com