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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
43 פוסטים 9 כותבים 1.9k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    aaron
    השיב לyossiz ב נערך לאחרונה על ידי aaron
    #19

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

    פשוט לא נכון. הוצאת שם רע. סביר לטעון שיש טעיות בתכנון של powershell. אבל אל תנסה לטעון שיש טעויות טפשיות שכל מתחיל לא היה עושה.

    צודק, לא הבדלתי בכך שבמקרה הזה מדובר בקלט מstdout מה שאומר שהוא מסופק כשורות נפרדות ולא כטקסט רציף (עם \n)

    עריכה: אולי אין קשר..

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

    אפשר פשוט להשתמש בווינדוס ?
    בנוסף, מה לא טוב בזה?

    אילו היה וינדוס...
    ואני משתדל לא להתקין אף פעם ישירות מRPM\DEB. זה מתכון לחבילות לא מעודכנות.. (חוץ מחבילות שכשאתה מתקין הם גם מוסיפות את עצמם לריפו?)
    בכל מקרה, לא רואה סיבה "לזהם" את הסביבת עבודה כשיש דוקר פשוט וקל..

    aaron.tchumim@gmail.com
    Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

    ווצאפ API - תיעוד שירות API לא רשמי.

    תגובה 1 תגובה אחרונה
    0
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לyossiz ב נערך לאחרונה על ידי OdedDvir
      #20

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

      יש עדיין מה לשפר בסקריפט שכתבתי:

      אני לא מבין בPS אבל הנה השני סנט שלי:

      צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

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

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

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

      צריך לסנן תווים מיוחדים מתוך השם החדש הקובץ

      $Path.Split([IO.Path]::GetInvalidFileNameChars()) -join '_'
      

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

      ישר כח על העזרה @yossiz !

      מעלה ומורידמ תגובה 1 תגובה אחרונה
      7
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לyossiz ב נערך לאחרונה על ידי dovid
        #21

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

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

        אצלי אפילו האנגלית לא קריאה, רק המספרים

        מה הסיפור עם הקובץ? נוצרה מאותה תוכנה? הבנת למה אין טקסט?

        תוכנה לא מוכרת לי ממקום חיצוני (באופן קבוע).
        כעת בדקתי שוב, יאהוו כמה ניסיתי אז!
        הנה רשימה: PdfTextExtractor של iTextSharp, והספריות הבאות בנוד pdf.js-extract, pdf.js, pdf2json, pdfjs-dist, pdfreader.
        ובכן בשניים כעת בדקתי שוב, והם לא נותנים אפילו ספרה אחת.. כל הטקסט כזה 픀퐀혀ꀀ. אבל כלי שורת הפקודה שהבאת מביא תמיד את כל המספרים טוב, אבל הטקסט בלי utf-8 הוא ריק ועם הוא כזה:
        ╫¢╫ץ╫ש
        אני לא יכול לשתף שום מסמך מהסוג הזה, ולצערי לא יכול לייצר דוגמה כי אין לי מושג מי התוכנה המייצרת... אדובי רידר מבין את הטקסט נהדר.

        @מעלה-ומוריד תודה על הנושא, סליחה על הרכיבה על הנושא שאני עצמי לא סובל שאחרים עושים. הרשיתי לעצמי כי בעצם הפתרון ש@yossiz הביא מצויין, הבעיות שלו עם השם קובץ ועם הפעם השניה לדעתי לא באמת יטרידו אותך.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        מעלה ומורידמ yossizY 2 תגובות תגובה אחרונה
        6
        • מעלה ומורידמ מנותק
          מעלה ומורידמ מנותק
          מעלה ומוריד
          השיב לdovid ב נערך לאחרונה על ידי
          #22

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

          סליחה על הרכיבה

          בסגר דמור. אם המנהל ישאל אותי אני אגיד לו שלא ימחק אותך

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

          הבעיות שלו עם השם קובץ ועם הפעם השניה לדעתי לא באמת יטרידו אותך.

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

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

          yossizY תגובה 1 תגובה אחרונה
          6
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב למעלה ומוריד ב נערך לאחרונה על ידי
            #23

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

            הכריש שאתם רואים מלפני הקלעים. מאחוריהם הוא דג זהב שלא גומר לעזור לאנשים. ועד הסוף.

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

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

            תגובה 1 תגובה אחרונה
            8
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב לdovid ב נערך לאחרונה על ידי yossiz
              #24

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

              הנה רשימה: PdfTextExtractor של iTextSharp, והספריות הבאות בנוד pdf.js-extract, pdf.js, pdf2json, pdfjs-dist, pdfreader.

              מסתבר שיש לנו דרכי פעולה שונות...
              הדבר הראשון שהייתי עושה לפני נסיון דרך כל ספרייה שזזה הוא לפתוח את ה-PDF ברנטגן של PDF-ים.
              יש כמה תוכנות כאלו, התוכנה האהובה עלי כרגע הוא: https://pdfbox.apache.org/1.8/commandline.html#pdfdebugger
              ממש פותח צוהר לתוך המבנה של ה-PDF.
              כמובן שצריך להחזיק קרוב אליך את ה"מדריך למשתמש (המתקדם?)" של PDF. ספר בן 1300 עמודים...

              ובכן בשניים כעת בדקתי שוב, והם לא נותנים אפילו ספרה אחת.. כל הטקסט כזה 픀퐀혀ꀀ. אבל כלי שורת הפקודה שהבאת מביא תמיד את כל המספרים טוב, אבל הטקסט בלי utf-8 הוא ריק ועם הוא כזה:

              ╫¢╫ץ╫ש

              אם כן תריץ chcp 65001 לפני הפקודה ותמצא נחת. (עובד ב-CMD)
              או ב-powershell:

              [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
              

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

              dovidD תגובה 1 תגובה אחרונה
              6
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                השיב לyossiz ב נערך לאחרונה על ידי
                #25

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

                מסתבר שיש לנו דרכי פעולה שונות...

                ללא ספק...

                אם כן תריץ chcp 65001 לפני הפקודה ותמצא נחת. (עובד ב-CMD)
                או ב-powershell:

                [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
                

                אכן!! אבל למה בC# ובנוד לא הצלחתי בשום קידוד? מאה תודות!

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                yossizY תגובה 1 תגובה אחרונה
                5
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  השיב לdovid ב נערך לאחרונה על ידי
                  #26

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

                  אבל למה בC# ובנוד לא הצלחתי בשום קידוד

                  קשה לענות על זה בלי שתשתף קובץ

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

                  תגובה 1 תגובה אחרונה
                  4
                  • מעלה ומורידמ מנותק
                    מעלה ומורידמ מנותק
                    מעלה ומוריד
                    כתב ב נערך לאחרונה על ידי
                    #27

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

                    • צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

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

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

                    dovidD תגובה 1 תגובה אחרונה
                    2
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      השיב למעלה ומוריד ב נערך לאחרונה על ידי
                      #28

                      @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      מלאמ chvC 2 תגובות תגובה אחרונה
                      1
                      • מלאמ מנותק
                        מלאמ מנותק
                        מלא
                        השיב לdovid ב נערך לאחרונה על ידי מלא
                        #29

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

                        אפשר להוסיף מספור-רץ לשם הקובץ,
                        ועם המספור גם להגביל את הריצה לפי מספר הקבצים שהיו בהפעלה.

                        מעלה ומורידמ תגובה 1 תגובה אחרונה
                        1
                        • chvC מנותק
                          chvC מנותק
                          chv
                          השיב לdovid ב נערך לאחרונה על ידי
                          #30

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

                          @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

                          לא יותר פשוט rename?

                          בלוג | מייל

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

                            @dovid מעולה, תודה!
                            נקודה נוספת, בקובץ שהעליתי שם התורם "אנונימי אנונימי" אינו שם פרטי ומשפחה אלא כפילות, כך בכל המסמכים למשל "דוד מנהל דוד מנהל"
                            מה יש לשנות בשביל שהסקריפט ישלוף רק חצי?
                            מאה ואחת תודות!

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

                            תגובה 1 תגובה אחרונה
                            0
                            • מעלה ומורידמ מנותק
                              מעלה ומורידמ מנותק
                              מעלה ומוריד
                              השיב למלא ב נערך לאחרונה על ידי
                              #32

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

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

                              אפשר להוסיף מספור-רץ לשם הקובץ,
                              ועם המספור גם להגביל את הריצה לפי מספר הקבצים שהיו בהפעלה.

                              האם תוכל להכניס את זה בסקריפט?
                              בשבילי זה אפילו לא טורקית 😞

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

                              תגובה 1 תגובה אחרונה
                              0
                              • מעלה ומורידמ מנותק
                                מעלה ומורידמ מנותק
                                מעלה ומוריד
                                השיב לOdedDvir ב נערך לאחרונה על ידי
                                #33

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

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

                                יותר יעיל יהיה להוסיף לשם הקובץ גם את התאריך המופיע על הקבלה
                                (אפשר רק את הערך של היום, מכיוון שהתיקיות ממילא מחולקות לפי חודשים)

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

                                chvC תגובה 1 תגובה אחרונה
                                0
                                • chvC מנותק
                                  chvC מנותק
                                  chv
                                  השיב למעלה ומוריד ב נערך לאחרונה על ידי
                                  #34

                                  @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                                  בלוג | מייל

                                  ח מעלה ומורידמ 2 תגובות תגובה אחרונה
                                  2
                                  • ח מנותק
                                    ח מנותק
                                    חוקר
                                    השיב לchv ב נערך לאחרונה על ידי
                                    #35

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

                                    @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

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

                                    תגובה 1 תגובה אחרונה
                                    2
                                    • chvC מנותק
                                      chvC מנותק
                                      chv
                                      כתב ב נערך לאחרונה על ידי chv
                                      #36

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

                                      param([string]$path = '.')
                                      
                                      $pdftotext = "path to pdftotext"
                                      
                                      [Console]::OutputEncoding = [text.encoding]::utf8
                                      
                                      Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                                        $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9
                                        $donor = ($donor -split ' ' | Select-Object -Unique) -join ' '
                                        $datee = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4
                                        $datee = ($datee -split ' ' )[0].Substring(2, 2)
                                        $text = '{0}{1}{2}' -f $donor.Substring(2), ' ', $datee
                                        $counter = 1
                                        $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                                        while (Test-Path -Path $file) {
                                          $text = '{0}{1}{2}{3}({4})' -f $donor.Substring(2), ' ', $datee, ' ', $counter++
                                          $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                                        }
                                        $_ | Rename-Item -NewName "$($text).pdf"
                                      }
                                      

                                      צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                                      זה הקוד של @yossiz שערכתי קצת

                                      = עריכה =
                                      שכחתי לציין מה זה עושה:
                                      סורק את השם + התאריך. (את שם התורם אני מאחד - מוריד את הכפליות)
                                      משנה את שם הקובץ ל: שם התורם + תאריך היום בחודש בלבד.
                                      במקרה וכבר יש קובץ עם השם הזה - הוא משנה את השם ל:שם התורם וכו' + מספר (מתחיל מ-(1) והלאה לפי העניין).

                                      בלוג | מייל

                                      מעלה ומורידמ תגובה 1 תגובה אחרונה
                                      7
                                      • מעלה ומורידמ מנותק
                                        מעלה ומורידמ מנותק
                                        מעלה ומוריד
                                        השיב לchv ב נערך לאחרונה על ידי מעלה ומוריד
                                        #37

                                        @chv תודה ענקית!
                                        משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.
                                        כמו כן, עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.
                                        חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.
                                        הנה הפלט:

                                        Test-Path : Illegal characters in path.
                                        At C:\Users\This_user\Desktop\myscript.ps1:15 char:10
                                        +   while (Test-Path -Path $file) {
                                        +          ~~~~~~~~~~~~~~~~~~~~~
                                            + CategoryInfo          : InvalidArgument: (C:\Users\This_u...איר יערי 25.pdf:String) [Test-Path], ArgumentExcepti
                                           on
                                            + FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.TestPathCommand
                                        
                                        Rename-Item : Illegal characters in path.
                                        At C:\Users\This_user\Desktop\myscript.ps1:19 char:8
                                        +   $_ | Rename-Item -NewName "$($text).pdf"
                                        +        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            + CategoryInfo          : NotSpecified: (:) [Rename-Item], ArgumentException
                                            + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.RenameItemCommand
                                        
                                        

                                        וזה, סתם פיקנטריה:

                                        צריך : The term 'צריך' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
                                        the spelling of the name, or if a path was included, verify that the path is correct and try again.
                                        At C:\Users\This_user\Desktop\myscript.ps1:21 char:1
                                        + צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                                        + ~~~~
                                            + CategoryInfo          : ObjectNotFound: (צריך:String) [], CommandNotFoundException
                                            + FullyQualifiedErrorId : CommandNotFoundException
                                        
                                        

                                        🙂

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

                                        chvC תגובה 1 תגובה אחרונה
                                        1
                                        • מעלה ומורידמ מנותק
                                          מעלה ומורידמ מנותק
                                          מעלה ומוריד
                                          השיב לchv ב נערך לאחרונה על ידי מעלה ומוריד
                                          #38

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

                                          @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

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

                                          d4b34ec3-ccdb-4b81-b801-10585a2f4e00-image.png

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

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

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

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

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