Initial
Just browses through PDF pages
This commit is contained in:
commit
b774b90504
2
requirements.txt
Normal file
2
requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
pillow==10.4.0
|
||||||
|
PyMuPDF==1.24.9
|
53
src/main.py
Normal file
53
src/main.py
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
import argparse
|
||||||
|
import pymupdf
|
||||||
|
|
||||||
|
import tkinter
|
||||||
|
from tkinter import ttk
|
||||||
|
from PIL import Image, ImageTk
|
||||||
|
|
||||||
|
CURRENT_PAGE = 0
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("file")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
doc: pymupdf.Document
|
||||||
|
with pymupdf.open(args.file) as doc:
|
||||||
|
root = tkinter.Tk()
|
||||||
|
frm = ttk.Frame(root, padding=10)
|
||||||
|
frm.grid()
|
||||||
|
|
||||||
|
label = ttk.Label(frm)
|
||||||
|
label.grid(column=1, row=0)
|
||||||
|
|
||||||
|
def load_page(i: int):
|
||||||
|
page = doc[i]
|
||||||
|
pix = page.get_pixmap()
|
||||||
|
|
||||||
|
mode = "RGBA" if pix.alpha else "RGB"
|
||||||
|
img = Image.frombytes(mode, [pix.width, pix.height], pix.samples)
|
||||||
|
img = ImageTk.PhotoImage(img)
|
||||||
|
label.configure(image=img)
|
||||||
|
label.image = img
|
||||||
|
|
||||||
|
def next_page():
|
||||||
|
global CURRENT_PAGE
|
||||||
|
CURRENT_PAGE += 1
|
||||||
|
load_page(CURRENT_PAGE)
|
||||||
|
|
||||||
|
def previous_page():
|
||||||
|
global CURRENT_PAGE
|
||||||
|
CURRENT_PAGE -= 1
|
||||||
|
load_page(CURRENT_PAGE)
|
||||||
|
|
||||||
|
ttk.Button(frm, text="Previous", command=previous_page).grid(column=0, row=0)
|
||||||
|
ttk.Button(frm, text="Next", command=next_page).grid(column=2, row=0)
|
||||||
|
|
||||||
|
load_page(CURRENT_PAGE)
|
||||||
|
|
||||||
|
root.mainloop()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in a new issue