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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך

עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך

מתוזמן נעוץ נעול הועבר תכנות
43 פוסטים 9 כותבים 1.9k צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chvC chv

    @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.

    אני לא הצלחתי להבין איך אמורים ליישם את מה שהוא הביא שם.
    אדרבא מי שמבין שיכתוב.

    @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.

    ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).
    יש לך גיבוי לכל מה שאתה עושה, ברור?

    @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.

    מאוד שמח שעזרתי

    (בתכלס זה קוד שיוסי כתב, הכנסתי קצת מניפולציות על הטקסט)

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

    @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).

    לא ממש הבנתי למה הוא נותן מספור גם לקבצים שאינם כפולים. (וכמו שכתבתי, זה קורה בשלב ב', קודם הוא משנה את השם לכולם, ואח"כ מוסיף מספרים.

    יש לך גיבוי לכל מה שאתה עושה, ברור?

    בוודאי 🙂

    מנע בזבוז זמן, זכה את הרבים!

    yossizY תגובה 1 תגובה אחרונה
    1
    • מעלה ומורידמ מעלה ומוריד

      @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

      ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).

      לא ממש הבנתי למה הוא נותן מספור גם לקבצים שאינם כפולים. (וכמו שכתבתי, זה קורה בשלב ב', קודם הוא משנה את השם לכולם, ואח"כ מוסיף מספרים.

      יש לך גיבוי לכל מה שאתה עושה, ברור?

      בוודאי 🙂

      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי yossiz
      #42

      @מעלה-ומוריד

      param([string]$path = '.')
       
      $pdftotext = "C:\path\to\PdfToText.exe"
       
      [Console]::OutputEncoding = [text.encoding]::utf8
       
      Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
        if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
          $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
          $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
          $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
          $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
          $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
          $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
          $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
          $date = $date -replace '/', '_'
          $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
          $_ | Rename-Item -NewName $filename
        }
      }
      

      עדכן אותנו אם עדיין יש שגיאות.
      הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
      מימשתי את הצעותיו המעולות של @OdedDvir

      לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

      לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

      ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

      ולמדתי קצת powershell על הדרך.

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      מעלה ומורידמ תגובה 1 תגובה אחרונה
      8
      • yossizY yossiz

        @מעלה-ומוריד

        param([string]$path = '.')
         
        $pdftotext = "C:\path\to\PdfToText.exe"
         
        [Console]::OutputEncoding = [text.encoding]::utf8
         
        Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
          if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
            $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
            $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
            $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
            $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
            $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
            $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
            $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
            $date = $date -replace '/', '_'
            $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
            $_ | Rename-Item -NewName $filename
          }
        }
        

        עדכן אותנו אם עדיין יש שגיאות.
        הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
        מימשתי את הצעותיו המעולות של @OdedDvir

        לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

        לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

        ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

        ולמדתי קצת powershell על הדרך.

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

        @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

        @מעלה-ומוריד

        param([string]$path = '.')
         
        $pdftotext = "C:\path\to\PdfToText.exe"
         
        [Console]::OutputEncoding = [text.encoding]::utf8
         
        Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
          if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
            $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
            $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
            $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
            $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
            $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
            $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
            $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
            $date = $date -replace '/', '_'
            $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
            $_ | Rename-Item -NewName $filename
          }
        }
        

        עדכן אותנו אם עדיין יש שגיאות.
        הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
        מימשתי את הצעותיו המעולות של @OdedDvir

        לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

        לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

        ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

        ולמדתי קצת powershell על הדרך.

        נהדר! פצצה!
        גם השארת השם המקורי חשובה מצד עצמה.
        יישר כח גדול מאוד. לא ראיתי באופק דרך להתמודד עם 1424 קבלות. זה פשוט ישועה.

        ולמדתי הרבה על מידות טובות ונתינה על הדרך.

        @chv
        @yossiz

        מנע בזבוז זמן, זכה את הרבים!

        תגובה 1 תגובה אחרונה
        5
        • dovidD dovid העביר נושא זה מ-תכנות ב-
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


        • 1
        • 2
        • 3
        בא תתחבר לדף היומי!
        • התחברות

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

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