2010-10-21 32 views
33

के लिए पीडीएफ जनरेशन लाइब्रेरी मुझे पता है कि इससे पहले पूछा गया है, लेकिन मैं अभी भी अनिश्चित हूं कि पीडीएफ पीढ़ी के ढांचे का उपयोग मेरे वर्तमान प्रोजेक्ट के लिए किया जा सकता है।जावा

मेरे आवश्यकताओं

  • ऑन-द-मक्खी पीडीएफ दस्तावेजों (मुख्य रूप से आदेश रूपों, चालान)
  • जावा की पीढ़ी आधारित
  • आसान लेआउट के लिए
  • होना चाहिए खुला स्रोत
  • आसान लेआउट बदलने के लिए

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

मैं वाकिफ हूँ, कि अपाचे एफओपी एक समाधान यहाँ हो सकता है, लेकिन फिर मैं XSLT के साथ काम करने थकाऊ खोजने के लिए और मैंने पढ़ा है कि एफओपी धीमी गति से हो सकता है जब वह कई दस्तावेजों के विशाल throuput की बात आती है?

मैंने जैस्पर रीपॉर्ट्स भी माना, लेकिन मेरी समझ से यह एकल दस्तावेजों जैसे कि चालानों के बजाय टैब्यूलर डेटासेट वाली रिपोर्ट के लिए अधिक उपयुक्त है जिसके लिए बहुत सारे लेआउट प्रारूपण की आवश्यकता होती है?

इस पर कोई विचार?

+1

@ पांग एट अल .: मैं वास्तव में आपको पसंद करता हूं: DI ऑफ-ऑफ नियमों को जानते हैं, लेकिन फिर भी: यह सबसे ज्यादा लोकप्रिय सवाल है, सबसे ऊपर और सबसे ज्यादा विचारों के साथ, इसलिए मुझे लगता है कि इस तरह के एसओ पर उपयोगकर्ताओं के लिए प्रश्न _is_ उपयोगी। आप ऐसे प्रश्न बंद क्यों करते हैं मेरे दिमाग से पूरी तरह से बाहर है। –

+0

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

उत्तर

18

जैस्पर रीपॉर्ट्स को आज़माएं। .jrxml फ़ाइलों को बनाने के लिए iReport का उपयोग करें। JapserReports जटिल लेआउट संभाल सकते हैं। विभिन्न प्रश्नों के आधार पर रिपोर्ट के उन हिस्सों के लिए मुख्य रिपोर्ट में एम्बेडेड सब्रेपोर्ट का उपयोग करने पर एक नजर डालें।

बस @ एड्रियन स्मिथ के समाधान की तरह यह दृष्टिकोण डेटा सोर्सिंग से रिपोर्ट लेआउट संपादन को अलग करेगा।

+0

+1 यह एक अच्छा उत्पाद भी दिखता है! –

+0

धन्यवाद जेनेक, मुझे लगता है कि मैं जैस्पर –

+8

का उपयोग कर प्रोटोटाइप करूंगा, अगर भविष्य में कोई भी इस पुराने धागे में ठोकर खा रहा है: [जैस्पर सॉफ्ट स्टूडियो] (http://community.jaspersoft.com/project/jaspersoft-studio) का उपयोग करें iReport के बजाय। –

9

मैंने एक अच्छा समाधान लागू किया है जहां मेरा सॉफ़्टवेयर एक प्रारूप-स्वतंत्र "शुद्ध" एक्सएमएल फ़ाइल बनाता है, तो मैं अपने बॉस को एक्सएसडी देता हूं और वह इसे Altova StyleVision में डालता है जहां वह डेटा के आधार पर WYSIWYG डिज़ाइन रिपोर्ट कर सकता है एक्सएसडी वह सॉफ्टवेयर एक एक्सएसएलटी पैदा करता है। तो मेरी कार्यक्रम:

  • उत्पादन प्रारूप स्वतंत्र "शुद्ध" एक्सएमएल
  • XSLT के साथ बदलें, उत्पादन, जिनमें से एक्सएमएल-एफओ
  • उपयोग Apache FOP पीडीएफ
  • में XML-एफओ कन्वर्ट करने के लिए है

यह वास्तव में एक अच्छा समाधान है, इसका मतलब है कि जब भी मेरा बॉस रिपोर्ट में रंग बदलना चाहता है, तो मैं अब (कोडर के रूप में) अपना कोड बदलना चाहता हूं, मेरा काम बस "शुद्ध" एक्सएमएल ।

अद्यतन: मुझे यह भी इंगित करना चाहिए कि मैं अपने बॉस को टोर्टोइज़ एसवीएन के साथ हमारे एसवीएन रिपोजिटरी तक पहुंच प्रदान करता हूं जो कि उपयोग करने के लिए पर्याप्त रूप से आसान है कि वह बिना किसी त्रुटि के इसका उपयोग कर सकता है। तो वह एक्सएसएलटी फ़ाइलों को सीधे एसवीएन में देख सकता है और मेरे काम से मुझे बाधित किए बिना बिल्ड/तैनाती चला सकता है। जाहिर है कि वर्कफ़्लो केवल उन लोगों के साथ काम करता है जो पर्याप्त रूप से सटीक हैं कि वे गलतियां नहीं करते हैं, लेकिन यह उस मामले में हमारे लिए अच्छा काम करता है।

1

मैं थोड़ी देर के लिए JODConverter का उपयोग कर रहा हूं और मुझे वाकई यह पसंद है।

हम क्या करते हैं JODReports का उपयोग गतिशील OpenOffice.org दस्तावेज़ (जो आंतरिक रूप से फ्रीमार्कर का उपयोग करता है) उत्पन्न करने के लिए करता है। फिर हम इन दस्तावेज़ों को जेओडी कनवर्टर का उपयोग करके पीडीएफ दस्तावेजों में परिवर्तित करते हैं।

यह बहुत सारे काम की तरह लगता है, लेकिन यह वास्तव में नहीं है।

1

एक संभावना यह

  • पोस्टस्क्रिप्ट प्रारूप में अपने दस्तावेज़ बनाने के लिए और फिर
  • Ghostscript (ps2pdf) का उपयोग कर
2

Docmosis आप वर्ड या OpenOffice में खाका बनाने के लिए अनुमति देता है पीडीएफ को परिवर्तित है लेखक - सबसे अच्छी तरह से चिंताओं को अलग करना और लेआउट सबसे परिचित उपकरणों में है।

2

मेरे अनुभव के आधार पर मैं पीडीएफ रिपोर्ट बनाने के लिए Java PDF Libraries निम्नलिखित पर विचार करने के लिए आप सुझाव है,

  1. DynamicReports
  2. अपाचे पीडीएफ बॉक्स
  3. iText पीडीएफ
  4. पीडीएफ जोकर

आपकी आवश्यकता के लिए, मुझे लगता है कि DynamicReports सही विकल्प होगा। मैं अपने सभी पीडीएफ रिपोर्टिंग आवश्यकताओं के लिए पिछले 3 वर्षों से गतिशील रिपोर्ट का उपयोग कर रहा हूं। बहुत कम मात्रा में कोड के साथ, आप आसानी से वास्तव में गतिशील पीडीएफ बना सकते हैं। डायनेमिक्रेपोर्ट्स जैस्पर रिपोर्ट के आसपास एक रैपर है। इसलिए, यह आंतरिक रूप से जैस्पर रिपोर्ट का उपयोग करता है।