2012-01-24 10 views
6
में पीसा की पीडीएफ पीढ़ी द्वारा नहीं प्रदान की गई

मैं HTML से एक pdf फ़ाइल पीसा का उपयोग कर उत्पन्न:सीएसएस Django

def fetch_resources(uri, rel): 
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, "")) 
    return path 

def write_pdf(template_src, context_dict, filename): 
    template = get_template(template_src) 
    context = Context(context_dict) 
    html = template.render(context) 
    result = open(filename, 'wb') 
    pdf = pisa.pisaDocument(StringIO.StringIO(
     html.encode("UTF-8")), result, link_callback=fetch_resources) 
    result.close() 

मेरे एचटीएमएल बाह्य CSS लिए एक लिंक है और ठीक से प्रदान की गई है, लेकिन सीएसएस द्वारा नहीं किया जाता पीसा (उदाहरण के लिए फ़ॉन्ट आकार, टेबल सेल चौड़ाई, पाठ-संरेखण ...)।

<!DOCTYPE html> 
<html lang="fr"> 
<head> 
    <link rel="stylesheet" href="/site_media/style/style.css" /> 
</head> 

<body> 
.... 

क्या मुझे कुछ याद आया?

धन्यवाद

+0

आपको अपना खुद का [लिंक लोडर] लागू करना पड़ सकता है (https://github.com/chrisglass/xhtml2pdf/blob/master/test/linkloading.py) ..? –

उत्तर

6

आप this 'Pisa-and-Reportlab-pitfalls' की कोशिश कर सकते मुझे लगता है कि मैं अभी भी टेम्पलेट के भीतर अपने सभी सीएसएस ले के शीर्ष पर इस

def fetch_resources(uri, rel): 

जोड़ने के लिए किया था। यह भी सुनिश्चित करें कि आप xhtml2pdf का उपयोग कर रहे हैं और पुराने ho.pisa नहीं।

+0

मैंने ho.pisa के बजाय xhtml2pdf.pis आयात करने की कोशिश की और मैंने def fetch_resources (uri, rel) जोड़ा: लेकिन सीएसएस अभी भी पीडीएफ में प्रस्तुत नहीं किया गया है ... – jul

+0

टेम्पलेट में मेरे सीएसएस के साथ यह काम करता है। धन्यवाद। – jul