C#从右到左打印

Agnieszka推荐

我正在处理一些阿拉伯数据,我想从右到左打印

我试过了

StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);
                e.Graphics.DrawString(dataToPrint, valueFont, System.Drawing.Brushes.Black, 20, 20, format);

但这使文本仍然从左开始,并且变得更糟,所以现在我看不到所有这样的文本

在此处输入图片说明

但是,当我删除时format,我得到了:

在此处输入图片说明

我需要与第二张图片完全一样,但从右到左。

有什么帮助吗?

更新1这就是我填充dataToPrint对象的方式

 System.Drawing.Font valueFont = new System.Drawing.Font("Arial", 15, System.Drawing.FontStyle.Regular);
                string dataToPrint = "";
                dataToPrint += "رقم بطاقة التسويق = " + farmID.Text + Environment.NewLine;
                dataToPrint += "إسم صاخب المزرعة = " + farmOwner.Text + Environment.NewLine;
                dataToPrint += "رقم المزرعة = " + farmNumber.Text + Environment.NewLine;
                dataToPrint += "الموبايل = " + farmMobile.Text + Environment.NewLine;
                dataToPrint += "الإمارة = " + emaraNameArabic.Text + Environment.NewLine;
                dataToPrint += "المنطقة = " + areaNameArabic.Text + Environment.NewLine;
                dataToPrint += "الإقليم = " + regionNameArabic.Text + Environment.NewLine;
                dataToPrint += "مركز الإستلام = " + receivingCenterName.Text + Environment.NewLine;
                dataToPrint += "خلاص = " + khalas.Text + Environment.NewLine;
                dataToPrint += "فرض = " + fardh.Text + Environment.NewLine;
                dataToPrint += "لولو = " + otherLulu.Text + Environment.NewLine;
                dataToPrint += " خنيزي= " + khedrawi.Text + Environment.NewLine;
                dataToPrint += "بومعان = " + boumaan.Text + Environment.NewLine;
                dataToPrint += "برحي = " + barhi.Text + Environment.NewLine;
                dataToPrint += "جش خزمة = " + jeshKharma.Text + Environment.NewLine;
                dataToPrint += "رزيز = " + reziz.Text + Environment.NewLine;
                dataToPrint += "جبري = " + jabri.Text + Environment.NewLine;
                dataToPrint += "عنبرة المدينة = " + anbaretAlMadina.Text + Environment.NewLine;
                dataToPrint += " شيشي= " + shishi.Text + Environment.NewLine;
                dataToPrint += "دباس = " + dabbas.Text + Environment.NewLine;
                dataToPrint += "نبتة سيف = " + nabtetSaif.Text + Environment.NewLine;
                dataToPrint += "خضراوي = " + khedrawi.Text + Environment.NewLine;
                dataToPrint += "هلالي = " + hilali.Text + Environment.NewLine;
                dataToPrint += "مكتومي = " + maktoumy.Text + Environment.NewLine;
                dataToPrint += "نميشي = " + namishi.Text + Environment.NewLine;

更新2

之后@Reyhaneh SH回答我改变20到400,这是结果,仍然没有从右到左

在此处输入图片说明

雷哈内·谢里夫扎德(Reyhaneh Sharifzadeh)

您的两个代码都正确,但是问题是您在X位置使用了20个像素。X从左上方指定位置。尝试一下:

 e.Graphics.DrawString(dataToPrint, valueFont, 
        System.Drawing.Brushes.Black, 200, 20, format);

您也可以使用其他任何大于20像素的适当数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章