2010-01-02 25 views
7

मैं टेम्पलेट का उपयोग करके एक शब्द दस्तावेज़ बनाना चाहता हूं, कुछ चर (फ़ील्ड) को प्रतिस्थापित करें और इसे एक नए शब्द दस्तावेज़ के रूप में सहेजें।जावा में Word दस्तावेज़ निर्माण API

मैं अपाचे पीओआई, http://poi.apache.org/ का उपयोग कर सोच रहा था, क्या यह इस उद्देश्य के लिए सबसे अच्छा है? क्या आप इससे अपना इंप्रेशन साझा कर सकते हैं?

+4

यहां देखें: http://stackoverflow.com/questions/203174/whats-a-good-java-api-for-creating-word- दस्तावेज़ – JCasso

उत्तर

8

मैंने पहले पीओआई के साथ काम किया है और यह निश्चित रूप से शब्द दस्तावेज़ उत्पन्न करने में सक्षम है। लेकिन शैतान विवरण में है।

शब्द में हजारों विशेषताएं हैं: आप # 13 से शुरुआती सूचियों को नकारात्मक इंडेंट्स के साथ किसी अन्य तालिका में शामिल तालिका के दो शामिल कोशिकाओं में डाल सकते हैं जो स्वयं बुलेट सूची का हिस्सा है ... आपको विचार मिलता है। जब पीओआई दस्तावेज कहता है कि वे प्रगति पर एक काम कर रहे हैं, जो दर्शाता है कि वर्ड के (हमारे, अनियंत्रित) विनिर्देश को पकड़ने की कोशिश करने का शायद एक शाश्वत अवस्था क्या होगी।

प्रयुक्त विशेषताओं के उचित "सामान्य" सेट वाले दस्तावेज़ पीओआई द्वारा समर्थित हैं, जिनके इंटरफेस और विधियां उचित और सुसंगत हैं लेकिन कभी-कभी कुछ काम की आवश्यकता होती है। लेकिन पास्कल के अनुसार, सुविधाओं के बहुत अधिक सेट वाले दस्तावेज़ आरटीएफ द्वारा भी समर्थित हैं। मेरे पास आरटीएफ "करने" का लगभग कोई अनुभव नहीं है लेकिन यह पीओआई के साथ काम करने से शायद थोड़ा सा आसान है।

यदि आप किसी पर्यावरण या किसी ग्राहक के लिए काम कर रहे हैं जो जोर देता है कि के बजाय आपके उत्पादित दस्तावेज़ .DOC हैं, तो पीओआई आपकी एकमात्र पसंद है, जब तक कि आप एक ऐसा कदम पेश नहीं कर सकते जहां आप थोड़ा कार्यालय का उपयोग करते हैं आरटीएफ को डीओसी में बदलने के लिए स्वचालन

अद्यतन: इस दौरान मेरे पास कुछ और विचार थे।

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

हालांकि, संभवत: ऐसी स्थिति है कि आपके प्रोग्राम Windows के तहत चलेंगे में, वहाँ एक और विकल्प है: याकूबhttp://www.land-of-kain.de/docs/jacob/

याकूब जावा के लिए एक COM अंतरफलक है; यह अनिवार्य रूप से आपको "रिमोट कंट्रोल" विंडोज प्रोग्राम जैसे वर्ड और एक्सेल के लिए अनुमति देता है। ऊपर से जुड़ा दस्तावेज़ जैकब की अपनी साइट पर नहीं बल्कि जैकब का उपयोग करने के लिए "कुकी कटर" रेसिपी वाले एक पृष्ठ पर है। प्रोजेक्ट स्वयं SourceForge पर है: http://sourceforge.net/projects/jacob-project/ लेकिन लोग दावा करते हैं, और सही है कि, दस्तावेज़ीकरण की कमी है।

जैकब को अन्य सभी समाधानों पर लाभ है जो आप "असली" शब्द से निपट रहे हैं और इसलिए सभी शब्द की क्षमताओं आपके लिए उपलब्ध हैं। यह एक विकल्प होगा यदि आपके दस्तावेज़ के विस्तृत पहलू हैं जिन्हें पीओआई या आरटीएफ प्रारूप के माध्यम से नहीं संभाला जा सकता है।

2

मुझे पीओआई में वर्ड दस्तावेज़ों की समर्थन की सटीक स्थिति की जानकारी नहीं है, लेकिन पीओआई वेबसाइट के अनुसार, काम अभी भी प्रगति पर है (यह नहीं कह सकता कि इसका क्या अर्थ है)। इसलिए, इस समय, मैं पीओआई का उपयोग नहीं करता बल्कि एक आरटीएफ दस्तावेज उत्पन्न करने की कोशिश करता हूं। इस के लिए, आप:

  • उपयोग RTFTemplate जो आरटीएफ इंजन है कि एक आरटीएफ मॉडल और डेटा के मर्ज के परिणाम के रूप आरटीएफ दस्तावेज़ उत्पन्न कर सकते हैं करने के लिए एक आरटीएफ है।
  • iText का उपयोग करें जो प्राथमिक रूप से पीडीएफ जनरेटर है लेकिन generate RTF भी हो सकता है।
  • अपना खुद का कस्टम समाधान बनाएं (लेकिन मैं ऐसा नहीं करता)।

