C#将阿拉伯语字符串从用户控件导出为pdf是在反转字符

C#将阿拉伯语字符串从用户控件导出为pdf是在反转字符,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一个用户控件,其中包含从cs文件动态设置的I标签。Report.xaml是: 在Report.cs中,我做了以下角色: 内部字符串companyName { 获取{return CompanyNameLb.Content.ToString();} 设置{Dispatcher.Invoke(新操作(()=>{CompanyNameLb.Content=value;} } 在我的主窗口中,我执行了以下操作: 报告=新报告(); report.companyName=“نوالوى”; Me

我有一个用户控件,其中包含从cs文件动态设置的I标签。Report.xaml是:


在Report.cs中,我做了以下角色:

内部字符串companyName
{
获取{return CompanyNameLb.Content.ToString();}
设置{Dispatcher.Invoke(新操作(()=>{CompanyNameLb.Content=value;}
}
在我的主窗口中,我执行了以下操作:

报告=新报告();
report.companyName=“نوالوى”;
MemoryStream lMemoryStream=新的MemoryStream();
Package Package=Package.Open(lMemoryStream,FileMode.Create);
XpsDocument doc=新XpsDocument(包);
XpsDocumentWriter=XpsDocument.CreateXpsDocumentWriter(doc);
写作(报告);
doc.Close();
package.Close();
var pdfXpsDoc=PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream);
PdfSharp.Xps.xpscoverter.Convert(pdfXpsDoc,路径,1);
但结果如下:


我认为PDFsharp还不支持RTL语言。唯一可能的选择是改名。是否有其他方法可以将xaml转换为pdf?购买商业转换库或报表引擎。您可以使用ReportViewer控件,即使在Winforms主机中,
打印为pdf
。pdf不是文档格式,而是这是一个包含Postscript打印机命令的文件。生成PDF文件并非易事。商业产品将支持阿拉伯语或日语,因为他们会为此付费,但OSS开发人员会在自己的时间内付费。除非有人自愿创建并支持此代码,否则这是最流行的PDF之一NET和Java中的库,但是,他们厌倦了人们在没有“谢谢”的情况下在商业应用程序中使用他们的OSS产品,因此他们转向了双模式——AGPL(即严格非商业)或商业许可证。iText在Java和C#中都有。只要使用适当的字体,示例就可以工作。