web-dev-qa-db-ja.com

PythonでPDFファイルを作成して書き込む

なぜこれが機能しないのですか:

with open('file.pdf', 'w') as outfile:
    outfile.write("Hello")

コードは正常に機能しますが、.pdfファイルを開くことはできません。通常のテキストファイルとPDFの違いは何ですか? Pythonでpdfファイルを作成して書き込みたい場合はどうすればよいですか?

10
user8471763

あなたはfpdfライブラリをインストールしてから:

from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.set_xy(0, 0)
pdf.set_font('arial', 'B', 13.0)
pdf.cell(ln=0, h=5.0, align='L', w=0, txt="Hello", border=0)
pdf.output('test.pdf', 'F')

通常のテキストファイルとPDFの違いは何ですか?

A PDFファイルには特定の形式があります。詳細はこちらをご覧ください こちら 。テキストははるかに単純なファイルです。したがって、youこれはPDFだと思いますが、この形式がないため、ファイルを開くことができません。

Pythonでpdfファイルを作成して書き込みたい場合はどうすればよいですか?

PyPDF2Reportlab 、または [〜#〜] fpdf [〜#〜] のようなモジュールを使用する必要があります。さらに読む Python PDF library

6
gsamaras

すべてのタイプのファイルには、独自の内部形式があります。それは、表現する情報を定義するためにどこに行かなければならないかに関する一連の規則です。通常、ファイル拡張子(この場合は「.pdf」)は、ファイルが使用する内部形式を示すように設定されていますが、絶対的な保証はありません。

Pythonを使用してファイルに文字列を書き込むと、ファイルには入力したとおりの文字が含まれます。この場合、5つのASCII文字H、e、l、l、o。テキストファイルの通常の形式に対応します。この場合、テキストファイルを作成しましたが、 '。pdf'拡張子を付けました。内部形式はテキストファイルのままで、名前を 'file .txt」を選択すると、テキストエディタで問題なく開くことができます。

真のPDFファイル(PDFの正しい内部形式を持つもの))を作成する場合は、そのタイプのファイルを記述できる特別なパッケージを使用する必要があります。@ gsamarasおよび@ rasmus-lyngdal-christensenはいくつかの良い提案をしました(Reportlab、PyPDF2、fpdf)。

2
Matthias Fripp