2011-07-14 5 views
1

こんにちは私はExtjsアプリケーションをやっていて、ユーザーがボタンをクリックしたときにReportLabでpdfを開きたいと思っています。Django ExtJsとReportLabでPDFを開く方法

私のスクリプトは次のとおりです。

xtype: 'button', 
text: 'Print', 
listeners: { 
    click: function(evt, comp) { 
     Ext.Ajax.request({ 
      url : 'get_pdf', 
      method: 'GET', 
      success: function (result, request) { 
       var pdf = Ext.util.JSON.decode(result.responseText); 
       if (pdf.success) { 
        console.log('It's ok'); 
       } 
      }); 
     } 
    } 

とサーバ側私はDjangoのビューをしました:%(構文エラー:私は、印刷ボタンをクリックすると

def get_pdf(request): 

    # Create the HttpResponse object with the appropriate PDF headers. 
    response = HttpResponse(mimetype='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename=somefilename.pdf' 

    # Create the PDF object, using the response object as its "file." 
    p = canvas.Canvas(response) 

    # Draw things on the PDF. Here's where the PDF generation happens. 
    # See the ReportLab documentation for the full list of functionality. 
    p.drawString(100, 100, "Hello world.") 

    # Close the PDF object cleanly, and we're done. 
    p.showPage() 
    p.save() 
    return response 

、ExtJSのは、私は、このエラーを与えますPDF-1.3 私は間違っているのですか?

+0

ExtjsがそのPDFでどうしようとしていますか?あなたがJSONとして解析しようとしているように見えますが、なぜそれが想像できません。 –

答えて

0

私はExtjについて完全な答えを得るためによく分かりませんが、私があなたに言うことができるのは、レスポンステキストがJSONではないということです。リアエラーのために息子。本当にしたいのは、ブラウザにresultと表示する、つまり開始したHTTPリクエストの内容を表示するだけです。成功を確認する場合は、代わりに結果のHTTPヘッドを確認してください。

+0

右。あなたがExt.util.JSON.decodeをしなければならない理由がわからない – sprezzatura

+0

はい、Ext.decodeでデコードする必要はありません... iframeを使って解決し、 "src"パラメータにURL "get_pdf"を指定しました –

関連する問題