23

私の個人的なウェブサイトでは、PDF である履歴書専用の別のページを作成したいと考えています。複数の方法を試しましたが、フラスコで PDF を処理する方法がわかりません。

4

5 に答える 5

13

フラスコsend_fileまたはsend_static_file関数を5行で使用できます。

from flask import send_file, current_app as app

@app.route('/show/static-pdf/')
def show_static_pdf():
    with open('/path/of/file.pdf', 'rb') as static_file:
        return send_file(static_file, attachment_filename='file.pdf')

このスニペット リンクは役に立ちます

send_from_directory特定のディレクトリからファイルを送信する場合にも使用できます。

from flask import send_from_directory, current_app as app

@app.route('/show/PDFs/')
def send_pdf():
    return send_from_directory(app.config['UPLOAD_FOLDER'], 'file.pdf')

についてもっと読むsend_from_directory

于 2015-05-19T11:19:47.607 に答える
9

2 つのオプションがあります。静的 PDF ファイルを使用するテンプレートをレンダリングするか、PDF を生成するテンプレートをレンダリングできます。私は個人的に最初のオプションを選びます。

この SO の質問は、PDF を返す HTML ページを作成する方法に特化しています。これを jinja2 テンプレートで使用できます。

これを行うための迅速で汚れた方法を次に示します。

<embed src="http://yoursite.com/the.pdf" width="500" height="375">

または、PDF を返すために必要なすべてのヘッダーを設定する jinja2 テンプレートを作成して、次のように言うことができます。

<img src="{{ url_for('static', filename='img.png', _external=True) }}" />

pdfを返す static と呼ばれるビュー関数を使用します。

このフラスコのスニペットで 2 番目のオプションについて詳しく読むことができます

于 2013-08-16T20:24:22.420 に答える
0

あなたがあなたの典型的なことをしようとしているなら

<a href="path/doc.pdf">My Resume</a> 

ユーザーがリンクをクリックして pdf がダウンロードされる場所では、ドキュメントを静的フォルダーに配置する必要があります。

次に、次のような結果になります。

<a href="../static/doc.pdf">My Resume</a>
于 2018-03-21T17:23:13.980 に答える