2009-11-30 27 views
6

के बिना पीडीएफ में कनवर्ट करें मेरे पास एक डब्लूएसजीआई एप्लीकेशन है जो चालान उत्पन्न करता है और उन्हें पीडीएफ के रूप में स्टोर करता है।ओडीटी/डीओसी (एक्स) उत्पन्न करें और ओओ.ओ/एमएस

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

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

जो अभी भी बड़ी समस्या को खोलता है, इसलिए: ओडीटी (या डीओसी, या डीओसीएक्स) को पीडीएफ में परिवर्तित करना। एक सर्वर पर लिनक्स चल रहा है। जीयूआई पुस्तकालयों के बिना। और इस प्रकार, ओओ.ओ. या एमएस कार्यालय के बिना।

इस सब पर संभव है या मैं बेहतर मेरे कोड में स्टाइल रखते हुए?

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

संपादित करें: असल में, मुझे एक ऐसी लाइब्रेरी चाहिए जो ओडीएफ फाइलों से ओडीटी फाइलें उत्पन्न कर सके जो टेम्पलेट्स और लाइब्रेरी के रूप में कार्य कर रही है जो परिणाम को पीडीएफ में परिवर्तित कर सकती है (जो शायद क्रूक्स है)।

उत्तर

2

मुझे नहीं पता कि स्वचालित ओडीटी -> पीडीएफ रूपांतरण के बारे में कैसे जाना है, लेकिन एक आसान मार्ग हो सकता है कि आपके चालान HTML के रूप में उत्पन्न करें और उन्हें http://www.xhtml2pdf.com/ का उपयोग करके पीडीएफ में परिवर्तित करें। मैंने पुस्तकालय की कोशिश नहीं की है, लेकिन यह निश्चित रूप से आशाजनक प्रतीत होता है।

+0

मैं इस दृष्टिकोण के साथ समस्या लगा होगा कि पाद/हेडर अभी भी सीधे नियंत्रित किया जा करने की आवश्यकता होगी - मैं हर पृष्ठ पर एक ही स्थान पर पाद लेख रखना है। मुझे पता है कि सीएसएस में बहुत सारे प्रिंट विकल्प हैं, लेकिन मुझे यकीन नहीं है कि यह ऐसा कर सकता है (मुझे गलत साबित करें)। –

+1

ऐसा लगता है कि एक्सएचटीएमएल 2 पीडीएफ/पीसा कुछ सीएसएस एक्सटेंशन के माध्यम से हेडर और पाद लेख का समर्थन करता है। Http://www.xhtml2pdf.com/doc/pisa-en.html पर एक नज़र डालें - सेक्शन 7.4 में एक दस्तावेज़ में प्रत्येक पृष्ठ पर एक पाद लेख बनाने के तरीके पर एक उदाहरण है। –

+0

ऐसा लगता है कि चाल चल रही है। महान! मुझे इसके साथ थोड़ा सा झुकाव करना होगा, लेकिन मुझे लगता है कि यह कोड से बाहर स्टाइल रखने के लिए एक आदर्श समाधान है। यह अभी भी एक ओडीएफ/डीओसी (एक्स) टेम्पलेट को एक्सएचटीएमएल/सीएसएस + के रूप में पुनर्निर्माण की अनावश्यकता छोड़ देता है, लेकिन यह केवल मामूली चिंता है। –

1

आप QQextDocument, QTextCursor और QTextDocumentWriter का उपयोग PyQt4 में कर सकते हैं। एक साधारण उदाहरण दिखाने के लिए एक odt फ़ाइल पर लिखने के लिए कैसे:

>>>from pyqt4 import QtGui 
# Create a document object 
>>>doc = QtGui.QTextDocument() 
# Create a cursor pointing to the beginning of the document 
>>>cursor = QtGui.QTextCursor(doc) 
# Insert some text 
>>>cursor.insertText('Hello world') 
# Create a writer to save the document 
>>>writer = QtGui.QTextDocumentWriter() 
>>>writer.supportedDocumentFormats() 
[PyQt4.QtCore.QByteArray(b'HTML'), PyQt4.QtCore.QByteArray(b'ODF'), PyQt4.QtCore.QByteArray(b'plaintext')] 
>>>odf_format = writer.supportedDocumentFormats()[1] 
>>>writer.setFormat(odf_format) 
>>>writer.setFileName('hello_world.odt') 
>>>writer.write(doc) # Return True if successful 
True 

तो यकीन नहीं इस मामले में odt और ODF के बीच का अंतर। मैंने फ़ाइल प्रकार की जांच की और यह 'application/vnd.oasis.opendocument.text' कहा। तो मुझे लगता है कि यह odt है। आप QPrinter का उपयोग करके एक पीडीएफ फ़ाइल पर प्रिंट कर सकते हैं।

में और जानकारी यहां: http://qt-project.org/doc/qt-4.8/

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