דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. Python
  5. עזרה הדדית - Python
  6. בקשת עזרה תוכנה למיון ספרים!

בקשת עזרה תוכנה למיון ספרים!

מתוזמן נעוץ נעול הועבר עזרה הדדית - Python
38 פוסטים 7 כותבים 1.6k צפיות 7 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א אלף שין

    שלום רב
    לאחר עבודה הנני שמח לבשר על תחילתו של סקריפט למיון ספרים במחשב,
    המטרה היא שמי שהוריד הרבה ספרים מהיברו-בוקס יוכל למיין אותם בקלות ואוטומטית לתיקייה ייעודית,

    לכן כתבתי בס"ד סקריפט שבודק אם בעמוד הראשון או השני בקובץ מופיע W [הקישור לאתר שלהם]
    ואם אכן מוצא תו זה הוא מעביר מיד את הקובץ לתיקייה שנבחרה,
    להלן הסקריפט:

    import os
    import tkinter as tk
    from tkinter import filedialog
    import PyPDF2
    import re
    import shutil
    import threading
    from queue import Queue
    from pdfminer.high_level import extract_pages
    from pdfminer.layout import LAParams, LTTextBox, LTTextContainer
    
    class PDF_Sorter:
        def __init__(self, root):
            self.root = root
            self.root.title("PDF Sorter")
            self.create_gui()
    
        def create_gui(self):
            self.source_folder = tk.StringVar()
            self.dest_folder = tk.StringVar()
    
            frame = tk.Frame(self.root)
            frame.pack(fill="both", expand=True)
    
            tk.Label(frame, text="Source Folder:").pack()
            self.source_folder_entry = tk.Entry(frame, textvariable=self.source_folder, width=50)
            self.source_folder_entry.pack()
    
            tk.Button(frame, text="Browse", command=self.browse_source_folder).pack(side=tk.LEFT, padx=5, pady=5)
    
            tk.Label(frame, text="Destination Folder:").pack()
            self.dest_folder_entry = tk.Entry(frame, textvariable=self.dest_folder, width=50)
            self.dest_folder_entry.pack()
    
            tk.Button(frame, text="Browse", command=self.browse_dest_folder).pack(side=tk.LEFT, padx=5, pady=5)
    
            tk.Button(frame, text="Start", command=self.sort_pdfs).pack(padx=5, pady=5)
    
        def browse_source_folder(self):
            self.source_folder.set(filedialog.askdirectory())
    
        def browse_dest_folder(self):
            self.dest_folder.set(filedialog.askdirectory())
    
        def sort_pdfs(self):
            self.queue = Queue()
            for root, dirs, files in os.walk(self.source_folder.get()):
                for file in files:
                    if file.endswith('.pdf'):
                        file_path = os.path.join(root, file)
                        self.queue.put((file_path, self.dest_folder.get()))
    
            self.worker_thread = threading.Thread(target=self.process_queued_pdfs)
            self.worker_thread.start()
            self.root.after(1000, self.worker_thread.join)
            print("PDF sorting complete")
    
        def process_queued_pdfs(self):
            while not self.queue.empty():
                file_path, dest_folder = self.queue.get()
                try:
                    with open(file_path, 'rb') as pdf_file:
                        pdf_reader = PyPDF2.PdfReader(pdf_file)
                        for i in range(min(2, len(pdf_reader.pages))):
                            text = pdf_reader.pages[i].extract_text()
                            if re.search(r'w|W', text, re.IGNORECASE) or re.search(r'\\\[]', text):
                                shutil.copy(file_path, os.path.join(dest_folder, os.path.basename(file_path)))
                                break
                except Exception as e:
                    print(f"Error processing {file_path}: {e}")
    
    if __name__ == "__main__":
        root = tk.Tk()
        pdf_sorter = PDF_Sorter(root)
        root.mainloop()
    

    הבעיה היא שכ50% מהספרים של היברו בוקס,
    הסימן מים שלהם מופיע לא כמלל רגיל, אלא כמלל בתוך תיבת טקסט,
    164be501-36ac-4c06-ac80-266de3d3fc99-image.png
    ולא הצלחתי עד כה למצוא ספרייה שתצליח לזהות את המלל,
    לכן אני מבקש עזרה מכל המומחים פה מי שיכול לעזור תע"ב,
    נ"ב: אפשר גם לעשות סקריפט שרק יזהה אם קיים תיבת טקסט, ואם כן יעביר,
    לא משנה מה כתוב בה, כי רק בספרים שלהם יש תיבת טקסט בעמוד הראשון....

    @אביי @האדם-החושב @תכנות

    עריכה:
    בפוסט האחרון עדכנתי את הסקריפט, מי שרוצה יכול לדלג לשם,
    הוא ממין בצורה יסודית,
    רק אני מבקש עזרה ממי שיכול לקמפל אתו.

    sivan22S מנותק
    sivan22S מנותק
    sivan22
    כתב נערך לאחרונה על ידי
    #4

    @אלף-שין למה לא להשתמש פשוט בשם הקובץ? קבצים שיורדים מהיברובוקס מתחילים במילה hebrewbooks.

    א תגובה 1 תגובה אחרונה
    2
    • א אלף שין

      שלום רב
      לאחר עבודה הנני שמח לבשר על תחילתו של סקריפט למיון ספרים במחשב,
      המטרה היא שמי שהוריד הרבה ספרים מהיברו-בוקס יוכל למיין אותם בקלות ואוטומטית לתיקייה ייעודית,

      לכן כתבתי בס"ד סקריפט שבודק אם בעמוד הראשון או השני בקובץ מופיע W [הקישור לאתר שלהם]
      ואם אכן מוצא תו זה הוא מעביר מיד את הקובץ לתיקייה שנבחרה,
      להלן הסקריפט:

      import os
      import tkinter as tk
      from tkinter import filedialog
      import PyPDF2
      import re
      import shutil
      import threading
      from queue import Queue
      from pdfminer.high_level import extract_pages
      from pdfminer.layout import LAParams, LTTextBox, LTTextContainer
      
      class PDF_Sorter:
          def __init__(self, root):
              self.root = root
              self.root.title("PDF Sorter")
              self.create_gui()
      
          def create_gui(self):
              self.source_folder = tk.StringVar()
              self.dest_folder = tk.StringVar()
      
              frame = tk.Frame(self.root)
              frame.pack(fill="both", expand=True)
      
              tk.Label(frame, text="Source Folder:").pack()
              self.source_folder_entry = tk.Entry(frame, textvariable=self.source_folder, width=50)
              self.source_folder_entry.pack()
      
              tk.Button(frame, text="Browse", command=self.browse_source_folder).pack(side=tk.LEFT, padx=5, pady=5)
      
              tk.Label(frame, text="Destination Folder:").pack()
              self.dest_folder_entry = tk.Entry(frame, textvariable=self.dest_folder, width=50)
              self.dest_folder_entry.pack()
      
              tk.Button(frame, text="Browse", command=self.browse_dest_folder).pack(side=tk.LEFT, padx=5, pady=5)
      
              tk.Button(frame, text="Start", command=self.sort_pdfs).pack(padx=5, pady=5)
      
          def browse_source_folder(self):
              self.source_folder.set(filedialog.askdirectory())
      
          def browse_dest_folder(self):
              self.dest_folder.set(filedialog.askdirectory())
      
          def sort_pdfs(self):
              self.queue = Queue()
              for root, dirs, files in os.walk(self.source_folder.get()):
                  for file in files:
                      if file.endswith('.pdf'):
                          file_path = os.path.join(root, file)
                          self.queue.put((file_path, self.dest_folder.get()))
      
              self.worker_thread = threading.Thread(target=self.process_queued_pdfs)
              self.worker_thread.start()
              self.root.after(1000, self.worker_thread.join)
              print("PDF sorting complete")
      
          def process_queued_pdfs(self):
              while not self.queue.empty():
                  file_path, dest_folder = self.queue.get()
                  try:
                      with open(file_path, 'rb') as pdf_file:
                          pdf_reader = PyPDF2.PdfReader(pdf_file)
                          for i in range(min(2, len(pdf_reader.pages))):
                              text = pdf_reader.pages[i].extract_text()
                              if re.search(r'w|W', text, re.IGNORECASE) or re.search(r'\\\[]', text):
                                  shutil.copy(file_path, os.path.join(dest_folder, os.path.basename(file_path)))
                                  break
                  except Exception as e:
                      print(f"Error processing {file_path}: {e}")
      
      if __name__ == "__main__":
          root = tk.Tk()
          pdf_sorter = PDF_Sorter(root)
          root.mainloop()
      

      הבעיה היא שכ50% מהספרים של היברו בוקס,
      הסימן מים שלהם מופיע לא כמלל רגיל, אלא כמלל בתוך תיבת טקסט,
      164be501-36ac-4c06-ac80-266de3d3fc99-image.png
      ולא הצלחתי עד כה למצוא ספרייה שתצליח לזהות את המלל,
      לכן אני מבקש עזרה מכל המומחים פה מי שיכול לעזור תע"ב,
      נ"ב: אפשר גם לעשות סקריפט שרק יזהה אם קיים תיבת טקסט, ואם כן יעביר,
      לא משנה מה כתוב בה, כי רק בספרים שלהם יש תיבת טקסט בעמוד הראשון....

      @אביי @האדם-החושב @תכנות

      עריכה:
      בפוסט האחרון עדכנתי את הסקריפט, מי שרוצה יכול לדלג לשם,
      הוא ממין בצורה יסודית,
      רק אני מבקש עזרה ממי שיכול לקמפל אתו.

      mefateachM מנותק
      mefateachM מנותק
      mefateach
      מדריכים
      כתב נערך לאחרונה על ידי
      #5

      @אלף-שין אולי אפשר עם ocr

      Life is learning

      תגובה 1 תגובה אחרונה
      0
      • sivan22S sivan22

        @אלף-שין למה לא להשתמש פשוט בשם הקובץ? קבצים שיורדים מהיברובוקס מתחילים במילה hebrewbooks.

        א מנותק
        א מנותק
        אלף שין
        כתב נערך לאחרונה על ידי
        #6

        @sivan22
        יש לי כוננים מלאים בכמה עשרות אלפי ספרים רובם מהיברו בוקס,
        והשמות שלהם שונו לשמות האמיתיים,
        כעת אני צריך למיין הכל.....
        ולכן אין לי פתרון מלבד זה.

        @mefateach כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

        אולי אפשר עם ocr

        זה לא יהיה מדאי איטי?

        mefateachM תגובה 1 תגובה אחרונה
        0
        • א אלף שין

          @sivan22
          יש לי כוננים מלאים בכמה עשרות אלפי ספרים רובם מהיברו בוקס,
          והשמות שלהם שונו לשמות האמיתיים,
          כעת אני צריך למיין הכל.....
          ולכן אין לי פתרון מלבד זה.

          @mefateach כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

          אולי אפשר עם ocr

          זה לא יהיה מדאי איטי?

          mefateachM מנותק
          mefateachM מנותק
          mefateach
          מדריכים
          כתב נערך לאחרונה על ידי
          #7

          @אלף-שין אין לי מושג רק הצעתי רעיון, אמור להיות ספריות של בינה מלאכותית, ואם זה רק לזהות טקסט קבוע מסתבר שזה הרבה יותר פשוט (בעצם אם הבנתי נכון אתה אפילו לא צריך לזהות את הטקסט אלא רק לבדוק אם מפיע ה״תמונה״ הזאת במסמך)

          Life is learning

          א תגובה 1 תגובה אחרונה
          0
          • mefateachM mefateach

            @אלף-שין אין לי מושג רק הצעתי רעיון, אמור להיות ספריות של בינה מלאכותית, ואם זה רק לזהות טקסט קבוע מסתבר שזה הרבה יותר פשוט (בעצם אם הבנתי נכון אתה אפילו לא צריך לזהות את הטקסט אלא רק לבדוק אם מפיע ה״תמונה״ הזאת במסמך)

            א מנותק
            א מנותק
            אלף שין
            כתב נערך לאחרונה על ידי
            #8

            @mefateach
            תודה אכן אני רואה שצריך ללכת לכיוון של זיהוי אופטי,
            האם מישהו יוכל להדריך אותי,
            איזה ספריה צריך להוריד בשביל זיהוי כזה, [שיבדוק אם יש אות W בעמוד הראשון בכל קובץ]
            וכן מה לשנות בסקריפט?

            mefateachM תגובה 1 תגובה אחרונה
            1
            • א אלף שין

              @mefateach
              תודה אכן אני רואה שצריך ללכת לכיוון של זיהוי אופטי,
              האם מישהו יוכל להדריך אותי,
              איזה ספריה צריך להוריד בשביל זיהוי כזה, [שיבדוק אם יש אות W בעמוד הראשון בכל קובץ]
              וכן מה לשנות בסקריפט?

              mefateachM מנותק
              mefateachM מנותק
              mefateach
              מדריכים
              כתב נערך לאחרונה על ידי mefateach
              #9

              @אלף-שין תגגל על tensorflow
              אבל:
              @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

              למה לא להשתמש פשוט בשם הקובץ? קבצים שיורדים מהיברובוקס מתחילים במילה hebrewbooks.

              @אלף-שין

              Life is learning

              א 2 תגובות תגובה אחרונה
              0
              • mefateachM mefateach

                @אלף-שין תגגל על tensorflow
                אבל:
                @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                למה לא להשתמש פשוט בשם הקובץ? קבצים שיורדים מהיברובוקס מתחילים במילה hebrewbooks.

                @אלף-שין

                א מנותק
                א מנותק
                אלף שין
                כתב נערך לאחרונה על ידי
                #10

                @mefateach
                כבר כתבתי ששינו כבר את השמות לשמות האמיתיים,
                מדובר על 600 גיגה שאני צריך למיין.

                sivan22S תגובה 1 תגובה אחרונה
                1
                • א אלף שין

                  @mefateach
                  כבר כתבתי ששינו כבר את השמות לשמות האמיתיים,
                  מדובר על 600 גיגה שאני צריך למיין.

                  sivan22S מנותק
                  sivan22S מנותק
                  sivan22
                  כתב נערך לאחרונה על ידי sivan22
                  #11

                  @אלף-שין בשביל OCR תוכל להשתמש בtesseract. יש להם גם API לפייתון.
                  אבל אני מאמין שתוכל עם ספריה כמו PDFPY2 למצוא אם יש תיבת טקסט, כמו שהצעת, וזה יותר פשוט.

                  א תגובה 1 תגובה אחרונה
                  3
                  • sivan22S sivan22

                    @אלף-שין בשביל OCR תוכל להשתמש בtesseract. יש להם גם API לפייתון.
                    אבל אני מאמין שתוכל עם ספריה כמו PDFPY2 למצוא אם יש תיבת טקסט, כמו שהצעת, וזה יותר פשוט.

                    א מנותק
                    א מנותק
                    אלף שין
                    כתב נערך לאחרונה על ידי אלף שין
                    #12

                    @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                    אבל אני מאמין שתוכל עם ספריה כמו PDFPY2 למצוא אם יש תיבת טקסט, כמו שהצעת, וזה יותר פשוט.

                    ניסיתי קרוב ל40 פעם [עם כל מיני שינויים ותיקונים כל פעם] ולא הצלחתי.

                    @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                    בשביל OCR תוכל להשתמש בtesseract

                    אפשר להוריד באמצעות PIP?

                    יום חדש מתחילי 2 תגובות תגובה אחרונה
                    0
                    • א אלף שין

                      @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                      אבל אני מאמין שתוכל עם ספריה כמו PDFPY2 למצוא אם יש תיבת טקסט, כמו שהצעת, וזה יותר פשוט.

                      ניסיתי קרוב ל40 פעם [עם כל מיני שינויים ותיקונים כל פעם] ולא הצלחתי.

                      @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                      בשביל OCR תוכל להשתמש בtesseract

                      אפשר להוריד באמצעות PIP?

                      יום חדש מתחילי מנותק
                      יום חדש מתחילי מנותק
                      יום חדש מתחיל
                      כתב נערך לאחרונה על ידי יום חדש מתחיל
                      #13

                      @אלף-שין כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                      בשביל OCR תוכל להשתמש בtesseract

                      אפשר להוריד באמצעות PIP?

                      וודאי, רק תכתוב באותיות קטנות, ותשים לב כשאתה מעתיק לא להעתיק את ה-ב' שבתחילת המילה.

                      מחכים כבר מאוד להודעה הדרמטית שלך.........

                      תגובה 1 תגובה אחרונה
                      0
                      • mefateachM מנותק
                        mefateachM מנותק
                        mefateach
                        מדריכים
                        כתב נערך לאחרונה על ידי
                        #14

                        לא ממומלץ ocr זה הרבה יותר מורכב מאשר רק לזהות אם תמונה מסוימת קיימת בטוח יש מודולים שמזהים את זה תגגל

                        Life is learning

                        א תגובה 1 תגובה אחרונה
                        0
                        • mefateachM mefateach

                          לא ממומלץ ocr זה הרבה יותר מורכב מאשר רק לזהות אם תמונה מסוימת קיימת בטוח יש מודולים שמזהים את זה תגגל

                          א מנותק
                          א מנותק
                          אלף שין
                          כתב נערך לאחרונה על ידי
                          #15

                          @mefateach
                          הלוואי.

                          תגובה 1 תגובה אחרונה
                          0
                          • א אלף שין

                            @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                            אבל אני מאמין שתוכל עם ספריה כמו PDFPY2 למצוא אם יש תיבת טקסט, כמו שהצעת, וזה יותר פשוט.

                            ניסיתי קרוב ל40 פעם [עם כל מיני שינויים ותיקונים כל פעם] ולא הצלחתי.

                            @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                            בשביל OCR תוכל להשתמש בtesseract

                            אפשר להוריד באמצעות PIP?

                            יום חדש מתחילי מנותק
                            יום חדש מתחילי מנותק
                            יום חדש מתחיל
                            כתב נערך לאחרונה על ידי
                            #16

                            @אלף-שין כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                            ניסיתי קרוב ל40 פעם [עם כל מיני שינויים ותיקונים כל פעם] ולא הצלחתי.

                            אני מאמין שהוא התכוין לזה:

                            pip install PyPDF2
                            
                            א תגובה 1 תגובה אחרונה
                            0
                            • יום חדש מתחילי יום חדש מתחיל

                              @אלף-שין כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                              ניסיתי קרוב ל40 פעם [עם כל מיני שינויים ותיקונים כל פעם] ולא הצלחתי.

                              אני מאמין שהוא התכוין לזה:

                              pip install PyPDF2
                              
                              א מנותק
                              א מנותק
                              אלף שין
                              כתב נערך לאחרונה על ידי אלף שין
                              #17

                              @יום-חדש-מתחיל
                              הספריה הזאת PyPDF2 לא מזהה,
                              בדקתי בעשרות הגדרות שניסיתי.

                              יום חדש מתחילי 2 תגובות תגובה אחרונה
                              0
                              • mefateachM mefateach

                                @אלף-שין תגגל על tensorflow
                                אבל:
                                @sivan22 כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                                למה לא להשתמש פשוט בשם הקובץ? קבצים שיורדים מהיברובוקס מתחילים במילה hebrewbooks.

                                @אלף-שין

                                א מנותק
                                א מנותק
                                אלף שין
                                כתב נערך לאחרונה על ידי
                                #18

                                @mefateach כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                                @אלף-שין תגגל על tensorflow

                                לא, זה מדאי כבד לי,
                                אני צריך בסך הכל שיהיה חע סקריפט שעובד על קבצי הPDF
                                שהשקריפט לא זיהה בהם בעמוד הראשון את התו W,
                                במקרה כזה הסקריפט יעשה OCR לעמוד הראשון בלבד,
                                ואז יחפש אם יש את התו W.

                                תגובה 1 תגובה אחרונה
                                0
                                • א אלף שין

                                  @יום-חדש-מתחיל
                                  הספריה הזאת PyPDF2 לא מזהה,
                                  בדקתי בעשרות הגדרות שניסיתי.

                                  יום חדש מתחילי מנותק
                                  יום חדש מתחילי מנותק
                                  יום חדש מתחיל
                                  כתב נערך לאחרונה על ידי
                                  #19
                                  פוסט זה נמחק!
                                  תגובה 1 תגובה אחרונה
                                  0
                                  • א אלף שין

                                    @יום-חדש-מתחיל
                                    הספריה הזאת PyPDF2 לא מזהה,
                                    בדקתי בעשרות הגדרות שניסיתי.

                                    יום חדש מתחילי מנותק
                                    יום חדש מתחילי מנותק
                                    יום חדש מתחיל
                                    כתב נערך לאחרונה על ידי יום חדש מתחיל
                                    #20

                                    @אלף-שין כתב בשיתוף | שיתוף ובקשת עזרה, תוכנה למיון ספרים!:

                                    הספריה הזאת PyPDF2 לא מזהה

                                    https://pypi.org/project/PyPDF2/

                                    pip install PyPDF2
                                    

                                    עריכה: עכשיו אני רואה שהסקריפט שכתבת למעלה גם משתמש בספרי' הזו...

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • א אלף שין

                                      שלום רב
                                      לאחר עבודה הנני שמח לבשר על תחילתו של סקריפט למיון ספרים במחשב,
                                      המטרה היא שמי שהוריד הרבה ספרים מהיברו-בוקס יוכל למיין אותם בקלות ואוטומטית לתיקייה ייעודית,

                                      לכן כתבתי בס"ד סקריפט שבודק אם בעמוד הראשון או השני בקובץ מופיע W [הקישור לאתר שלהם]
                                      ואם אכן מוצא תו זה הוא מעביר מיד את הקובץ לתיקייה שנבחרה,
                                      להלן הסקריפט:

                                      import os
                                      import tkinter as tk
                                      from tkinter import filedialog
                                      import PyPDF2
                                      import re
                                      import shutil
                                      import threading
                                      from queue import Queue
                                      from pdfminer.high_level import extract_pages
                                      from pdfminer.layout import LAParams, LTTextBox, LTTextContainer
                                      
                                      class PDF_Sorter:
                                          def __init__(self, root):
                                              self.root = root
                                              self.root.title("PDF Sorter")
                                              self.create_gui()
                                      
                                          def create_gui(self):
                                              self.source_folder = tk.StringVar()
                                              self.dest_folder = tk.StringVar()
                                      
                                              frame = tk.Frame(self.root)
                                              frame.pack(fill="both", expand=True)
                                      
                                              tk.Label(frame, text="Source Folder:").pack()
                                              self.source_folder_entry = tk.Entry(frame, textvariable=self.source_folder, width=50)
                                              self.source_folder_entry.pack()
                                      
                                              tk.Button(frame, text="Browse", command=self.browse_source_folder).pack(side=tk.LEFT, padx=5, pady=5)
                                      
                                              tk.Label(frame, text="Destination Folder:").pack()
                                              self.dest_folder_entry = tk.Entry(frame, textvariable=self.dest_folder, width=50)
                                              self.dest_folder_entry.pack()
                                      
                                              tk.Button(frame, text="Browse", command=self.browse_dest_folder).pack(side=tk.LEFT, padx=5, pady=5)
                                      
                                              tk.Button(frame, text="Start", command=self.sort_pdfs).pack(padx=5, pady=5)
                                      
                                          def browse_source_folder(self):
                                              self.source_folder.set(filedialog.askdirectory())
                                      
                                          def browse_dest_folder(self):
                                              self.dest_folder.set(filedialog.askdirectory())
                                      
                                          def sort_pdfs(self):
                                              self.queue = Queue()
                                              for root, dirs, files in os.walk(self.source_folder.get()):
                                                  for file in files:
                                                      if file.endswith('.pdf'):
                                                          file_path = os.path.join(root, file)
                                                          self.queue.put((file_path, self.dest_folder.get()))
                                      
                                              self.worker_thread = threading.Thread(target=self.process_queued_pdfs)
                                              self.worker_thread.start()
                                              self.root.after(1000, self.worker_thread.join)
                                              print("PDF sorting complete")
                                      
                                          def process_queued_pdfs(self):
                                              while not self.queue.empty():
                                                  file_path, dest_folder = self.queue.get()
                                                  try:
                                                      with open(file_path, 'rb') as pdf_file:
                                                          pdf_reader = PyPDF2.PdfReader(pdf_file)
                                                          for i in range(min(2, len(pdf_reader.pages))):
                                                              text = pdf_reader.pages[i].extract_text()
                                                              if re.search(r'w|W', text, re.IGNORECASE) or re.search(r'\\\[]', text):
                                                                  shutil.copy(file_path, os.path.join(dest_folder, os.path.basename(file_path)))
                                                                  break
                                                  except Exception as e:
                                                      print(f"Error processing {file_path}: {e}")
                                      
                                      if __name__ == "__main__":
                                          root = tk.Tk()
                                          pdf_sorter = PDF_Sorter(root)
                                          root.mainloop()
                                      

                                      הבעיה היא שכ50% מהספרים של היברו בוקס,
                                      הסימן מים שלהם מופיע לא כמלל רגיל, אלא כמלל בתוך תיבת טקסט,
                                      164be501-36ac-4c06-ac80-266de3d3fc99-image.png
                                      ולא הצלחתי עד כה למצוא ספרייה שתצליח לזהות את המלל,
                                      לכן אני מבקש עזרה מכל המומחים פה מי שיכול לעזור תע"ב,
                                      נ"ב: אפשר גם לעשות סקריפט שרק יזהה אם קיים תיבת טקסט, ואם כן יעביר,
                                      לא משנה מה כתוב בה, כי רק בספרים שלהם יש תיבת טקסט בעמוד הראשון....

                                      @אביי @האדם-החושב @תכנות

                                      עריכה:
                                      בפוסט האחרון עדכנתי את הסקריפט, מי שרוצה יכול לדלג לשם,
                                      הוא ממין בצורה יסודית,
                                      רק אני מבקש עזרה ממי שיכול לקמפל אתו.

                                      yzahnY מנותק
                                      yzahnY מנותק
                                      yzahn
                                      עימוד
                                      כתב נערך לאחרונה על ידי yzahn
                                      #21

                                      @אלף-שין

                                      from pypdf import PdfReader
                                      
                                      def is_hebrew_books(file):
                                          reader = PdfReader(file)
                                          annotations = reader.pages[0].annotations
                                          for annotation in annotations:
                                              if annotation.get("/Subtype") == "/Link" and annotation.get("/A").get("/URI") == "http://www.hebrewbooks.org":
                                                  return True
                                          return False
                                      

                                      נ.ב. בדקתי רק על שני קבצים

                                      📧 | יוסי@יצ.קום

                                      א תגובה 1 תגובה אחרונה
                                      2
                                      • yzahnY yzahn

                                        @אלף-שין

                                        from pypdf import PdfReader
                                        
                                        def is_hebrew_books(file):
                                            reader = PdfReader(file)
                                            annotations = reader.pages[0].annotations
                                            for annotation in annotations:
                                                if annotation.get("/Subtype") == "/Link" and annotation.get("/A").get("/URI") == "http://www.hebrewbooks.org":
                                                    return True
                                            return False
                                        

                                        נ.ב. בדקתי רק על שני קבצים

                                        א מנותק
                                        א מנותק
                                        אלף שין
                                        כתב נערך לאחרונה על ידי אלף שין
                                        #22

                                        @yzahn
                                        כנראה התכוונת לזה:

                                        from PyPDF2 import PdfReader
                                        
                                        def is_hebrew_books(file):
                                            reader = PdfReader(file)
                                            try:
                                                annotations = reader.getOutlines()
                                            except:
                                                return False
                                        
                                            for item in annotations:
                                                if isinstance(item, dict):
                                                    if item.get('/URI', '').startswith('http://www.hebrewbooks.org'):
                                                        return True
                                        
                                            return False
                                        
                                        # Example usage:
                                        file_path = 'path_to_your_file.pdf'  # replace with your file path
                                        result = is_hebrew_books(file_path)
                                        
                                        if result:
                                            print("The PDF is a Hebrew book.")
                                        else:
                                            print("The PDF is not a Hebrew book.")
                                        

                                        אבל זה לא זיהה לי...
                                        צריך ספריית PDF מתקדמת יותר...

                                        yzahnY תגובה 1 תגובה אחרונה
                                        0
                                        • א אלף שין

                                          @yzahn
                                          כנראה התכוונת לזה:

                                          from PyPDF2 import PdfReader
                                          
                                          def is_hebrew_books(file):
                                              reader = PdfReader(file)
                                              try:
                                                  annotations = reader.getOutlines()
                                              except:
                                                  return False
                                          
                                              for item in annotations:
                                                  if isinstance(item, dict):
                                                      if item.get('/URI', '').startswith('http://www.hebrewbooks.org'):
                                                          return True
                                          
                                              return False
                                          
                                          # Example usage:
                                          file_path = 'path_to_your_file.pdf'  # replace with your file path
                                          result = is_hebrew_books(file_path)
                                          
                                          if result:
                                              print("The PDF is a Hebrew book.")
                                          else:
                                              print("The PDF is not a Hebrew book.")
                                          

                                          אבל זה לא זיהה לי...
                                          צריך ספריית PDF מתקדמת יותר...

                                          yzahnY מנותק
                                          yzahnY מנותק
                                          yzahn
                                          עימוד
                                          כתב נערך לאחרונה על ידי yzahn
                                          #23

                                          @אלף-שין השתמשתי בגירסה האחרונה של pypdf (בלי 2) זה אוחז כבר ב-4
                                          לא בדקתי מה המקביל ב-2

                                          📧 | יוסי@יצ.קום

                                          א תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר