2011-03-30 6 views
6

मुझे ओपनएक्सएमएल एपीआई या वर्ड/वीएसटीओ एपीआई में कोई भाग्य नहीं मिला है, जो कि बुकमार्क की दृश्यता बनाने या संशोधित करने का एक तरीका ढूंढ रहा है। वर्ड में मैन्युअल रूप से बुकमार्क भी जोड़ना, बुकमार्क छिपाने के लिए चेक करने के लिए कोई बॉक्स नहीं है। यद्यपि वहां बुकमार्क संवाद में एक चेकबॉक्स है जो आपको छिपा बुकमार्क दिखाता है। तो एक्सएमएल में छिपे हुए बुकमार्क कैसे दिखाए जाते हैं, और क्या आप उन्हें ओपन एक्सएमएल एसडीके का उपयोग कर बना सकते हैं? या क्या वे एक विरासत की बात है कि एमएस अब हमें बनाना नहीं चाहता है?शब्द/ओपनएक्सएमएल - मैं एक छिपी हुई बुकमार्क कैसे बना सकता हूं?

+3

आपका नाम ("System.Cats.Lol") एसओ पर मेरा पसंदीदा है। –

उत्तर

12

ठीक है तो यह सोचा आसान है कि मैंने सोचा था ... आप बस अंडरस्कोर के साथ बुकमार्क नाम से पहले हैं। ध्यान दें कि यह केवल प्रोग्राम में किया जा सकता है, न कि Word में मैन्युअल रूप से बुकमार्क जोड़ते समय।

Iiiiiiiiinteresting ....

अद्यतन: एक और बात मैंने पाया - इससे पहले कि आप पुनरावृति या एक Bookmarks वस्तु में पहुँच छुपे बुकमार्क कर सकते हैं, तो आप सही करने के लिए अपने ShowHidden संपत्ति सेट करना होगा।

पीएस - एसओ, अगर आपके वर्तनी शब्दकोश पर आपका कोई नियंत्रण है, तो आप "प्रोग्रामेटिक" जोड़ सकते हैं। जब तक मैं इसे गलत वर्तनी नहीं कर रहा हूं। :)

+0

+1। समाधान खोजने के लिए अच्छा खोज और धन्यवाद! –

+0

एनपी, अपडेट को भी देखें, एक और दिलचस्प क्विर्क ... –

+0

वास्तव में दिलचस्प है। आप आगे बढ़ सकते हैं और इसके आगे खोखले चेकमार्क के साथ अपना जवाब स्वीकार कर सकते हैं। –

0

मैंने शब्द फ़ाइल में सामान्य बुकमार्क बनाए और उन्हें व्यावहारिक रूप से छिपे हुए बुकमार्क में परिवर्तित करने के बजाय। जैसा ऊपर बताया गया है कि छिपे हुए बुकमार्क केवल व्यावहारिक रूप से बनाए जा सकते हैं और उनका नाम "_" से पहले हो सकता है। बुकमार्क सूची को फिर से चालू करते समय सुनिश्चित करें कि बुकमार्क .ShowHidden सत्य पर सेट है, अन्यथा छिपे हुए बुकमार्क सूची में दिखाई नहीं देंगे। नीचे वह कोड है जिसे मैं सभी दृश्यमान बुकमार्क छुपाने के लिए उपयोग करता था। अंत में मैं यह सुनिश्चित करने के लिए पूर्ववत रिकॉर्ड भी साफ़ करता हूं कि उपयोगकर्ता मेरे द्वारा किए गए परिवर्तनों को पूर्ववत नहीं कर सकता है। यदि आप चाहें तो कस्टम एक्शन रिकॉर्ड अंतिम क्रिया को हटा सकते हैं।

public static void hideAllBookmark(Document doc) 
{ 
    String newName = null; 
    Range newRange = null; 
    bool backup = doc.Bookmarks.ShowHidden; 
    doc.Bookmarks.ShowHidden = false; 

    for (int i = doc.Bookmarks.Count; i > 0; i--) 
    { 
     if (!doc.Bookmarks[i].Name.Substring(0, 1).Equals("_", StringComparison.OrdinalIgnoreCase)) 
     { 
      newName= "_" + doc.Bookmarks[i].Name; 
      newRange = doc.Bookmarks[i].Range; 
      doc.Bookmarks[i].Delete(); 
      doc.Bookmarks.Add(newName, newRange); 
     } 
    } 
    doc.Bookmarks.ShowHidden = backup; 
    doc.UndoClear(); 
} 
संबंधित मुद्दे