2008-08-12 20 views
20

हम अपने विंडोज़ एप्लिकेशन (vb.net या C#) के लिए WYSIWYG संपादक नियंत्रण की तलाश में हैं ताकि उपयोगकर्ता HTML ईमेल डिज़ाइन कर सकें (डॉट नेट फ्रेमवर्क में SMTP ऑब्जेक्ट्स का उपयोग करने के लिए) भेजने से पहले।विंडोज़ फॉर्म में एचटीएमएल ईमेल संपादक

वर्तमान में सभी उपलब्ध संपादकों हम पा सकते हैं निम्न समस्याओं में से एक है:

एक) वे mshtml.dll या जो के रूप में हमें एचटीएमएल कोड और के रूप में अविश्वसनीय होने के लिए साबित वेब ब्राउज़र नियंत्रण पर निर्भर संपादक विंडोज़ 2000 (IE6)

ख) वे वेब आधारित हैं नहीं एक खिड़कियों प्रपत्र नियंत्रण

ग) वे दस्तावेज़ के शीर्ष में शैलियों जगह के तहत तालमेल न बिठा पाएं (नीचे नोट देखें)।

दुर्भाग्य से इस HTML email article शैलियों के साथ काम करने के लिए HTML ईमेल बनाने का एकमात्र निश्चित तरीका है इनलाइन का उपयोग करना जो अब कई संपादकों में असमर्थित प्रतीत होता है।

क्या किसी के पास इसका कोई अनुभव है या समाधान का सुझाव दे सकता है?

उत्तर

2

मुझे विंडोज़ फॉर्म प्रोजेक्ट के लिए एक WYSIWYG संपादक की भी आवश्यकता है जिस पर मैं काम कर रहा था। मैंने उन वस्तुओं के बारे में लिखा जो मुझे here मिला। आखिरकार, मैंने कोडप्रोजेक्ट पर मिली कुछ चीज़ों का उपयोग करके समाप्त किया: A Windows Forms based text editor with HTML output। यह उपरोक्त (ए) का उल्लंघन करता है जिसमें यह वेबब्रोसर नियंत्रण का उपयोग करता है। हालांकि, मुझे ऐसा कुछ भी अच्छा नहीं मिला जो ऐसा नहीं करता है (यदि आप किसी भी तरह से WebBrowser का उपयोग नहीं करते हैं, तो आपको मूल रूप से अपने स्वयं के HTML पार्सर और रेंडरर को सही करने के लिए "क्या-आप- "WYSIWYG का हिस्सा" देखें। इस नियंत्रण के बारे में अच्छी बात यह है कि स्रोत आसानी से अनुकूलन योग्य है, इसलिए आप ले जा सकते हैं और फ़ॉर्मेटिंग विकल्पों को जोड़ सकते हैं क्योंकि आपको आवश्यकता है (और यदि आप सभी शैलियों को इनलाइन करना चाहते हैं, तो आप इसे भी कर सकते हैं)।

3

मैं this one का उपयोग कर रहा हूं, जो वेबब्रोसर से थोड़ा कम हो जाता है, लेकिन फिर भी एमएसएचटीएम का उपयोग करता है, जो कुछ बदसूरत HTML थूकता है। मेरे उद्देश्यों के लिए, जब भी टैब बदलते हैं, तो अपडेट करने के लिए मैं एक बफर क्लास के साथ WYSIWYG और HTML संपादन मोड (ICSharp.TextEditor का उपयोग करके) के साथ एक बहु-टैबड संपादक कर रहा हूं। उस बफर क्लास के हिस्से के रूप में, मैं वास्तव में run the HTML through HTML Tidy और वैध एक्सएचटीएमएल प्राप्त करने के लिए कुछ स्क्रब-एन-प्रतिस्थापन बिट्स का उपयोग करता हूं।

मैं केवल इसे एक समाधान के रूप में पेश करता हूं क्योंकि मैं भी एमएसएचटीएम से किसी भी तरह से नहीं मिला था और अंत में आगे बढ़ने के लिए ऊपर दिए गए समाधान के साथ आगे बढ़ गया।

0

निखिल द्वारा स्रोत कोड एक सभ्य समाधान प्रदान करता है। मैंने कभी-कभी इस छोटे से घटक को डाउनलोड किया, मुझे लगता है कि यह एमएसएचटीएम का उपयोग करता है। लेकिन मुझे उस पर यकीन नहीं है। स्रोत here डाउनलोड किया जा सकता है। मुझे पता है अगर यह मदद करता है :)

0

आप अगर आप एक नियंत्रण के लिए भुगतान करना चाहते हैं का उल्लेख नहीं था, लेकिन अगर आप कर रहे हैं मैं Actipro SyntaxEditor सलाह देते हैं।

1

मैं एक का एक संयोजन का इस्तेमाल किया है) और ख)

:-)

मैं mshtml और webeditor में TinyMCE के चारों ओर एक आवरण का इस्तेमाल किया है ...

http://peitor.blogspot.com/2007/12/great-windows-forms-html-control.html

