2012-12-19 15 views
16

मैं अपने डीजेंगो ऐप्स में Pisa/xhtml2pdf का उपयोग HTML स्रोत से पीडीएफ उत्पन्न करने के लिए करता हूं। यही कारण है:डीजेगो/पायथन: उचित भाषा के साथ पीडीएफ उत्पन्न करें

  1. मैं सभी 'मुद्रण' सामान के साथ स्वरूपित HTML फ़ाइल उत्पन्न (जैसे पेज-टूटता है, शीर्ष, पादुका, आदि)
  2. मैं पीसा
का उपयोग कर पीडीएफ में यह HTML कन्वर्ट

यह प्रक्रिया ठीक है लेकिन यह धीमी है (विशेष रूप से लंबी टेबल से निपटने पर) और मुझे पीसा सुविधाओं/सीमाओं के अनुसार HTML/CSS का उपयोग करना होगा।

सवाल यह है: क्या यह वेब अनुप्रयोग से पीडीएफ उत्पन्न करने का सही तरीका है (यानी HTML बनाएं और फिर इसे पीडीएफ में परिवर्तित करें) या एक और सीधा तरीका है, जो पीडीएफ को अधिक उपयुक्त के साथ "लिखना" है भाषा?

+0

अनुवर्ती: पिक्सेल-परिपूर्ण रिपोर्ट के लिए हमने एक समर्पित रिपोर्ट डिजाइनर (पेंटाहो) – Don

उत्तर

9

यहां WeasyPrint लेखक। पीडीएफ उत्पन्न करने के लिए एचटीएमएल/सीएसएस का उपयोग करने का बिंदु (बनाम निचले स्तर के पीडीएफ लाइब्रेरी का उपयोग कर बनाम।) स्वचालित लेआउट प्राप्त करना है। यह आपको h1 { page-break-after: avoid } जैसे उच्च स्तरीय बाधाओं को निर्दिष्ट करने देता है और लेआउट इंजन को सब कुछ की पूर्ण स्थिति निर्दिष्ट करने के बजाय इसे समझने देता है। जब आप अपने दस्तावेज़ों में बदलाव करते हैं तो पूर्व अधिक रखरखाव योग्य होता है।

rst2pdf जैसे कुछ टूल their own stylesheet syntax हैं, लेकिन यह फिर से आविष्कार करने का एक बुरा तरीका है।

लेकिन हां, स्क्रीन के लिए बने जटिल स्टाइलशीट डंपिंग से अच्छे परिणाम नहीं मिल सकते हैं। प्रिंट में दिमाग के साथ स्टाइलशीट बनाना बेहतर है, या यहां तक ​​कि सीएसएस में @media print के साथ पूरी तरह से अलग स्टाइलशीट का उपयोग करें या HTML में <link media="print"> का उपयोग करें।

4

पीसा को विभिन्न मुद्दों के साथ जाना जाता है - खासकर लंबी टेबल के साथ। सामान्य रूप से पीआईएसए का उपयोग करने से बचना चाहिए। अन्य विकल्प हैं:

  • Reportlab सीधे
  • z3c.rml (Reportlab टेम्पलेट भाषा क्लोन)
  • वाणिज्यिक विकल्प का उपयोग कर:
    • PrinceXML
    • PDFreactor

सामान्य नियम जब पीडीएफ producti की बात आती है चालू: आप जो भुगतान करते हैं वह आपको मिलता है।

पीसा या अपाचे एफओपी जैसे कन्वर्टर्स आधा बेक्ड समाधान हैं जो साधारण मामलों के लिए काम करते हैं लेकिन सामान्य रूप से चूसते हैं।

+0

धन्यवाद करने का निर्णय लिया है। लेकिन क्या आपको लगता है कि एचटीएमएल को पीडीएफ में परिवर्तित करना एक अच्छा तरीका है? – Don

+0

अजीब फॉलोअप प्रश्न ... क्या करने के लिए एक अच्छा दृष्टिकोण? इनपुट डेटा के रूप में आपके पास और क्या है? –

+0

मेरा मतलब है: मुझे अपने ऐप से डेटा निकालना है और इसे पीडीएफ में रखना है; एचटीएमएल डेटा और पीडीएफ के बीच सिर्फ एक माध्यम है। मुझे आश्चर्य है कि क्या मैं सीधे पीडीएफ लिख सकता हूं या एक अलग माध्यम का उपयोग कर सकता हूं। – Don

6

मुझे लगता है कि पीसा या http://weasyprint.org/ जैसे पुस्तकालयों के साथ एचटीएमएल से पीडीएफ उत्पन्न करना सबसे आसान दृष्टिकोण है। यह मेरे लिए बहुत अच्छा काम करता है क्योंकि यह छवियों, सीएसएस, बारकोड (पीसा पर) डालने की देखभाल करता है ... आदि

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

2

आप http://code.google.com/p/wkhtmltopdf/ और django-wkhtmltopdf के साथ HTML से पीडीएफ बनाने के लिए क्यूटी वेबकिट रेंडरिंग इंजन का भी उपयोग कर सकते हैं।

लाभ यह है कि आप HTML और CSS लिख सकते हैं जैसा कि आप आमतौर पर वेबकिट के लिए करेंगे। यदि आप मौजूदा वेब पेज को आउटपुट कर रहे हैं तो यह अच्छी तरह से काम करता है लेकिन स्क्रैच से पीडीएफ उत्पन्न करते समय कम उपयुक्त हो सकता है।

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