क्या कोई जावा एपीआई है जो समृद्ध वर्ड दस्तावेज़ बना सकता है? [बन्द है]


111

मेरे पास एक नया ऐप है जहां मैं काम कर रहा हूं जहां मुझे एक वर्ड डॉक्यूमेंट जनरेट करना है जिसमें टेबल, ग्राफ, कंटेंट और टेक्स्ट का एक टेबल है। इसके लिए उपयोग करने के लिए एक अच्छा एपीआई क्या है? आप कितने सुनिश्चित हैं कि यह ग्राफ़, टीओसी और तालिकाओं का समर्थन करता है? इनका उपयोग करने में कुछ छिपे हुए गोच क्या हैं?

कुछ स्पष्टीकरण:

  • मैं एक पीडीएफ आउटपुट नहीं कर सकता, वे एक वर्ड डॉक्टर चाहते हैं।
  • वे MS Word 2003 (या 2007) का उपयोग कर रहे हैं, OpenOffice का नहीं
  • एप्लिकेशन * निक्स ऐप-सर्वर पर चल रहा है

यह अच्छा होगा अगर मैं एक टेम्पलेट डॉक्टर के साथ शुरू कर सकता हूं और बस टेबल, ग्राफ़ आदि के साथ कुछ स्थानों में भर सकता हूं।

संपादित करें: नीचे दिए गए कई अच्छे उत्तर, जिनमें से प्रत्येक मेरे अपने दोषों के साथ जहां तक ​​मेरी वर्तमान स्थिति है। उनसे एक "अंतिम उत्तर" चुनना मुश्किल है। मुझे लगता है कि मैं इसे खुला छोड़ दूंगा, और बेहतर समाधानों की उम्मीद है।

संपादित करें: ओपनऑफिस यूएनओ परियोजना मेरे द्वारा पूछे गए कार्यों के निकटतम प्रतीत होती है। जबकि POI निश्चित रूप से अधिक मुख्यधारा है, यह जो मैं चाहता हूं उसके लिए बहुत अपरिपक्व है।


26
यह निश्चित नहीं है कि आखिरी बार संपादित किए जाने के 30 महीने बाद यह प्रश्न कैसे बंद हो जाता है, और मूल रूप से पूछे जाने के 3 साल बाद यह बहुत उत्पादक होने वाला है। यदि मैंने शीर्षक को "मैं जावा एपीआई के साथ समृद्ध वर्ड दस्तावेज़ कैसे बनाऊं?" क्या यह ठीक होगा?
बिलजमदेव

1
मामले में कुछ एक ही उपलब्ध जावा एपीआई की पूर्ण समीक्षा की जरूरत है esupu.com/open-source-office-document-java-api-review
Supun समीरा

आप docxtemplater, https://github.com/edi9999/docxtemplater/ पर एक नज़र डाल सकते हैं, जो कि मैंने एक लाइब्रेरी बनाई है जो docx टेम्पलेट्स से docx बनाने के लिए बनाई गई है
edi9999

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

जवाबों:


56

2007 में मेरी परियोजना ने सफलतापूर्वक OpenOffice.org के यूनिवर्सल नेटवर्क ऑब्जेक्ट्स (UNO) इंटरफ़ेस का उपयोग प्रोग्राम-एमएस दस्तावेज़ (* .doc), साथ ही संबंधित PDF दस्तावेज़ों को जावा वेब एप्लिकेशन (एक स्ट्रट्स / JSP फ्रेमवर्क) से उत्पन्न करने के लिए किया।

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

हमने बुकमार्क आवेषण के साथ टेम्प्लेट MS-Word दस्तावेज़ों का उपयोग करके प्रक्रिया को सरल बनाया, जिसमें सॉफ़्टवेयर ने सामग्री डाली, हालाँकि, आप पूरी तरह से खरोंच से दस्तावेज़ बना सकते हैं। लक्ष्य के लिए सॉफ्टवेयर जनरेटेड रिपोर्ट डॉक्यूमेंट्स थे जिन्हें अंतिम वितरण और अभिलेखीय के लिए पीडीएफ में परिवर्तित करने से पहले अंतिम उपयोगकर्ताओं द्वारा साझा किया जा सकता है और आगे बढ़ाया जा सकता है।

