正しいpdfファイルがスクリプトによって作成されています(出力はstdoutに直接書き込むことはできませんが、残念ながら)。ファイルの名前が 'myfile.pdf'であるとします。pythonを使ってpdfファイルをstdoutにプリントするには?
正確なpdfコンテンツをstdoutに出力したいと思います。 (間に処理はありません)。これをテストする
、私はこの短いread_pdf.py
スクリプト書いた:テキストモードでこれを読むことUnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 10: invalid continuation byte
につながるので、私は'rb'
モードを使用
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
with open('myfile.pdf', mode='rb') as pdf_file:
for line in pdf_file:
print(str(line))
を。だから、他の選択肢がないように見えます(テキストモードが動作しない場合、バイナリモード)。
もちろん、問題は、出力がb'blablabla'
行で構成されており、pdfファイルとして使用できないことです。それを確認するには、私はファイルへread_pdf.py
をリダイレクトし、PDFビューアでそれを開くために、そしてもちろん、それは動作しません試してみてください。
$ ./read_pdf.py > test_output.pdf
$ evince test_output.pdf
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Couldn't read xref table
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Couldn't read xref table
ので、それを行うための正しい方法は何ですか?私はそれが必要な見た目ではないので、私は任意のPDF専用ライブラリをチェックしていない、私はそのためのPDFライブラリをインポートせずに正しいコンテンツを読んで印刷することができるようにしたいと思います。
chardet.detect(pdf_file.read())
助けてくれませんでした(それは{'encoding': None, 'confidence': 0.0}
を返しました)。
編集: *私はpython3とLinux/Unixシステムの解決策を探していますが、Windowsは探していません。 * Pythonでこれを行う方法を知っておく必要があります。実際には大きなプロジェクトの一部であり、実際はPythonで書かれています。
Aあなたはちょうど 'cat some.pdf'できないのですか? – armandino
可能な複製:http://stackoverflow.com/questions/2374427/python-2-x-write-binary-output-to-stdout –
@armandinoは実際にはPythonで書かれた大きなプロジェクトの一部です。 – zezollo