C#打印从右到左 [英] c# print right to left
问题描述
我正在与一些阿拉伯的数据,我想从右侧打印至左
I am working with some arabic data and I want to print it from right to left
我想这
StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);
e.Graphics.DrawString(dataToPrint, valueFont, System.Drawing.Brushes.Black, 20, 20, format);
但使文字仍然从左边开始,这使得它的更糟糕所以现在我的不能看到所有的文本是这样的:
but that makes the text to still start from the left and it makes it worse so now I can't see all the text like this:
但是当我删除格式
,我得到这样的:
but when I remove the format
, I got this:
我需要确切地具有与第二图像而是由右至左
I need to have exactly as the second image but from right to left.
任何帮助吗?
更新1
这是我填写 dataToPrint
对象
Update 1
This is how I fill the dataToPrint
object
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,这是结果,仍然没有从右至左
Update 2
After @Reyhaneh SH
answer I change the 20 to 400 and this is the result, still not from right to left
推荐答案
无论你的codeS的是正确的,但问题是,你使用20像素的X位置。 X指定从左上角的位置。与尝试:
Both of your codes are right, but the problem is that you used 20 pixels for the X position. X specifies the location from upper-left. Try it with :
e.Graphics.DrawString(dataToPrint, valueFont,
System.Drawing.Brushes.Black, 200, 20, format);
您也可以使用其他任何数字大于20像素是正确的。
You can also use any other numbers bigger than 20 pixels that is proper.
这篇关于C#打印从右到左的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!