@K-O-G כתב בשיתוף | סקריפט לבדיקת גופנים במסמך PDF.:
@י-פל כתב בשיתוף | סקריפט לבדיקת גופנים במסמך PDF.:
האפשרות קיימת בחלק מתוכנות קריאת הPDF [עכ"פ באלו של אדובי].
אבל בניתי [כלומר, GPT] סקריפט נחמד, צריך פייתון מותקן והתקנה של איזו חבילה [רשמית אם היא לא מותקנת, הסקריפט יוריד ויתקין אותה, לא בדקתי אם זה עובד.
קוד המקור בספויילר
Spoiler
הנה הקוד:
import subprocess
import sys
import tkinter as tk
from tkinter import filedialog, messagebox, scrolledtext
# בדיקה אם pymupdf מותקן, ואם לא - התקנה
try:
import fitz # PyMuPDF
except ImportError:
response = messagebox.askyesno("התקנת PyMuPDF", "PyMuPDF אינו מותקן. האם ברצונך להתקין אותו כעת?")
if response:
subprocess.check_call([sys.executable, "-m", "pip", "install", "pymupdf"])
import fitz
else:
sys.exit("PyMuPDF נדרש להפעלת הסקריפט.")
# פונקציה לפתיחת קובץ PDF ובדיקת הגופנים
def analyze_fonts():
file_path = filedialog.askopenfilename(
title="בחר קובץ PDF",
filetypes=[("PDF Files", "*.pdf")]
)
if not file_path:
return
try:
doc = fitz.open(file_path)
except Exception as e:
messagebox.showerror("שגיאה", f"לא ניתן לפתוח את הקובץ: {str(e)}")
return
result_text.delete(1.0, tk.END) # ניקוי השדה
result_text.insert(tk.END, f"קובץ: {file_path}\n\n")
# הגדרת תג ל-Rtl
result_text.tag_configure("rtl", justify='right')
# בדיקה של הגופנים בעמודים
for page_num in range(doc.page_count):
page = doc[page_num]
font_list = page.get_fonts(full=True)
result_text.insert(tk.END, f"עמוד {page_num + 1}:\n", "rtl")
if font_list:
for font in font_list:
font_name = font[3] # שם הגופן
result_text.insert(tk.END, f"גופן: {font_name}\n", "rtl")
else:
result_text.insert(tk.END, "לא נמצאו גופנים בעמוד זה.\n", "rtl")
result_text.insert(tk.END, "\n", "rtl")
# יצירת הממשק הגרפי
root = tk.Tk()
root.title("בודק גופנים בקובץ PDF")
# הגדרת גודל חלון
root.geometry("600x400")
# הגדרת ממשק RTL
root.tk.call('tk', 'scaling', 1.0) # מתקין טקסט
נכון עבור כל גודל פונט
root.option_add('*tearOff', False) # בטל את האפשרות למשוך תפריטים
root.option_add('*font', 'Arial 12')
root.option_add('*foreground', 'black')
# כפתור לפתיחת קובץ PDF
open_button = tk.Button(root, text="בחר קובץ PDF", command=analyze_fonts)
open_button.pack(pady=10, anchor='e') # מיקום הכפתור מימין
# שדה טקסט נגלל לתוצאות
result_text = scrolledtext.ScrolledText(root, wrap=tk.WORD, height=15, bg='lightgrey', font=('Arial', 12))
result_text.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)
# הפעלת הלולאה הראשית של tkinter
root.mainloop()
גודל הEXE יותר מ40 מגה, אז לא העליתי בסוף...
הנה קובץ PY.
PDFonf.py
הוא עובד גם על קבצים שחתומים דיגיטלית ?
כן.
שים לב שזה לא עורך כלום, רק מציג את שמות הגופנים.