मैं iText के लिए जाऊंगा।

3

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

वे कहते हैं कि पीओआई अभी भी विकासशील है, लेकिन मैं इसे उत्पादन वातावरण में उपयोग कर रहा हूं और यह इस समय बहुत अच्छा काम करता है।

+0

जानना अच्छा है। धन्यवाद। –

+0

मेरे पास यह समस्या है: मेरा शब्द टेम्पलेट ** में एक शीर्षलेख है जिसे संपादित करने की आवश्यकता है **। और जहां तक ​​मुझे पता है, पीओआई मुझे हेडर संपादित करने की अनुमति नहीं देता है। –

+0

@ वेलेंटीन रोचेर, आपको इस विधि के साथ कुछ समस्याएं नहीं आ रही हैं, जैसे कि यह हर समय काम नहीं कर रहा है – fatiDev

1

आपको Aspose.Words घटकों को देखना चाहिए। उन्होंने हाल ही में घटक का जावा संस्करण प्रदान करना शुरू कर दिया है। Aspose.Word for Java

इस पद स्वचालन, निर्माण और इस तरह के मशीन पर माइक्रोसॉफ्ट वर्ड का एक उदाहरण के लिए आवश्यकता के बिना मेल विलय के रूप में उन्नत सुविधाओं का समर्थन करता है:

नीचे दिए गए लिंक देखें। वास्तविक लाभ यह है कि आप वास्तविक शब्द दस्तावेज़ के संदर्भ में काम करने में सक्षम हैं और आरटीएफ आदि बनाकर समझौता नहीं कर पा रहे हैं।

जावा संस्करण वर्तमान में नेट संस्करण के रूप में पूरी तरह से प्रदर्शित नहीं है लेकिन मुख्य कोर कार्यक्षमता वहां है और वे जल्द ही फीचर समकक्ष संस्करण रखने के लिए बहुत कठिन दबाव डाल रहे हैं।

इसके अलावा, यदि आप जावा संस्करण खरीदते हैं तो आपको नए रिलीज के रूप में एक वर्ष का मुफ्त अपग्रेड/समर्थन मिलता है।

1

यदि आप डॉक्क्स दस्तावेज़ों के साथ काम कर रहे हैं, तो docx4j एक विकल्प है। पीओआई की तरह, इसका खुला स्रोत।

1

मैं बनाया है और इस का उपयोग करें: आप यहीं क्या चाहते करने के लिए http://code.google.com/p/java2word

+0

बधाई । मैं इस सप्ताह कोशिश करूँगा। –

2

मैं जानता हूँ कि इस सवाल का एक सा पुराना है, लेकिन मैं बहुत से लोगों को अभी भी खोज इंजन के साथ यह लगता है लगता है, तो मैं एक और संभावना पोस्ट:

यदि एकमात्र लक्ष्य वर्ड टेम्पलेट रखना है और इसमें कुछ मानों को प्रतिस्थापित करना है, तो आप वर्ड टेम्पलेट को एकल एक्सएमएल (डॉक्स नहीं) के रूप में सहेजने पर विचार कर सकते हैं और फिर इसे सरल जावा और बिना किसी फ्रेमवर्क के प्रोसेस कर सकते हैं। यदि आप और अधिक करना चाहते हैं (उदा। सूचियां या तालिकाओं बनाएं) तो आप पीएमआई जैसे फ्रेमवर्क लोड करने से पहले एक्सएमएल प्रारूप को समझने और अपने स्वयं के हेल्पर्स लिखने पर भी विचार कर सकते हैं। http://dev-notes.com/code.php?q=10

यह, तेजी से संस्करण है आप एक अच्छे संस्करण चाहते हैं तो आपको एक XML प्रोसेसर का उपयोग कर की कोशिश कर सकते:

यहाँ कि कैसे करना है पर एक उदाहरण है।

पीएस: उपयोगकर्ता शायद ध्यान दें कि फ़ाइल एक्सटेंशन दस्तावेज़ नहीं है लेकिन एक्सएमएल है और वे इसके लिए आपको दोषी ठहरा सकते हैं, लेकिन यह ठीक है ... बस इसे डॉक्टर के नाम पर बदलें, शब्द प्रारूप को पहचान लेगा और हर कोई फिर से खुश होगा;)

4

यह स्पष्ट रूप से बहुत देर हो चुकी है, लेकिन 2013 से शब्द दस्तावेज़ निर्माण के लिए एक बेहतर, अधिक लचीला समाधान है।

http://www.docx4java.org/trac/docx4j

मैं तुलना में मैं कभी POI के साथ किया था docx4j साथ भी बहुत कुछ भाग्य पड़ा है।

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