यदि आप उपयोगकर्ताओं को MS-Office के बजाय OpenOffice का उपयोग करना चाहते हैं, तो आप वैकल्पिक रूप से OpenOffice स्वरूपों में दस्तावेज़ों का उत्पादन कर सकते हैं। हमारे मामले में उपयोगकर्ता MS-Office उपकरण का उपयोग करना चाहते हैं।

UNO OpenOffice सुइट के भीतर शामिल है। हमने बस अपने जावा ऐप को यूएनओ से संबंधित पुस्तकालयों के भीतर सुइट से जोड़ा है। एक ओपनऑफिस सॉफ्टवेयर डेवलपमेंट किट (एसडीके) उपलब्ध है जिसमें उदाहरण एप्लिकेशन और यूएनओ डेवलपर गाइड है।

मैंने जांच नहीं की है कि नवीनतम ओपनऑफिस यूएनओ एमएस-ऑफिस 2007 ओपन एक्सएमएल दस्तावेज़ प्रारूप उत्पन्न कर सकता है या नहीं।

OpenOffice UNO के बारे में महत्वपूर्ण बातें हैं:

  1. यह फ्रीवेयर है
  2. यह कई भाषाओं (जैसे Visual Basic, Java, C ++ और अन्य) का समर्थन करता है।
  3. यह प्लेटफ़ॉर्म-इंडिपेंडेंट (विंडोज, लिनक्स, यूनिक्स आदि) है।

यहाँ कुछ उपयोगी वेब साइट हैं:


1
अब तक, यह मेरे द्वारा पूछे गए टूलसेट के साथ सबसे अधिक संगत है। मैं इसे "स्वीकार" करने जा रहा हूँ। हालांकि मैं पूरी तरह से पहचानता हूं कि पीओआई अधिक मुख्यधारा है, यह अभी तक मेरी कार्यक्षमता नहीं है।
बिलजमदेव

30

मुझे लगता है कि अपाचे पीओआई काम कर सकता है। आपके उद्देश्य के उपयोग के आधार पर एक संभावित समस्या इस तथ्य के कारण हो सकती है कि एचडब्ल्यूपीएफ अभी भी प्रारंभिक विकास में है।

HWPF (केवल) जावा का उपयोग करके Microsoft Word 97 (-XP) दस्तावेजों को पढ़ने और लिखने के लिए एपीआई का सेट है।


ग्राफ और टेबल संभावनाओं का कोई ज्ञान? सामग्री की तालिकाओं के बारे में कैसे? किसी को भी वास्तविक अनुभव उन चीजों को POI में करने का है?
११:१५ बजे बिलजमदेव

1
POI के लिए दस्तावेज़ीकरण को देखते हुए, ऐसा लगता है कि यह HWPF विकास में बहुत शुरुआती है, मुख्य रूप से एक .doc से पाठ पढ़ने की अनुमति देता है, वास्तव में "जटिल" दस्तावेजों के गतिशील निर्माण के लिए नहीं।
बिलजमदेव

मेरा मानना ​​है कि यह अधिक जटिल रेखांकन / तालिकाओं आदि को संभालता है
ब्रायन एग्न्यू


9

आप इसका उपयोग कर सकते हैं: http://code.google.com/p/java2word

मैंने इस API को Java2Word नाम से लागू किया है। कोड की कुछ पंक्तियों के साथ, आप एक Microsoft Word दस्तावेज़ उत्पन्न कर सकते हैं।

उदाहरण के लिए .:

IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph...")

उपयोग करने के लिए कुछ उदाहरण हैं। मूल रूप से आपको एक जार फ़ाइल की आवश्यकता होगी। मुझे पता है कि क्या आप इसे स्थापित करने के लिए किसी भी अधिक जानकारी की जरूरत है।

* मैंने यह इसलिए लिखा क्योंकि हमें एक परियोजना में एक वास्तविक आवश्यकता थी। मेरे ब्लॉग में अधिक:

http: //leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html *

चीयर्स लियोनार्डो

संपादित करें : लिंक में परियोजना https://github.com/leonardoanalista/java2word पर स्थानांतरित की गई


