PDF Converter App
任意のファイルを読み込んでPDF化して保存するアプリをTKinterライブラリーを用いたPythonコードで書いて
以下は、Tkinterライブラリを使用して、ユーザーが選択したファイルを読み込み、PDF形式で保存するPythonアプリケーションの例です。
python
Copy code
import tkinter as tk
from tkinter import filedialog
import os
from fpdf import FPDF
class PDFConverter:
def __init__(self, master):
self.master = master
master.title("PDF Converter")
# ラベル
self.label = tk.Label(master, text="PDFに変換するファイルを選択してください。")
self.label.pack()
# ファイル選択ボタン
self.select_button = tk.Button(master, text="ファイルを選択", command=self.select_file)
self.select_button.pack()
# 変換ボタン
self.convert_button = tk.Button(master, text="変換", state=tk.DISABLED, command=self.convert_file)
self.convert_button.pack()
# メッセージラベル
self.message = tk.Label(master, text="")
self.message.pack()
def select_file(self):
# ファイル選択ダイアログを表示
file_path = filedialog.askopenfilename()
if file_path:
# 選択されたファイルがPDFでなければ変換ボタンを有効化
if os.path.splitext(file_path)[1] != ".pdf":
self.convert_button.config(state=tk.NORMAL)
else:
self.message.config(text="選択されたファイルは既にPDF形式です。")
else:
self.message.config(text="ファイルが選択されていません。")
# 選択されたファイルのパスを保存
self.file_path = file_path
def convert_file(self):
# PDFファイルの作成
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
with open(self.file_path, "rb") as f:
text = f.read()
pdf.cell(200, 10, txt=text.decode("utf-8"), ln=1)
pdf_path = os.path.splitext(self.file_path)[0] + ".pdf"
pdf.output(pdf_path)
self.message.config(text=f"変換が完了しました。PDFファイルを{pdf_path}に保存しました。")
root = tk.Tk()
app = PDFConverter(root)
root.mainloop()
このアプリは、ユーザーがファイルを選択した後、ファイルがPDF形式でない場合は変換ボタンを有効化します。変換ボタンをクリックすると、選択されたファイルがPDFに変換され、元のファイルと同じ場所に保存されます。
Pydroidでやるとダメなのかどうかは知らんが。
ファイルを選択して読み込ませるところで何にも起きなくなり、Openボタンを押しても変換ボタンを押しても反応しなかった。
PCで実行しても同じ結果となった。
ちなみにPythonのIDLEではFPDFライブラリーのインストールに失敗したので、Anacondaのプロンプトでpip install --upgrade FPDFとコマンドを入力してようやくインストールできた。スパイダーで実行しても動かなかった。
BingAlではちょっと違うソースコードを提示されたが、やはり動かなかった。