2009-03-14 9 views
7

मैं स्थानांतरित या नामित होने पर DOCX फ़ाइलों को इंडेंटिफाइड करने का एक तरीका ढूंढ रहा हूं। कारण स्पष्ट है, मैं ओपन एक्सएमएल एसडीके के साथ खेल रहा हूं, एक हाइपरलिंक चेकर का निर्माण कर रहा हूं।DOCX (ओपन एक्सएमएल वर्डप्रोसेसिंग डॉक्यूमेंट) में अद्वितीय आईडी के लिए सर्वश्रेष्ठ स्थान

सही काम करता है, कम से कम यह किसी दस्तावेज़ में हाइपरलिंक जोड़ या अपडेट कर सकता है।

समस्या है, हालांकि, अगर मैं बाहरी फ़ाइल का नाम बदलता हूं (source.docx + target.docx targetB.docx पर) लिंक टूटा हुआ है। मुझे टूटी हुई लिंक मिल सकती हैं (बस यह जांचकर कि लिंक की गई फाइल उसके स्थान पर है या नहीं)।

लेकिन मुझे और चाहिए। मैं इस खोए गए लिंक को पुनर्प्राप्त करने में सक्षम होना चाहता हूं, निर्देशिका में सभी दस्तावेज़ों (डॉक्क्स) में खोज करके और स्कैनिंग अगर वे "लक्ष्य" हैं। सबसे सरल तरीका दस्तावेज़ गुणों में कहीं भी संग्रहीत एक GUID होना चाहिए, जो दस्तावेज़ का नाम बदलकर संपादित या संपादित किया जाएगा (चेकसम लागू नहीं है)।

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

तो वहाँ कुछ बुनियादी सवाल कर रहे हैं:

  • वहाँ एक "सबसे अच्छा अभ्यास" एक ओपन XML दस्तावेज में इस "कस्टम जानकारी" स्टोर करने के लिए है
  • करता है एक wordprocessingdocument (DOCX) पहले से ही कुछ अद्वितीय पहचानकर्ता वर्ड
  • द्वारा बनाया है
  • कहाँ मानचित्रण (हाइपरलिंक लक्ष्य का GUID)
की बचत होगी

मुझे आशा है कि सवाल स्पष्ट है, नहीं तो मैं स्पष्ट करने की कोशिश, बस टिप्पणी करता है, तो सवाल है ..

धन्यवाद, क्रिस

उत्तर

0

एक्रोबेट/पीडीएफ कुछ इसी तरह की है। Bates numbering देखें जो एक unqiue संख्या डालकर दस्तावेज़ों की पहचान करने के लिए प्रयोग किया जाता है।

आपको आमतौर पर इसे मेटाडेटा सेक्शन में रखना चाहिए, यदि कोई हो। या, docx फ़ाइल में एक कस्टम भाग जोड़ें जो मैपिंग रखता है (बेशक, spec की सीमाओं के भीतर शेष)। (मैं डॉक्स प्रारूप से बहुत परिचित नहीं हूं, इसलिए आप इसे समझ लेंगे।)

1

जैसा कि यह पांच साल पहले था, मुझे आशा है कि आपको एक जवाब मिलेगा। अगर किसी और में दिलचस्पी है, तो सबसे अच्छा शर्त ज़िप संग्रह (\ docProps \ custom.xml) में एक नई कस्टम प्रॉपर्टी बनाना होगा और उसमें अपना मेटाडेटा स्टोर करना होगा। सबसे आसान तरीका वर्ड यूआई में एक उत्पन्न करने के लिए देखने के लिए वे कैसे काम करते हो जाएगा, लेकिन आप DOCX संग्रह के अंदर एक custom.xml कि तरह दिखता है के साथ खत्म हो जाएगा:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"> 
    <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="test"> 
    <vt:lpwstr>chris</vt:lpwstr> 
    </property> 
</Properties> 

कैसे इन काम सभी दस्तावेज है ECMA 376 में, मानक प्रारूप फ़ाइल प्रारूप।

जहां तक ​​मुझे पता है, शब्द किसी भी GUID को किसी फ़ाइल को विशिष्ट रूप से पहचानने के लिए संग्रहीत नहीं करता है।

संबंधित मुद्दे