1
क्या आपने वास्तविक एमएस वर्ड का उपयोग करके इसका परीक्षण किया है? मैंने ऐसी फाइलें बनाने में कामयाबी हासिल की है जो OpenOffice और LibreOffice पढ़ सकती हैं लेकिन विंडोज़ पर MSWord नहीं। (मैंने इस मुद्दे को code.google.com/p/java2word/issues/detail?id=16 पर दर्ज किया है )
स्टेन जी। स्ट्रिंडागुग

2
मैं OpenOffice का उपयोग करके उत्पन्न java2word फ़ाइलों को नहीं खोल सकता? कार्यालय 2010 के साथ ठीक काम करता है
अश्विका उमंगियागिया

क्या यह .docx फ़ाइलों के निर्माण के लिए समर्थन करता है? @
लियोनार्डो


4

Aspose.Words Java के लिए प्रयास करें, यह किसी भी OS पर चलता है जहाँ Java स्थापित है।

यदि आपको MS Word आउटपुट स्वरूप की आवश्यकता है, तो यह दस्तावेज़ को DOC, DOCX या RTF में आउटपुट करेगा। सभी को समान रूप से समर्थन दिया जाता है।

इस एपीआई का उपयोग करके आप स्क्रैच से एक दस्तावेज़ बना सकते हैं, शाब्दिक रूप से नोड्स से और उनके स्वरूपण गुण सेट कर सकते हैं। आप एक DocumentBuilder का भी उपयोग कर सकते हैं जो उच्च स्तरीय विधियाँ प्रदान करती हैं जैसे कि टेबल रो बनाने, फ़ील्ड सम्मिलित करने आदि या आप मौजूदा पूर्व निर्मित दस्तावेज़ के बीच भागों को कॉपी / जॉइन / मूव कर सकते हैं, कह सकते हैं कि आप एक कॉन्ट्रैक्ट को असेंबल करना चाहते हैं, बस पकड़ो और कॉपी करो कई दस्तावेजों के टुकड़े और Aspose.Words परिणामी दस्तावेज़ में शैलियों, सूची स्वरूपण आदि को ठीक से मर्ज करेंगे।

आप Aspose.Words का उपयोग करके एक TOC फ़ील्ड सम्मिलित करने में सक्षम होंगे, लेकिन आज के रूप में, TOC फ़ील्ड को Microsoft Word में दस्तावेज़ को खोलने पर फ़ील्ड अपडेट की आवश्यकता होगी। हालाँकि, हम 2010 की शुरुआत में TOC क्षेत्रों के लिए पूर्ण समर्थन जारी करने जा रहे हैं। जैसे कि MS Word यह करता है कि यह पूर्ण TOC का निर्माण करेगा।

मैं Aspose.Words टीम पर हूँ।


4

यह केवल एक बार संक्षेप में उल्लेख किया गया था, इसलिए मैं docx4j लाइब्रेरी को कॉल करना चाहूंगा, क्योंकि मुझे docx4j के साथ कुछ और की तुलना में अधिक सफलता मिली है। Word दस्तावेज़ों के लिए Apache POI का समर्थन बहुत अच्छा नहीं है। इसके अलावा, Aspose.Words के विपरीत, docx4j एक खुला स्रोत पुस्तकालय है।

एकमात्र दोष यह है कि आपको docx4j के साथ OLE2- आधारित (doc) प्रारूप दस्तावेज़ों के बजाय Office Open XML (docx) प्रारूप दस्तावेज़ बनाने होंगे। यह Word 2007 के लिए डिफ़ॉल्ट प्रारूप है, लेकिन Word 2003 और पहले के उपयोगकर्ताओं को संगतता पैक स्थापित करना होगा।


3

प्रयास करें Aspose.Words जावा के लिए।

जावा के लिए Aspose.Words जावा के लिए एक उन्नत (वाणिज्यिक) वर्ग पुस्तकालय है जो आपको अपने जावा अनुप्रयोगों में सीधे दस्तावेज़ प्रसंस्करण कार्यों की एक बड़ी श्रृंखला करने में सक्षम बनाता है।