स्क्रीनशॉट शामिल हैं।

मुझे लगता है कि आपको उस नियंत्रण को एक कोशिश देना चाहिए।

1

एक HTML संपादक की खोज करने के बजाय, रिचटेक्स्ट संपादक (जो बनाने के लिए बहुत आसान हो सकता है) के विकल्प पर विचार करें और फिर अंतिम पाठ को HTML दस्तावेज़ में परिवर्तित करें।

बशर्ते आपको आरटी संपादक के निर्माण और अंतिम प्रारूप के HTML प्रारूप में रूपांतरण की न्यूनतम सेट (बोल्ड/इटालिक्स इत्यादि) का उपयोग करना आवश्यक हो, तो यह कठिन नहीं होना चाहिए।

यदि दूसरी तरफ, आपको अधिक सुविधाओं (जैसे टेबल) का उपयोग करने की आवश्यकता है, तो आपको Rich Text Format का अध्ययन करने और अपनी आवश्यक सुविधाओं को लागू करने की आवश्यकता है।

अतिरिक्त संसाधन:

+0

इसी को हम कर समाप्त हो गया, aspose शब्दों का उपयोग कर परिवर्तित है। – John

2

इस HTML Edit Control for .NET नहीं है (प्रकटीकरण: मैं इसे लिखा था)।

यह किसी भी वेब ब्राउज़र पर भरोसा नहीं करता है; यह एक विंडोज़ फॉर्म नियंत्रण है; और, यह style= विशेषता से निपट सकता है।

यह नहीं है कि वास्तव में क्या आप चाहते हैं: क्योंकि यह WYSIWYM के लिए बनाया गया है, टूलबार बटन इनलाइन शैलियों संपादित करने के लिए (हालांकि इसकी प्रतिपादन इंजन इनलाइन शैलियों प्रस्तुत करना होगा) नहीं है, उपकरण पट्टी आप की तरह ही ब्लॉक स्तर तत्वों निर्दिष्ट कर सकते हैं <p> और <h1> और <ul> और <table>; लेकिन अगर आप चाहते थे, तो आप मुझे कार्यक्षमता जोड़ने के बारे में पूछ सकते हैं (जैसा कि Developing New Functionality अनुभाग में वर्णित है)।

+0

या मुझे नई कार्यक्षमता को लागू करने की आवश्यकता के बजाय, आप मेरी अंतर्निहित टूलबार प्रदर्शित नहीं कर सकते और इसके बजाय अपना स्वयं का प्रदर्शन/प्रदर्शन नहीं कर सकते: दस्तावेज़ को संपादित करने के लिए अपने नए टूलबार और मेरे मौजूदा एपीआई का उपयोग करें, और मेरे मौजूदा HTML नियंत्रण को प्रस्तुत/प्रदर्शित करने के लिए वास्तविक समय में संपादित दस्तावेज़। – ChrisW

2

आप SpiceLogic से नेट जीत एचटीएमएल संपादक नियंत्रण की कोशिश कर सकते हैं,

https://www.spicelogic.com/Products/NET-Win-HTML-Editor-Control-8

उनके घटक सभी स्थानीय छवियों को एम्बेड और वापसी नेट MailMessage वस्तु जो ईमेल क्लाइंट के विकास के लिए बहुत आसान है सकते हैं।

0

यह मेरा पहला योगदान है।

आप एक RichTextBox का उपयोग कर सकते हैं। आरटीएफ प्रारूप ईमेल बनाने के लिए पर्याप्त से अधिक है।

मैंने हाल ही में लिखा है कि कैसे हार्ड डिस्क को लोड और सहेजना है, RichTextBox की सामग्री।

कॉपी और पेस्ट की अनुमति देता है। इसका उपयोग करना आसान है और कुछ बटनों के साथ आप अपना खुद का आदेश बना सकते हैं।

With RichTextBox1 
    .SelStart = 0 
    .SelLength = Len (. Text) 
    .SelColor = vbRed 
End With 

लोड करने और सहेजने के लिए उदाहरण।

http://danielcatala.wordpress.com/2014/01/30/como-cargar-y-guardar-archivos-richtext-con-wpf/

Private Sub btnCarga(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click 

    Dim archivoCarga As New StreamReader("prueba.rtf") 
    With RichTextBox1 
     .Selection.Select(.Document.ContentStart, RichTextBox1.Document.ContentEnd) 
     .Selection.Load(archivoCarga.BaseStream, System.Windows.DataFormats.Rtf) 
    End With 
End Sub 

Private Sub btnGuarda(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click 

    Dim archivoSalida As New StreamWriter("prueba.rtf") 
    Dim bs As Stream = archivoSalida.BaseStream 

    With RichTextBox1 
     .Selection.Select(RichTextBox1.Document.ContentStart,  RichTextBox1.Document.ContentEnd) 
     .Selection.Save(bs, System.Windows.DataFormats.Rtf) 
    End With 
End Sub 
संबंधित मुद्दे