मुझे ओपनएक्सएमएल एपीआई या वर्ड/वीएसटीओ एपीआई में कोई भाग्य नहीं मिला है, एक बुकमार्क की दृश्यता बनाने या संशोधित करने का एक तरीका ढूंढ रहा है। वर्ड में मैन्युअल रूप से बुकमार्क जोड़ने पर भी बुकमार्क को छुपाने के लिए चेक करने के लिए कोई बॉक्स नहीं है। हालांकि बुकमार्क संवाद में एक चेकबॉक्स है जो आपको छिपे हुए बुकमार्क दिखाने देता है। तो XML में छिपे हुए बुकमार्क कैसे प्रदर्शित होते हैं, और क्या आप उन्हें Open XML SDK का उपयोग करके बना सकते हैं? या वे एक विरासत की चीज हैं जिसे एमएस अब नहीं बनाना चाहता है?
2 जवाब
ठीक है तो यह मेरे विचार से आसान है...आप बुकमार्क नाम के ठीक पहले अंडरस्कोर लगा दें। ध्यान दें कि यह केवल प्रोग्रामेटिक रूप से किया जा सकता है, न कि वर्ड में मैन्युअल रूप से बुकमार्क जोड़ते समय।
Iiiiiiiiiदिलचस्प ....
अपडेट: एक और चीज जो मुझे मिली--इससे पहले कि आप किसी बुकमार्क ऑब्जेक्ट, आपको उसका शोहिडन प्रॉपर्टी को ट्रू में दिखाएं।
पीएस - एसओ, यदि आपके पास अपने वर्तनी शब्दकोश पर कोई नियंत्रण है, तो आप "प्रोग्रामेटिक रूप से" जोड़ सकते हैं। जब तक मैं इसे गलत नहीं लिख रहा हूं। :)
मैंने शब्द फ़ाइल में सामान्य बुकमार्क बनाए और उन्हें व्यावहारिक रूप से छिपे हुए बुकमार्क में परिवर्तित कर दिया। जैसा कि ऊपर कहा गया है, छिपे हुए बुकमार्क केवल व्यावहारिक रूप से बनाए जा सकते हैं और उनका नाम "_" से पहले होता है। बुकमार्क सूची को पुनरावृत्त करते समय सुनिश्चित करें कि Bookmarks.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();
}
संबंधित सवाल
नए सवाल
ms-word
Microsoft के "वर्ड" संपादक से संबंधित प्रोग्रामिंग प्रश्नों के लिए। संपादक के सामान्य उपयोग पर सवाल स्टैक ओवरफ्लो के लिए ऑफ-टॉपिक हैं; उनकी जगह सुपर यूजर से पूछा जाना चाहिए।