2012-01-24 17 views
6

tôi tạo ra một file pdf từ HTML sử dụng Pisa:CSS không được đưa ra bởi hệ pdf Pisa trong 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() 

HTML của tôi có một liên kết đến một CSS bên ngoài và được trả lại đúng, nhưng CSS không được sử dụng bởi Pisa (ví dụ: cỡ chữ, chiều rộng ô bảng, căn chỉnh văn bản ...).

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

<body> 
.... 

Tôi có bỏ lỡ điều gì đó không?

Cảm ơn

+0

Bạn có thể cần triển khai [trình tải liên kết] của riêng mình (https://github.com/chrisglass/xhtml2pdf/blob/master/test/linkloading.py) ..? –

Trả lời

6

Bạn có thể thử this 'Pisa-and-Reportlab-pitfalls' tôi đã để thêm video này

def fetch_resources(uri, rel): 

Ngày đầu đó tôi vẫn mang theo tất cả css của tôi bên trong mẫu. Ngoài ra, hãy đảm bảo bạn đang sử dụng xhtml2pdf và không sử dụng thẻ ho.pisa cũ.

+0

Tôi đã thử với nhập khẩu xhtml2pdf.pis thay vì ho.pisa và tôi thêm def fetch_resources (uri, rel): nhưng css vẫn không được hiển thị trong pdf ... – jul

+0

Với css của tôi trong mẫu nó hoạt động. Cảm ơn. – jul