2017-08-24 61 views
0

我正在編寫一個腳本,用於將帶有html的json文件轉換爲呈現的pdf。 我寫了這個:Python將json/html轉換爲pdf

from weasyprint import HTML 
from django.template import Template, Context 
from django.template.loader import render_to_string, get_template 
import json 


context = json.load(open("source path")) 

rendered_string = render_to_string("template.html", context) 

HTML(string=rendered_string).write_pdf("sample.pdf") 

的問題是輸出,在JSON所有的HTML被格式化爲簡單的文字和債券型... json的部分就可以了。 有人知道我該如何解決這個問題?

這是模板:

{%for elemento in elementi%} 
{%if not elemento.tipo%} 
    <h1>{{elemento.html}}</h1> 
{%else%} 
    <ul> 
    {%for f in elemento.form %} 
    <li>{{f}}</li> 
    {%endfor%} 
    </ul> 
{%endif%} 
{%endfor%} 

,這是JSON:

{"elementi":[{"id":107729,"titolo":null,"tipo":false,"form":null,"html":"<span lessico='Questa' idx=\"0\" testo=\"testo\" show-modal=\"setModal()\" tables=\"updateTables(input)\">Questa</span> <span lessico='&egrave;' idx=\"1\" testo=\"testo\" show-modal=\"setModal()\" tables=\"updateTables(input)\">&egrave;</span> <span lessico='una' idx=\"2\" testo=\"testo\" show-modal=\"setModal()\" tables=\"updateTables(input)\">una</span> <span lessico='domanda' idx=\"3\" testo=\"testo\" show-modal=\"setModal()\" tables=\"updateTables(input)\">domanda</span>...","traduci":[],"inputLessicale":[],"esercizioId":101624,"italiano":null,"testo_principale":"Questa &egrave; una domanda...","testo_principale_pre":"","testo_principale_post":"","risposta_1":"","risposta_2":"","risposta_3":"","risposta_4":"","distrattore_1":"","distrattore_2":"","distrattore_3":"","distrattore_4":"","parole_gia_ricostruite":"","continua":false,"focus":true,"ignora_lessico":false,"etichetta_1":null,"etichetta_2":null,"etichetta_3":null,"etichetta_4":null,"etichetta_5":null}, 
{"id":107730,"titolo":"Scegli la risposta corretta","tipo":"M","form":["a scelta multipla","con risposta aperta","di tipo trova","di associazione"],"html":null,"traduci":[],"inputLessicale":[],"esercizioId":101624,"italiano":null,"testo_principale":"a scelta multipla","testo_principale_pre":"","testo_principale_post":"","risposta_1":"","risposta_2":"","risposta_3":"","risposta_4":"","distrattore_1":"con risposta aperta","distrattore_2":"di associazione","distrattore_3":"di tipo trova","distrattore_4":"","parole_gia_ricostruite":"","continua":false,"focus":false,"ignora_lessico":false,"etichetta_1":null,"etichetta_2":null,"etichetta_3":null,"etichetta_4":null,"etichetta_5":null}],"ordine_in_verifica":null} 
+0

問與weasyprint HTML渲染問題可能會更快地使用自己的通信手段來解決。 (IRC和GitHub) –

+0

我不確定問題是weasyprint,我想我在模板中做了錯誤 – JungleFever

回答