با سلام خدمت همه
من یک GridView دارم که فونت ها همه فارسی هستند. چند تا نمونه کد خروجی جدول به pdf رو دارم ولی هیچ کدوم واسه فونت فارسی کار نمیکنه
چجوری باید این مشکل رو رفع کنم.
این یه نمونه کدم هست:

using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

private void ExportGridToPDF()
{
PdfPTable pdfPTable = new PdfPTable(this.dgvCheckListForExport.HeaderRow.Cel ls.Count);
foreach(TableCell headrerCell in dgvCheckListForExport.HeaderRow.Cells)
{
iTextSharp.text.Font font = new iTextSharp.text.Font();
font.Color = new BaseColor(this.dgvCheckListForExport.HeaderStyle.F oreColor);
PdfPCell pdfCell = new PdfPCell(new Phrase(headrerCell.Text, font));
pdfCell.BackgroundColor = new BaseColor(this.dgvCheckListForExport.HeaderStyle.B ackColor);
pdfPTable.AddCell(pdfCell);
}
foreach (GridViewRow gridViewRow in dgvCheckListForExport.Rows)
{
foreach(TableCell tableCell in gridViewRow.Cells)
{
iTextSharp.text.Font font = new iTextSharp.text.Font();
font.Color = new BaseColor(this.dgvCheckListForExport.RowStyle.Fore Color);
PdfPCell pdfCell = new PdfPCell(new Phrase(tableCell.Text, font));
pdfCell.BackgroundColor = new BaseColor(this.dgvCheckListForExport.RowStyle.Back Color);
pdfPTable.AddCell(pdfCell);
}
}
Document pdfDocument = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
PdfWriter.GetInstance(pdfDocument, Response.OutputStream);
pdfDocument.Open();
pdfDocument.Add(pdfPTable);
pdfDocument.Close();
Response.ContentType = "application/pdf";
Response.AppendHeader("content-disposition", "attachment;filename=CheckList"+this.lbCode.Text.T rim()+".pdf");
Response.Write(pdfDocument);
Response.Flush();
Response.End();
}


که خروجیش وقتی pdf میشه هیچی رو نمایش نمیده. تصویر زیر
CheckList1.jpg


اینم نمونه کد دوم:


Response.ClearContent();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=MyPdfFile.pdf");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
StringWriter strWrite = new StringWriter();
HtmlTextWriter htmWrite = new HtmlTextWriter(strWrite);
HtmlForm frm = new HtmlForm();
dgvCheckListForExport.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(dgvCheckListForExport);
frm.RenderControl(htmWrite);
StringReader sr = new StringReader(strWrite.ToString());
Document pdfDoc = new Document(PageSize.A4, 8f, 8f, 8f, 2f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.Flush();
Response.End();

اینم نمونه تصویر خروجی pdf کد بالا
CheckList2.jpg

خیلی جستجو کردم که چجوری این document که حالت pdf ساخته میشه از راست به چپ باشه و utf8 هم باشه. ولی چیزی دستگیرم نشد.
خیلی سر این موضوع درگیر شدم و وقتم رو گرفته.
ممنون میشم اگر دوستان تجربه ای در این خصوص دارند راهنمایی و کمک کنند
با سپاس