如何将文本保存为pdf?

时间:2018-08-04 06:23:59

标签: python-3.x tkinter pypdf2

我可以在我的文本小部件上显示文件,并且单击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?

1 个答案:

答案 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
相关问题