2013-06-13 5 views
7

मैंने VariableReplace में docx4j 2.8.1 से उदाहरण संख्या 2 का पालन किया और यह सब कुछ वैरिएबल मार्कर $ {} को निकालना है।docx4j वैरिएबल को प्रतिस्थापित नहीं करता

चरणों मैंने किया:

  • खोला वर्ड 2013 पाठ के रूप में $ {चर} टाइप किया केवल
  • कहीं
  • मेरी जावा प्रोग्राम में इसे पढ़ा और .put के साथ मेरी HashMap निर्माण करने के लिए यह सहेजा गया ("परिवर्तनीय", "परीक्षा");
  • अन्य कोड की प्रतिलिपि बनाई गई है और उपरोक्त उदाहरण से चिपकाया गया है।
  • दस्तावेज़ सहेजा

मैं 'टेस्ट' पूरी तरह से उम्मीद थी, और पाने के उत्पादन दस्तावेज़ में मार्कर के बिना सिर्फ 'चर'।

+0

प्रदान किया गया लिंक 404'ed –

उत्तर

19

कोई संदेह नहीं है कि व्याकरण या वर्तनी झंडे के साथ शब्द आपके "परिवर्तनीय" को विभाजित कर रहा है।

इसे ठीक ऊपर VariablePrepare

साथ आप WordprocessingMLPackage का दृष्टांत के बाद में इस लाइन रखो:

VariablePrepare.prepare(wordMLPackage); 

तो फिर तुम चर बदलने के लिए अपने मैपिंग का उपयोग कर सकते हैं।

+0

यह सही उत्तर है। मुझे एक ही समस्या थी क्योंकि मार्टिन और मैंने इस तरह की एक साधारण चीज़ के लिए एक घंटे से अधिक समय बिताया :( – Math

+0

यह एक जीवन बचतकर्ता था! – SimonV

+0

हाय जेसनप्ल्यूटक्स्ट क्यों मैं चर तैयार करने के द्वारा सामग्री नियंत्रण के अंदर रन (आर) जोड़ने में सक्षम नहीं हूं? क्या यह कक्षा का उपयोग करना संभव है। यदि हां, तो ऐसा कैसे करें, यदि नहीं, तो ऐसा करने का आपका विचार क्या होगा। – santhanam

1

मुझे एहसास है कि यह एक पुरानी पोस्ट है, लेकिन दूसरों के लिए जो इस पर ठोकर खाती हैं, एक और कारण यह है कि आप यह परिणाम प्राप्त कर सकते हैं यदि आपके हैश मैप में गलत "कुंजी" है। तो मेरे मामले में, मैं की तरह

.put("<variable/>","TEST"); 

कुंजी के रूप में मेरे पुराने XML स्वरूप का उपयोग किया गया था जब मैं का उपयोग कर किया जाना चाहिए था:

.put("variable","TEST"); 

स्वयं दस्तावेज़

${variable} 
तरह टैग का उपयोग किया गया था

वेरिएबल रीप्लेस कोड $ {} प्रारूपण को हटा देगा चाहे कोई मिलान मिले या नहीं। इसलिए यदि यह कोई मिलान नहीं ढूंढ रहा है, तो कुंजी किसी कारण से दस्तावेज़ में किसी से मेल नहीं खाती है, और यह शायद वेरिएबलपेरेयर से सख्ती से संबंधित न हो। लेकिन यह मेरे लिए एक बहुत उपयोगी पोस्ट था क्योंकि VariablePrepare, VariableReplace समाधान अब मेरे उद्देश्यों के लिए काम कर रहा है।

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

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