目录

如何用kimi写一个最小pdf查看软件

目录

如何用kimi写一个最小pdf查看软件

下面给出一份“最小可运行”的 PDF 查看器完整源码(Python 3,仅依赖 tkinter 与 tkinterPDF,后者是对 poppler 的极简封装)。
代码不到 120 行,双击即可运行,支持:打开、缩放、翻页、首页/末页、窗口自适应。
复制-粘贴即可用;Kimi 可以帮你把这段代码保存为 mini_pdf_viewer.py 并运行。


  1. 安装依赖(一次性)

bash

复制


# Windows / macOS / Linux 通用
pip install tkinterpdf

tkinterpdf 会自动下载对应平台的 poppler 二进制,无需额外配置。


  1. 最小完整源码

#!/usr/bin/env python3
"""
mini_pdf_viewer.py – 最小 PDF 查看器
依赖:pip install tkinterpdf
"""
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
from tkinterpdf import PdfShow  # 核心控件

class MiniPdfViewer(tk.Tk):
    def init(self):
        super().init()
        self.title(“Mini PDF Viewer”)
        self.geometry(“640x800”)
        self._build_ui()
        self.bind("", lambda e: self.pdf.prev())
        self.bind("", lambda e: self.pdf.next())

    # ———- UI ———-
    def _build_ui(self):
        # 顶部工具栏
        bar = ttk.Frame(self)
        bar.pack(side=“top”, fill=“x”, padx=5, pady=2)
        ttk.Button(bar, text="📁 打开", command=self.open).pack(side=“left”)
        ttk.Button(bar, text="➖", width=3, command=lambda: self.zoom(0.9)).pack(side=“left”)
        ttk.Button(bar, text="➕", width=3, command=lambda: self.zoom(1.1)).pack(side=“left”)
        ttk.Button(bar, text="◀", width=3, command=lambda: self.pdf.prev()).pack(side=“left”)
        ttk.Button(bar, text="▶", width=3, command=lambda: self.pdf.next()).pack(side=“left”)
        ttk.Button(bar, text="⏮", width=3, command=lambda: self.pdf.goto(0)).pack(side=“left”)
        ttk.Button(bar, text="⏭", width=3, command=lambda: self.pdf.goto(self.pdf.page_count-1)).pack(side=“left”)
        self.page_info = ttk.Label(bar, text=“0/0”)
        self.page_info.pack(side=“right”)

        # PDF 渲染区
        self.pdf = PdfShow(self, scroll=“both”)
        self.pdf.pack(fill=“both”, expand=True)
        self.pdf.bind("«PageChanged»", lambda _: self._update_info())

    # ———- 功能 ———-
    def open(self, file=None):
        file = file or filedialog.askopenfilename(filetypes=[(“PDF”, “*.pdf”)])
        if file:
            try:
                self.pdf.load(file)
                self._update_info()
            except Exception as e:
                messagebox.showerror(“错误”, str(e))

    def zoom(self, factor):
        self.pdf.scale(factor)

    def _update_info(self):
        self.page_info.config(text=f"{self.pdf.page_no + 1}/{self.pdf.page_count}")

———- 入口 ———-

if name == “main”:
    MiniPdfViewer().mainloop()

  1. 运行

bash

复制


python mini_pdf_viewer.py

界面弹出后:

  • 📁 打开 → 选择任意 PDF;
  • ➖/➕ 缩放;
  • ◀/▶ 或键盘左右箭头翻页;
  • ⏮/⏭ 直达首尾页。

  1. 还能再小吗?

如果你只想“一行命令”预览 PDF,可以进一步精简成 10 行脚本(无按钮、无菜单):

import sys, tkinter as tk
from tkinterpdf import PdfShow
root = tk.Tk(); root.title(“PDF”); root.geometry(“800x600”)
pdf = PdfShow(root, scroll=“both”); pdf.pack(expand=True, fill=“both”)
pdf.load(sys.argv[1])  # 命令行参数
root.mainloop()

保存为 tiny_pdf.py,终端执行:

bash

复制


python tiny_pdf.py example.pdf

即可弹出窗口直接阅读。


  1. 让 Kimi 帮你打包(可选)

Kimi 可以生成一键打包脚本,例如用 PyInstaller 做成独立 exe:

bash

复制


pip install pyinstaller
pyinstaller -F -w mini_pdf_viewer.py -n MiniPDF

生成的 dist/MiniPDF.exe 双击即可运行,无需 Python 环境。

至此,一个“最小”但五脏俱全的 PDF 查看器就完成了。祝编码愉快!