JPGとバックコンバータ
動機
よく、私はどちらかで同じ書類を提出しなければなりません
.pdf
or .jpg/jpeg
形式.私はオンライン変換サイトを使用して2つの形式の間で変換します.最近の懸念は私の心の中に残っていた理由私は雲に私の個人文書をアップロードし、私はちょうどプロセスが私のデバイス上でローカルに滞在するコンバータを作成する必要はありません.したがって、私は変換を行うプログラムを作ることを決めた.ステップは
-ステップ1 :開発用のフレームワーク/言語を決定する
私は、これを文書化されたステップとして含めたいです:理由は短いです:私は私の日々の生活の中でウェブ開発をします、それで、私はこの小さいプログラムをPythonでコーディングすることがさわやかであると決めました.
-ステップ2 :パッケージの検索
あなたは自分で変換を実装するか、よく維持され、良いダウンロード数を持つパッケージを探すことができます.私は、変換のために以下のパッケージを選びました.
pdf2image PDFからJPGへの変換.
img2pdf JPG/JPEGのPDF変換に.
-ステップ3 : make GUI
使用するPAGE スタティックGUIを構築するには.これは非常にシンプルで使いやすいドラッグアンドドロップGUIジェネレータです.私は2つのguisを作りました、コンバータのための1と成功メッセージを示すための他.また、すべての1つを扱うことができます.
注:Tkinterアプリケーション別のOSで異なって見える.私はWindowsを使用します.すべてのプラットフォーム間で同じアプリケーションを作成する場合は、条件付きレイアウトを追加できます.
ページからスクリプトを生成した後、GUI
conversion_mode
:conversion_mode == 'jpg'
, 次に、それに応じてテキストを設定し、出力PDFファイルの名前を入力するための入力フィールドを表示します.conversion_mode == 'pdf'
, 次に、関連するテキストの変更を行います.出力JPGとしてエントリフィールドを追加する必要はありませんが、PDFの名前にインデックスが続きます.-ステップ4 :ファイルをアップロードする
私はTkinterのfiledialog ファイルをアップロードするモジュール.設定します
initialdir
スクリプトが置かれるディレクトリに.curr_dir = os.getcwd()
PDFファイルをアップロードします
filedialog.askopenfilename
を使用する.filedialog.askopenfilename(initialdir=curr_dir, title="Select PDF",
filetypes=[("PDF File", "*.pdf")])
JPGファイルをアップロードすることができます
filedialog.askopenfilenames
を使用する.filedialog.askopenfilenames(initialdir=curr_dir, title="Select JPG(s)",
filetypes=[("JPG File", "*.jpeg *.jpg")
ステップ5 : JPGからPDFへの変換
JPG/JPEGファイルを単一のPDFに変換するには
file_paths
, これはimg 2 pdfのイメージファイルパスのリストですconvert
関数.import img2pdf
with open(name+".pdf", "wb+") as file:
file.write(img2pdf.convert(*file_paths))
name
出力PDF nameはユーザによって提供されます.ステップ6 : PDFをjpgに変換します.
使う
pdf2image
, ファーストダウンロードpoppler
あなたのシステムで.( Instructions ). 私はWindowsユーザーであるので、私はPopplerbin/
スクリプトと同じディレクトリのフォルダー.poppler_path=r"./bin" if (sys.platform == "win32" or sys.platform == "cygwin") else None
作成されたイメージファイルはoutput_folder
. メモリエラーを避けるためにpaths_only=True
それでconvert_from_path(...)
PILイメージオブジェクトを返す必要はありません.from pdf2image import convert_from_path
from pdf2image.exceptions import (
PDFInfoNotInstalledError,
PDFPageCountError,
PDFSyntaxError
)
convert_from_path(
file_path,
output_folder=output_folder_path,
output_file=output_folder_name,
fmt="jpg",
paths_only=True,
poppler_path=r"./bin" if (sys.platform == "win32" or sys.platform == "cygwin") else None
)
この関数はchunkで実行できます.see ) PDFファイルが何百ものページを持っているか、イメージオブジェクトで働きたいならば、OOMエラーに遭遇することについて心配しています.変換後、ユーザーが別のインターフェイスに成功メッセージが表示されますシフトします.
からの完全なインプリメンテーションを得てくださいGitHub .
だから私はPDFを作った⇌ 私の要件を満たしている今、私はセキュリティ/プライバシーについて心配する必要はありません.
共有あなたの考え.フィードバックは常に歓迎です:)
Reference
この問題について(JPGとバックコンバータ), 我々は、より多くの情報をここで見つけました https://dev.to/sanamumtaz/python-pdf-to-jpg-back-converter-12pfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol