.net टकर आरटीएफ पाठ को साफ करना




फिटकरी से पानी साफ करने की विधि (4)

मैं कुछ आरटीएफ इनपुट लेना चाहता हूं और इसे सभी आरटीएफ स्वरूपण को हटाकर \ ul \ b \ i को इसे छोटे प्रारूप की जानकारी के साथ शब्द में चिपकाने के लिए निकालना चाहता हूं।

शब्द में पेस्ट करने के लिए इस्तेमाल किया जाने वाला आदेश कुछ ऐसा होगा: oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat (0) (क्लिपबोर्ड में पहले से ही कुछ RTF पाठ के साथ)

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\colortbl ;\red255\green255\blue140;}
\viewkind4\uc1\pard\highlight1\lang3084\f0\fs18 The company is a global leader in responsible tourism and was \ul the first major hotel chain in North America\ulnone  to embrace environmental stewardship within its daily operations\highlight0\par

क्या आप पर कोई विचार है कि मैं आरटीएफ को कुछ नियमित अभिव्यक्ति या कुछ चीज़ों के साथ सुरक्षित कैसे साफ़ कर सकता हूं? मैं प्रसंस्करण करने के लिए वीबी। नेट का उपयोग कर रहा हूं, लेकिन किसी भी नेट भाषा का नमूना होगा।


इसे रेगेक्स करें, यह बिल्कुल बिल्कुल सही ढंग से पर्स नहीं करता (उदाहरण के लिए टेबल) लेकिन ज्यादातर मामलों में नौकरी करता है

string unformatted = Regex.Replace(rtfString, @"\{\*?\\[^{}]+}|[{}]|\\\n?[A-Za-z]+\n?(?:-?\d+)?[ ]?", "");

जादू =)


मैं छिपे हुए रिच टेक्स्टबॉक्स का इस्तेमाल करता हूं, आरटीएफ सदस्य सेट करता हूं, फिर पाठ सदस्य को आरटीएफ को एक अच्छी तरह से समर्थित तरीके से सुरक्षित करने के लिए पुनः प्राप्त करें। तो मैं मैन्युअल रूप से बाद में वांछित स्वरूपण इंजेक्षन का उपयोग करेंगे


मैं निम्नलिखित की तरह कुछ करता हूं:

Dim unformatedtext As String

someRTFtext = Replace(someRTFtext, "\ul", "[ul]")
someRTFtext = Replace(someRTFtext, "\b", "[b]")
someRTFtext = Replace(someRTFtext, "\i", "[i]")

Dim RTFConvert As RichTextBox = New RichTextBox
RTFConvert.Rtf = someRTFtext
unformatedtext = RTFConvert.Text

unformatedtext = Replace(unformatedtext, "[ul]", "\ul")
unformatedtext = Replace(unformatedtext, "[b]", "\b")
unformatedtext = Replace(unformatedtext, "[i]", "\i")

Clipboard.SetText(unformatedtext)

oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0)

आप नियमित अभिव्यक्तियों के साथ टैग को बाहर निकाल सकते हैं। बस यह सुनिश्चित करें कि आपके अभिव्यक्ति वास्तव में पाठ वाले टैग फ़िल्टर नहीं करेंगे। यदि पाठ में "\ b" पाठ के शरीर में था, तो यह आरटीएफ स्ट्रीम में \ b के रूप में दिखाई देगा। दूसरे शब्दों में, आप "\ b" से मेल खाते हैं लेकिन "\ b" नहीं।

आप संभवतः एक छोटी कटौती कर सकते हैं और शीर्ष आरटीएफ टैग्स को फ़िल्टर कर सकते हैं। इनपुट में "\ viewkind4" की पहली घटना देखें फिर पहले स्पेस वर्ण को आगे पढ़ें। आप टेक्स्ट की शुरुआत से और उस स्पेस वर्ण को शामिल करके सभी वर्णों को निकाल देंगे। वह आरटीएफ शीर्ष लेख जानकारी (फोंट, रंग, इत्यादि) काट देगा।