मुझे एक ही समस्या थी। दस्तावेज़ सिर्फ एक फ्रंट पेज और एक विशाल टेबल था। पीडीएफ प्रतिपादन समय मेरी सामग्री तालिका के आकार के साथ तेजी से बढ़ रहा था।
मैं बाहर की जाँच करने के लिए समस्या हो सकती है जो चीजों की एक सूची बना
मैं अपनी पीडीएफ प्रतिपादन समारोह पर सरल समय (क्योंकि यह HTML प्रतिपादन, यह StringIO को गुजर, या HTTP प्रतिक्रिया बनाने हो सकता है), और ध्यान दिया कि pisa.pisaDocument कॉल को वापस करने के लिए 60 सेकंड लग गए। मैंने चीजों की एक चेकलिस्ट की जो समस्या हो सकती है, और उन पर काम किया। चेकलिस्ट में छवियां, सीएसएस, मार्कअप जटिलता, और फ्रेम्स शामिल थे।
छवियों ने प्रतिपादन समय को मुश्किल से प्रभावित किया (मेरे पास केवल एक पृष्ठ था, इसलिए वाईएमएमवी)। फ्रेम्स भी नहीं था।
मार्कअप जटिलता मेरे टेम्पलेट की मुख्य समस्या थी। जाहिर है, पीसा बहुत ही धीरे-धीरे
तालिका को प्रस्तुत करने में बहुत अधिक समय लग रहा था, लेकिन मैंने देखा कि यदि मैं तालिका को छोटी तालिकाओं में विभाजित करता हूं, तो प्रतिपादन समय तेजी से बढ़ता नहीं है, और सबकुछ प्रस्तुत करने में लगने वाला समय आधे में कट गया था। मैं अपने Django टेम्पलेट में नीचे दिए गए कोड का प्रयोग किया:
{% if forloop.counter|divisibleby:20 %}</table><table>{% endif %}
संपादित करें: इस सुधार में तालिका हेडर दोहरा साथ अच्छी तरह से काम नहीं करता है, इसलिए यदि आप repeat="1"
कर रहे हैं आप को पता है कि उनकी संख्या कितनी पंक्तियाँ प्रत्येक में फिट करने के लिए है पृष्ठ।
इसके अलावा, मैं अपने सीएसएस में एक चयनकर्ता के इस राक्षस था: प्रतिपादन थोड़ा तेज
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video{
...
}
* {...}
करने के लिए इसे बदल कर। यह काउंटर-अंतर्ज्ञानी था क्योंकि जब आप उपरोक्त राक्षस का उपयोग कर रहे हों तो ब्राउज़र *
चयनकर्ता का उपयोग करते समय ब्राउज़र को तेज़ी से प्रस्तुत नहीं करेगा।
इसके अलावा, किसी कारण से, दो टैग में <style>
टैग को एक टैग में विलय करने से प्रतिपादन समय भी कम हो गया।
यह मदद नहीं कर सकता है लेकिन क्या आपने wkhtmltopdf को देखा है? – Matt
यदि कोई अन्य समाधान संभव नहीं है तो शायद मैं इसे देख लूंगा: मैंने पीजा को Django के साथ इसके एकीकरण के कारण चुना है ... – Don
FWIW मैं कुछ दस्तावेज़ बनाते हैं जो तालिका आधारित हैं लेकिन केवल सामग्री के एक पृष्ठ के बारे में जो लोड करते हैं तत्काल लेकिन रिपोर्ट जो मैं करता हूं उसके करीब 1300 पंक्तियां होती हैं और 50 पृष्ठों का विस्तार लगभग 30sec लगता है। आप किस फोर्क का उपयोग कर रहे हैं? मैं यह देखने के लिए [ChrisGlass/Xhtml2pdf] (https://github.com/chrisglass/xhtml2pdf/tree/xhtml2pdf-refactor) देख सकता हूं कि यह गैर-बनाए रखा [मूल संस्करण] (https://github.com/ होल्टविक/xhtml2pdf) –