我可以在我的文本小部件上显示文件,并且单击btn保存时必须将文件保存为pdf,但是我不知道如何将文本小部件中的文件保存为pdf。
这是我的代码
from tkinter import *
from tkinter import filedialog
from tkinter import ttk
from PyPDF2 import PdfFileReader
window = Tk()
def btnbrowse():
filename = filedialog.askopenfilename()
path.set(filename)
get_info(filename)
def get_info(path):
with open(path, 'rb') as f:
pdf = PdfFileReader(f)
info = pdf.getDocumentInfo()
page = pdf.getPage(0)
judul.set(info.title)
penulis.set(info.author)
keyword.set(info.subject)
txt.insert(INSERT, page.extractText())
#membuat label
l1 = Label(window, text = "Judul")
l1.grid(row = 1, column = 0)
l1 = Label(window, text = "Penulis")
l1.grid(row = 3, column = 0)
l1 = Label(window, text = "Keyword")
l1.grid(row = 4, column = 0)
l1 = Label(window, text = "Abstract")
l1.grid(row = 5, column = 0)
l1 = Label(window, text = "Category")
l1.grid(row = 6, column = 0)
#membuat Entries
path = StringVar()
e1 = Entry(window, textvariable = path, width = 100)
e1.grid(row = 0, column = 1)
judul = StringVar()
ejdl = Entry(window, textvariable = judul, width = 100)
ejdl.grid(row = 1, column = 1)
penulis = StringVar()
epnls = Entry(window, textvariable = penulis, width = 100)
epnls.grid(row = 3, column = 1)
keyword = StringVar()
ekw = Entry(window, textvariable = keyword, width = 100)
ekw.grid(row = 4, column = 1)
txt = Text(window, height = 5)
txt.grid(row = 5, column = 1)
#membuat combobox
cb = ttk.Combobox(window, width = 100)
cb['values'] = ("Computer Graphics & Design",
"Computer System",
"Data Science",
"Human Computer Interaction",
"Information Security")
cb.grid(row = 6, column = 1)
#membuat button
btn = Button(window, text = "Choose a File", width = 12, command = btnbrowse)
btn.grid(row = 0, column = 2)
btn = Button(window, text = "Save", width = 12)
btn.grid(row = 7, column = 1)
window.mainloop()
是否可以将文本小部件上的文件保存为pdf?
如果可以将文件保存为pdf,如何将文件保存为pdf?
答案 0 :(得分:0)
有很多方法可以在python中生成PDF。 pdfkit是更好的方法之一,因为它可以将HTML转换为具有各种图像格式,HTML表单和其他复杂可打印文档的PDF。 安装pdfkit:您可以使用以下命令通过pip进行安装。
pip install pdfkit
安装后,您可以从网址或文件生成pdf文件, 例如,您将.txt文件保存为pdf文件,则可以使用以下(未经测试的):
import pdfkit
pdfkit.from_file('textfile.txt', 'textfile.pdf')
或者您可以打开并阅读您的文本文件,并将其存储在变量中,然后将其作为字符串写入pdf文件(我已经通过这种方式进行了测试,并且可以正常工作):
with open('data.txt', 'r') as myfile:
data = myfile.read() #store .txt file in data
pdfkit.from_string(data, 'data.pdf')#write data in pdf file