दिलचस्प पोस्ट
विकास के लिए क्रोम एक्सटेंशन आईडी प्राप्त करना * इंटरनेट * आईपी कैसे प्राप्त करें? लॉगिंग के लिए HTTP सर्वलेट प्रतिक्रिया आउटपुट स्ट्रीम सामग्री को पढ़ने और प्रतिलिपि कैसे करें maven-archetype-webapp eclipse समस्या एक स्ट्रिंग के रूप में एक चर का नाम प्राप्त करना डिफ़ॉल्ट मैवेन कंपाइलर सेटिंग * आर्गोस और ** क्वार्ज? .NET Framework 4.0 में x64 पर शुरू करने के लिए WPF धीमा विटक फ़ाइल करने के लिए गीटक के अंदर Winmerge का उपयोग करें जावा में पूर्णांक में दोहरे कास्ट करें विंडोज 7 पर GetWindowRight बहुत छोटी है JSON सांकेतिक शब्दों में बदलना MySQL परिणाम Jquery का उपयोग कर एक अभिभावक div का आईडी ढूँढना JQuery – $ परिभाषित नहीं है जावास्क्रिप्ट में एक तारीख को बढ़ाना

अरबी "यूनिकोड" सामग्री एचटीएमएल या एक्सएमएल को पीडीएफ से एक्सपोर्ट करें

मैं अपने asp.net MVC3 अनुप्रयोग में कई खोजों के बाद रिपोर्ट बनाने की कोशिश कर रहा हूं, मुझे कई ब्लॉग पोस्ट मिले हैं ITextSharp के बारे में मेरे Html/Razor को Pdf कनवर्ट करने के लिए चर्चा हुई है, ITextSharp Pdf को प्राप्त करने के लिए रेज़र व्यू को पार्स करने की कोशिश कर रहा हूं

  public void Render(ViewContext viewContext, TextWriter writer) { var doc = new Document(); // associate output with response stream var pdfWriter = PdfWriter.GetInstance(doc, viewContext.HttpContext.Response.OutputStream); pdfWriter.CloseStream = false; viewContext.HttpContext.Response.ContentType = "application/pdf"; viewContext.HttpContext.Response.ContentEncoding = System.Text.Encoding.UTF8; // generate view into string var sb = new System.Text.StringBuilder(); TextWriter tw = new System.IO.StringWriter(sb); _result.View.Render(viewContext, tw); var resultCache = sb.ToString(); //Path to our font string arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF"); //Register the font with iTextSharp iTextSharp.text.FontFactory.Register(arialuniTff); //Create a new stylesheet iTextSharp.text.html.simpleparser.StyleSheet ST = new iTextSharp.text.html.simpleparser.StyleSheet(); //Set the default body font to our registered font's internal name ST.LoadTagStyle(HtmlTags.BODY, HtmlTags.FACE, "Arial Unicode MS"); //Set the default encoding to support Unicode characters ST.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, BaseFont.IDENTITY_H); //Parse our HTML using the stylesheet created above List<IElement> list = HTMLWorker.ParseToList(new StringReader(resultCache), ST); doc.Open(); //Loop through each element, don't bother wrapping in P tags foreach (var element in list) { doc.Add(element); } doc.Close(); pdfWriter.Close(); } 

उस कोड का नतीजा है यहां छवि विवरण दर्ज करें

जो सही नहीं है, अरबी शब्द "محمد" होना चाहिए। इसलिए मुझे जरूरत है कि दस्तावेज़ दिशा को दाएं से बाएं रहने दें

संपादित करें @ आरमुलस के लिए धन्यवाद

मैंने अपने कोड में कुछ बदलाव किए हैं, मैं अपने एचटीएमएल पर PdfPCell करने के लिए तत्व जोड़कर PdfPCell को PdfPCell कुछ विशेषताओं को सेट कर दिया है।

  //Loop through each element, don't bother wrapping in P tags foreach (var element in list) { //Create a cell and add text to it //PdfPCell text = new PdfPCell(new Phrase(element.ToString(), f)); //Ensure that wrapping is on, otherwise Right to Left text will not display //text.NoWrap = false; //Add the cell to the table //table.AddCell(text); if (element is iTextSharp.text.pdf.PdfPTable) { table = (iTextSharp.text.pdf.PdfPTable)element; table.DefaultCell.NoWrap = false; table.RunDirection = PdfWriter.RUN_DIRECTION_RTL; foreach (PdfPRow row in table.Rows) { foreach (PdfPCell cell in row.GetCells()) { cell.RunDirection = PdfWriter.RUN_DIRECTION_RTL; cell.NoWrap = false; } } } } 

यह मेरे लिए अब अच्छी तरह से धन्यवाद काम कर रहा है 🙂

वेब के समाधान से एकत्रित समाधान "अरबी "यूनिकोड" सामग्री एचटीएमएल या एक्सएमएल को पीडीएफ से एक्सपोर्ट करें"

आपको कंटेनर तत्वों का उपयोग करना होगा जो रनडराइरेक्शन का समर्थन करते हैं, जैसे कॉलम टेक्स्ट या पीडीएफपीसीएल और उसके बाद उनके तत्व को सेट करते हैं। रिन डायरेक्शन = पीडीएफआरआर.आरएन_आईडीईआरटीएन_आरटीएल

 List<IElement> list = HTMLWorker.ParseToList(new StringReader(resultCache), ST); doc.Open(); //Use a table so that we can set the text direction PdfPTable table = new PdfPTable(1); //Ensure that wrapping is on, otherwise Right to Left text will not display table.DefaultCell.NoWrap = false; table.RunDirection = PdfWriter.RUN_DIRECTION_RTL; //Loop through each element, don't bother wrapping in P tags foreach (var element in list) { //Create a cell and add text to it PdfPCell text = new PdfPCell(new Phrase(element, font)); //Ensure that wrapping is on, otherwise Right to Left text will not display text.NoWrap = false; //Add the cell to the table table.AddCell(text); } //Add the table to the document document.Add(table); doc.Close(); pdfWriter.Close(); 

अतिरिक्त संदर्भ के लिए, इस नमूने पर एक नज़र डालें।