PDA

View Full Version : سوال: اشکال در فونت فارسی موقع انتقال داده از دیتاگریدویو به pdf



MasoudAdmin
یک شنبه 24 آذر 1398, 20:36 عصر
با سلام
من یه دیتاگریدویو دارم و اطلاعات رو به pdf منتقل می کنم ولی خروجی که میده حروف فارسی جدا از هم هستند و چپ به راست نشون میده.(تصویر پیوست):ناراحت: اینم کدی هست که واسه انتقال نوشتم.


var fontPath = Environment.CurrentDirectory + "\\font\\tahoma.ttf";
var fontBase = BaseFont.CreateFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
var font = new iTextSharp.text.Font(fontBase, 10, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK);
PdfPTable PdfTable = new PdfPTable(Dgw.Columns.Count);
PdfTable.DefaultCell.Padding = 3;
PdfTable.WidthPercentage = 100;
PdfTable.HorizontalAlignment = Element.ALIGN_LEFT;
PdfTable.DefaultCell.BorderWidth = 1;
iTextSharp.text.Font Text = new iTextSharp.text.Font(fontBase, 10, iTextSharp.text.Font.NORMAL);
//Add Header
foreach(DataGridViewColumn Col in Dgw.Columns)
{
PdfPCell PCell = new PdfPCell(new Phrase(Col.HeaderText, font));
PCell.BackgroundColor = new iTextSharp.text.Color(240, 240, 240);
PdfTable.AddCell(PCell);
}
//AddDataRow
foreach(DataGridViewRow row in Dgw.Rows)
{
foreach(DataGridViewCell cell in row.Cells)
{
PdfTable.AddCell(new Phrase(cell.Value.ToString(), font));
}
}
var savefiledialoge = new SaveFileDialog();
savefiledialoge.FileName = FileName;
savefiledialoge.DefaultExt = ".pdf";
if(savefiledialoge.ShowDialog()==DialogResult.OK)
{
using (FileStream stream = new FileStream(savefiledialoge.FileName, FileMode.Create))
{
Document pdfdoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfdoc, stream);
pdfdoc.Open();
pdfdoc.Add(PdfTable);
pdfdoc.Close();
stream.Close();
}
}

لطفا راهنمایی کنید چجوری می تونم مشکل فونت فارسی بعد از انتقال به pdf حل کنم.
151128

the king
یک شنبه 24 آذر 1398, 21:57 عصر
RunDirection رو تنظیم کنید.


var pdfTable = new PdfPTable(Dgw.Columns.Count);
pdfTable.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
pdfTable.DefaultCell.Padding = 3;

MasoudAdmin
دوشنبه 25 آذر 1398, 06:57 صبح
با سلام
بسی سپاس. حل شد:تشویق: