2016-12-22 6 views
0

私は自分のフォームをPDFファイルに変換するためにxhtml2pdfを使用しています。 デフォルトでは、このPDFは自分のmanage.pyファイルと同じ場所に保存されます。xhtml2pdfとダウンロードリンクで保存パスを追加しますか?

私は(MacOSXので)私は例えば、私のデスクトップ上でPDFを送信するために、保存パスを変更するにはどうすればよい聞いてるのよ

これは私の関数である:

def BirthCertificate_PDF(request, id) : 

    birthcertificate = get_object_or_404(BirthCertificate, pk=id) 

    data = {"birthcertificate" : birthcertificate} 

    template = get_template('BC_raw.html') 
    html = template.render(Context(data)) 

    #filename = 'acte_de_naissance_' + str(BirthCertificate.lastname) 
    filename = 'Acte_Naissance_' + str(BirthCertificate.objects.get(pk=id).lastname) + '_' + str(BirthCertificate.objects.get(pk=id).firstname) + '_' + str(BirthCertificate.objects.get(pk=id).birthday) + '.pdf' 

    file = open(filename, "w+b") 
    pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8') 

    file.seek(0) 
    pdf = file.read() 
    if pdf : 
     context = {"birthcertificate":birthcertificate} 

     return render(request, 'BC_resume.html', context) 
    file.close() 

    return HttpResponse(pdf, 'application/pdf') 

私は、このドキュメントを読みます:xhtml2pdf docしかし私には解決策がありません。

--------------------------------------------- -------------------------------------------------- ----------------------------------

次に、私は別の質問があります。新しい質問?)。私は、PDFを保存するHTMLボタンを置く。 >私はウィンドウがPDFを開くか、これは、PDFファイルを保存するようにしましょう私のHTMLテンプレートであること

を保存するためにせ得る -

が、私はボタンをクリックしてください:しかし、私は、以下の機能を持っていると思います

<h2 align="center"> Votre formulaire a été validé </align> </h2> 

{% block content %} 

L'enfant a été enregistré sous le numéro : {{ birthcertificate.id }} 

<h3> Récapitulatif des données enregistrées : </h3> 

<li> Nom : {{birthcertificate.lastname}}</li> 
<li> Prénom : {{birthcertificate.firstname}}</li> 
<li> Sexe : {{birthcertificate.sex}}</li> 
<li> Date de Naissance : {{birthcertificate.birthday}}</li> 
<li> Ville de Naissance : {{birthcertificate.birthhour}}</li> 
<li> Pays de Naissance : {{birthcertificate.birthcity}}</li> 
<li> Nationalité : {{birthcertificate.birthcountry}}</li> 
<li> Père : {{birthcertificate.fk_parent1}}</li> 
<li> Mère : {{birthcertificate.fk_parent2}}</li> 

{% endblock %} 

<br></br> 

<form method='POST' action="{% url "BChome" %}"> {% csrf_token %} 
<input type ="submit" value="Retour gestion des actes de naissances" /> 
</form> 

<form method='POST' action="{% url "PDF" birthcertificate.id %}"> {% csrf_token %} 
<input type ="submit" value="Générer PDF acte de naissance" /> 
</form> 


<form method='POST' action='/Identity/accueil'> {% csrf_token %} 
<input type ="submit" value="Retour gestion des fiches identités" /> 
</form> 

ご質問の両方についてのアドバイスを持っている場合はありがとう:)

答えて

1

この行では、あなたのファイルを保存する場所を定義します。

file = open(filename, "w+b") 
pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8') 
勿論あなたが先の引数にすることができ

destination = "/Users/userName/Desktop/" 
file = open(destination + filename, "w+b") 
pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8') 

"/Users/userName/Desktop/" + filename

だからあなたのコードは次のようになります。

ただデスクトップのため、あなたはそれを保存したい宛先にファイル名を変更しますあなたの機能。

+1

ありがとうございました!それは非常にうまく動作します:) – Deadpool

関連する問題