Aspose.Words जावा के लिए DOC, OOXML, RTF, HTML और OpenDocument स्वरूपों का समर्थन करता है। Aspose.Words के साथ आप Microsoft Word का उपयोग किए बिना दस्तावेज़ों को उत्पन्न, संशोधित और परिवर्तित कर सकते हैं।


2

आप JACOB जैसे जावा COM पुल का उपयोग कर सकते हैं । यदि यह क्लाइंट की ओर से है, तो एक और विकल्प जावास्क्रिप्ट का उपयोग करना होगा।


धन्यवाद, लेकिन ऐसा लगता है कि यह एक विंडोज़ मशीन पर चलाने की आवश्यकता होगी, नहीं? मैंने इसे पढ़ने के बाद होस्ट मशीन ओएस को स्पष्ट किया, लेकिन जानकारी के लिए धन्यवाद।
११:३४ बजे बिलजमदेव

वेब-सर्वर मशीन पर JACOB का उपयोग करने के लिए Microsoft Word को स्वयं इस पर स्थापित करने की आवश्यकता होगी, क्योंकि COM इंटरफ़ेस के माध्यम से वर्ड दस्तावेजों को बनाने और हेरफेर करने के लिए Word एप्लिकेशन के वास्तविक उदाहरणों को लाने की आवश्यकता होती है। सामान्य तौर पर, मल्टी-यूज़र सर्वर पर वर्ड + कॉम का ऐसा उपयोग काफी समस्याग्रस्त है क्योंकि वर्ड को इस तरह के उपयोग के लिए डिज़ाइन नहीं किया गया है - उदाहरण के लिए दस्तावेज़ के कुछ हिस्सों को डुप्लिकेट करना पारंपरिक रूप से सिलेक्शन ऑब्जेक्ट और विंडोज क्लिपबोर्ड का उपयोग करके किया जाता है, जो वेब में अकल्पनीय है- सर्वर मशीन सेटिंग। मैं इस से काफी जल गया हूं (हालांकि कुछ
ट्विक

2

मैंने .NET में मेल मर्ज करने के लिए Aspose.Words का उपयोग किया है । मेरा मानना ​​है कि उनके पास जावा संस्करण भी है।


2

JODConverter नाम का एक टूल है, जो फ़ाइल फॉर्मेट कन्वर्टर्स को उजागर करने के लिए खुले कार्यालय में हुक करता है, वहाँ वेबैप (टॉमकैट में बैठता है) के संस्करण उपलब्ध हैं, जिसे आप पोस्ट करते हैं और कमांड लाइन टूल। मैं इस पर html फायरिंग कर रहा हूं और .doc और pdf में कन्वर्ट कर रहा हूं। यह काफी बड़े प्रोजेक्ट में है, अभी तक लाइव नहीं हुआ है लेकिन मुझे लगता है कि मैं इसका उपयोग करने जा रहा हूं। http://sourceforge.net/projects/jodconverter/


2

iText उपयोग करने के लिए वास्तव में आसान है।

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


1

docx4j या पोई, दोनों ASL v2 हैं

@wondersofcomputing: iText वास्तव में स्वतंत्र और खुला स्रोत है


1

थोड़ा और शोध करने के बाद, मैं iText, एक पीडीएफ और आरटीएफ-फाइल क्रिएशन एपीआई में आया। मुझे लगता है कि मैं Doc-पठनीय फ़ाइल बनाने के लिए RTF पीढ़ी का उपयोग कर सकता हूं जिसे तब Doc का उपयोग करके संपादित किया जा सकता है और पुनः सहेजा जा सकता है।

किसी को भी iText के साथ कोई अनुभव है, इस फैशन में इस्तेमाल किया?

बिल, POI और iText API एक प्रोग्रामिंग परिप्रेक्ष्य से बहुत समान हैं। मैंने अतीत में दोनों के साथ काम किया है और उन दोनों का उपयोग करना आसान है और अच्छी तरह से प्रलेखित है।

IText के साथ आप कोड में मामूली बदलाव के साथ प्रारूपों (RTF और PDF) के बीच स्विच करने में सक्षम होने का लाभ प्राप्त करते हैं। अगर मुझे ठीक से याद है कि सामग्री एक ही कॉल का उपयोग करके रखी गई है और फिर कोड की कुछ पंक्तियों का उपयोग करके पीडीएफ या आरटीएफ के रूप में सेट की गई है।

हालांकि मेरा मानना ​​है कि DOC की तुलना में RTF में फ़ॉर्मेटिंग सीमित है। मुझे नहीं पता कि आप उन उन्नत सुविधाओं को लागू करने में सक्षम होंगे जिन्हें आप (टेबल, इनलाइन चित्र) ढूंढ रहे हैं, यदि बिना किसी परेशानी के एक सभ्य राशि।

यह देखते हुए कि एचडब्ल्यूपीएफ ने आपकी आवश्यकताओं के लिए पर्याप्त कार्यक्षमता नहीं होने के बारे में क्या कहा है (मैंने केवल पीओआई के एक्सेल पक्ष से निपटा है) आपकी सबसे अच्छी शर्त उन शक्तियों को समझाने की हो सकती है जो पीडीएफ नौकरी के लिए सबसे अच्छी तकनीक है


1

मैंने अतीत में शुद्ध XML आधारित शब्द फाइलें विकसित की हैं। मैंने .NET का उपयोग किया है, लेकिन भाषा को इससे कोई फर्क नहीं पड़ना चाहिए क्योंकि यह काफी हद तक XML है। यह करना सबसे आसान काम नहीं था (एक परियोजना थी जिसे कुछ साल पहले इसकी आवश्यकता थी।) ये केवल वर्ड 2007 या इसके बाद के संस्करण में काम करते हैं - लेकिन आपको केवल Microsoft के श्वेत पत्र की आवश्यकता है जो यह वर्णन करता है कि प्रत्येक टैग क्या करता है। आप उन सभी को पूरा कर सकते हैं जो आप टैग के साथ चाहते हैं जैसे कि आप वर्ड का उपयोग कर रहे थे (बेशक शुरू में थोड़ा अधिक दर्दनाक।)


0

थोड़ा और शोध के बाद, मैं iText , एक पीडीएफ और आरटीएफ-फाइल क्रिएशन एपीआई में आया। मुझे लगता है कि मैं आरटीएफ पीढ़ी का उपयोग एक ऐसी डॉक-पठनीय फ़ाइल बनाने के लिए कर सकता हूं जिसे तब डॉक का उपयोग करके संपादित किया जा सकता है और फिर से सहेजा जा सकता है।

किसी को भी iText के साथ कोई अनुभव है, इस फैशन में इस्तेमाल किया?


मैंने RTF को निर्यात करने के लिए iText का उपयोग किया है और यह थोड़ा परतदार है: उदाहरण के लिए TOC काम नहीं करता है और यह वास्तव में उपयोग करने के लिए बहुत आसान नहीं है (डॉक्स की कमी)
AlfaTeK

0

फिर भी एक और संभावना है, क्योंकि यह एक वेब ऐप है।

मैं एक HTML पृष्ठ को MIME प्रकार के साथ "एप्लिकेशन / msword" पर सेट करने में सक्षम था, जिसके कारण ब्राउज़र को Word को स्पॉन करना पड़ता था जो html को ठीक आयात करता था, संपादन की अनुमति देता था और जैसे ही मैं एक वास्तविक वर्ड डॉक आउटपुट करता था।

टेबल्स ठीक काम करते हैं, लेकिन जिन छवियों को मैंने अभी तक काम नहीं किया है। यह HTML में केवल एक टैग के रूप में आसान हो सकता है, या मुझे बाइनरी में छवि डेटा वाले प्रतिक्रिया के एक अलग हिस्से को स्ट्रीम करना पड़ सकता है, या कुछ अन्य विधि जो मैं अभी तक नहीं आया हूं। :)


0

भले ही यह अनुरोध की तुलना में बहुत बाद में हो, लेकिन यह दूसरों की मदद कर सकता है। Docmosis टेम्प्लेट के रूप में डॉक्यूमेंट का उपयोग करते हुए doc, pdf, odt प्रारूप में दस्तावेज़ बनाने के लिए जावा एपीआई प्रदान करता है। यह प्रारूप रूपांतरण करने के लिए इंजन के रूप में OpenOffice का उपयोग करता है। दस्तावेज़ में हेरफेर और जनसंख्या डॉकमोसिस द्वारा ही की जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.