Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 浏览,打开PDF文件,在第1页添加戳记,然后将其另存为新文件_Python_Image_Pdf_Tkinter_Save - Fatal编程技术网

Python 浏览,打开PDF文件,在第1页添加戳记,然后将其另存为新文件

Python 浏览,打开PDF文件,在第1页添加戳记,然后将其另存为新文件,python,image,pdf,tkinter,save,Python,Image,Pdf,Tkinter,Save,我有这些代码行来浏览/打开pdf,在第1页添加邮票/图像,然后将其另存为新文件。但是当我运行代码时,它并没有保存新的pdf文件。非常感谢您的帮助,我对python非常陌生 import tkinter import fitz from tkinter import messagebox from tkinter import filedialog main_win = tkinter.Tk() main_win.geometry("500x500") main_win.s

我有这些代码行来浏览/打开pdf,在第1页添加邮票/图像,然后将其另存为新文件。但是当我运行代码时,它并没有保存新的pdf文件。非常感谢您的帮助,我对python非常陌生

import tkinter
import fitz
from tkinter import messagebox
from tkinter import filedialog


main_win = tkinter.Tk()
main_win.geometry("500x500")
main_win.sourceFolder = ''
main_win.sourceFile = ''
def chooseDir():
    main_win.sourceFolder =  filedialog.askdirectory(parent=main_win, initialdir= "/", title='Please select a directory')

b_chooseDir = tkinter.Button(main_win, text = "Chose Folder", width = 20, height = 3, command = chooseDir)
b_chooseDir.place(x = 50,y = 50)
b_chooseDir.width = 100


def chooseFile():
    main_win.sourceFile = filedialog.askopenfilename(parent=main_win, initialdir= "/", title='Please select a directory')

def convertFile():
    dst_pdf_filename = 'destination.pdf'
    img_filename = 'hillsborough county stamp.png'
  
    img_rect = fitz.Rect(55, 28, 180, 390)
    
    page = document[0]
    page.insertImage(img_rect, filename=img_filename)
  
    document.save(dst_pdf_filename)
    document.close()
    
b_chooseFile = tkinter.Button(main_win, text = "Chose File", width = 20, height = 3, command = chooseFile)
b_chooseFile.place(x = 250,y = 50)
b_chooseFile.width = 100

b_convertFile = tkinter.Button(main_win, text = "Convert File", width = 20, height = 3, command = convertFile)
b_convertFile.place(x = 250,y = 200)
b_convertfile.width = 100


main_win.mainloop()
print(main_win.sourceFolder)
print(main_win.sourceFile )


据我所知,您希望在源文件
main\u win.sourceFile
中添加一个戳记图像,并将其保存到新文件
dst\u pdf\u filename

def convertFile():
如果main_win.sourceFile:
dst_pdf_文件名='destination.pdf'
img_filename='hillsborough county stamp.png'
img_rect=fitz.rect(55,28,180,390)
document=fitz.open(main_win.sourceFile)#开源文件
页面=文档[0]
page.insertImage(img_rect,filename=img_filename)
document.save(dst_pdf_文件名)
文件关闭()

您知道吗
mainloop()
后面的所有代码只有在关闭根窗口后才会执行?操作,代码已经更新。您的代码中未定义仍然存在相同问题的
src\u pdf\u文件名
。请单击“添加”按钮以运行将保存文件的函数。若您直接运行
document.save(dst_pdf_filename)
,那个么它甚至在您看到窗口之前就被执行了。GUI的工作原理与控制台脚本不同,控制台脚本使用
input()
-
mainloop
启动窗口,并且
mainloop
之前的所有代码都在您看到窗口之前执行,所以在您选择文件等之前执行。当窗口显示时,您必须使用按钮在预期时刻运行代码。代码已修改,它仍然不会将图像添加到第1页,也不会保存。我肯定做了一些非常错误的事情…这个修复程序很有魅力!!非常感谢。