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

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

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

חילוץ טקסט מ PDF

מתוזמן נעוץ נעול הועבר ארכיון code613m
17 פוסטים 5 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #1

    מישהו יודע איך לעשות את זה בצורה טובה?
    היכן יש מידע ברור איך קבצי PDF בנוים?
    פתחתי קובץ PDF בפנקס רשומות ויש שם כותרות מעין אלו:
    endstream
    endobj
    258 0 obj
    <</Filter/FlateDecode/Length 3493>>stream

    ובין הכותרות מידע בינארי. איפה אפשר ללמוד על כל זה?
    אגב מי שהתרשמתי ממנו שעשה עבודה טובה וחילץ את הטקסט מPDF בצורה מדוייקת כמו אקרובט זה אוצר החכמה הנה קישור להורדה חינמית שהם פירסמו:
    http://80.179.48.194/importpdf.zip
    שילוב של כמה שפות תיכנות.

    פורסם במקור בפורום CODE613 ב25/07/2013 21:13 (+03:00)

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

      לגבי חילוץ טקסט מpdf יש את הכלי xpdf זה בקוד פתוח. שאיתו אפשר לחלץ טקסט תמונות וכו'.

      זה גירסה לוינדוס
      http://gnuwin32.sourceforge.net/packages/xpdf.htm

      בגדול pdf בנוי מאובייקטים כמו שאתה יכול לראות.

      ואם אתה רוצה ללמוד את זה לעומק אז יש לזה תקן מסודר.

      http://www.adobe.com/devnet/pdf/pdf_reference.html

      פורסם במקור בפורום CODE613 ב25/07/2013 21:28 (+03:00)

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

        אם אתה יודע javascript.

        אז יש פרוייקטים פה https://npmjs.org/search?q=pdf

        שמפענחים pdf ע"י js טהור.

        פורסם במקור בפורום CODE613 ב25/07/2013 21:34 (+03:00)

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

          ניסיתי את XPDF אבל קיבלתי הודעת שגיאה שהוא לא תומך בגירסאות PDF מעל 1.4
          אני לא כותב (בנתיים) ב JS אבל האם אפשר לתקשר עם DLL המדובר של JS בדוט נט?

          פורסם במקור בפורום CODE613 ב25/07/2013 22:00 (+03:00)

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

            @רחמים

            ניסיתי את XPDF אבל קיבלתי הודעת שגיאה שהוא לא תומך בגירסאות PDF מעל 1.4
            אני לא כותב (בנתיים) ב JS אבל האם אפשר לתקשר עם DLL המדובר של JS בדוט נט?

            תחפש את הודעת שגיאה בגוגל לא סביר שהוא לא תומך בגירסאות יותר מעל 1.4

            פורסם במקור בפורום CODE613 ב25/07/2013 22:27 (+03:00)

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

              זו השגיאה:

              שגיאה.PNG

              מה לחפש ?

              פורסם במקור בפורום CODE613 ב25/07/2013 23:28 (+03:00)

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

                היה קשה למצוא pdf שיותר מ1.4 בסוף מצאתי אחד של 1.5

                ניסתי עליו במחשב שלי (יש לי לינוקס וזה מותקן בחבילות של המחשב) וזה עבד טוב.

                כנראה הלינק הקודם זה גירסה ישנה.

                זה נראה לי הכי חדש.
                http://www.foolabs.com/xpdf/download.html

                פורסם במקור בפורום CODE613 ב26/07/2013 09:34 (+03:00)

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

                  אני משתמש בitextsharp

                  הנה קוד בVB

                  Private Function ReadPdfFile(fileName As String) As String
                      Dim text As New StringBuilder()
                  
                      If File.Exists(fileName) Then
                          Dim pdfReader As New PdfReader(fileName)
                  
                          'For page As Integer = 1 To pdfReader.NumberOfPages
                          Dim strategy As parser.ITextExtractionStrategy = New parser.SimpleTextExtractionStrategy()
                          Dim currentText As String = parser.PdfTextExtractor.GetTextFromPage(pdfReader, 1, strategy)
                  
                          currentText = New String(currentText.Reverse().ToArray)
                          text.Append(currentText)
                          'Next
                          pdfReader.Close()
                      End If
                      Return text.ToString()
                  End Function
                  

                  פורסם במקור בפורום CODE613 ב26/07/2013 15:00 (+03:00)

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

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

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

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

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

                    Private Function ReadPdfFile2(fileName As String) As String
                            Dim text As New StringBuilder()
                    
                            If File.Exists(fileName) Then
                                Dim pdfReader As New pdf.PdfReader(fileName)
                                For page As Integer = 1 To pdfReader.NumberOfPages
                                    text.AppendLine(parser.PdfTextExtractor.GetHebTextFromPage(
                                            pdfReader, page) & vbCrLf)
                                Next
                                pdfReader.Close()
                            End If
                            Return text.ToString()
                    
                        End Function
                    

                    כמו שאתם רואים יש פה פונקציה חדשה שנקראת GetHebTextFromPage שלא קיימת בספריית ITEXT זו עוד פונקציה שהיתי צריך להוסיף

                    public static String GetHebTextFromPage(PdfReader reader, int pageNumber)
                            {
                                PdfReaderContentParser parser = new PdfReaderContentParser(reader);
                                return parser.ProcessContent(pageNumber, new LocationTextExtractionStrategy()).GetResultantHebText();
                            }
                    

                    ועוד פונקציה אחרונה חדשה

                    public string Reverse(string input)
                            {
                                char[] chars = input.ToCharArray();
                                Array.Reverse(chars);
                                return new String(chars);
                            }
                    
                            public virtual String GetResultantHebText()
                            {
                    
                                if (DUMP_STATE) DumpState();
                    
                                locationalResult.Sort();
                    
                                StringBuilder sb = new StringBuilder();
                                StringBuilder sb2 = new StringBuilder();
                                TextChunk lastChunk = null;
                                foreach (TextChunk chunk in locationalResult)
                                {
                                    if (lastChunk == null)
                                    {
                                        sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                                    }
                                    else
                                    {
                                        if (chunk.SameLine(lastChunk))
                                        {
                                            sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                                        }
                                        else
                                        {
                                            sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                                            sb.AppendLine(Reverse(sb2.ToString()));
                                            sb2 = new StringBuilder();
                                        }
                                    }
                                    lastChunk = chunk;
                                }
                                return sb.ToString();
                            }
                    

                    פורסם במקור בפורום CODE613 ב26/07/2013 16:28 (+03:00)

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

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

                      פורסם במקור בפורום CODE613 ב22/07/2014 20:54 (+03:00)

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

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

                        https://github.com/modesty/pdf2json

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

                        פורסם במקור בפורום CODE613 ב22/07/2014 22:02 (+03:00)

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

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

                          אם זה לא כטקסט אלא כפיקסלים אתה צריך להוציא אכן לפי מיקום.

                          פורסם במקור בפורום CODE613 ב23/07/2014 10:55 (+03:00)

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

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

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

                            @דוד ל.ט.

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

                            אם זה לא כטקסט אלא כפיקסלים אתה צריך להוציא אכן לפי מיקום.

                            אני מבין וחשבתי ע"ז יש שם מידע שהמחלקה של אייטקסט לא מזהה אותו וכנראה צריך OCR למזלי זה מידע של ספרות כך שאין צורך ב OCR עברי. חבל שאני לא יכול להעלות את הקובץ, מדובר במידע שמגיע ממשרדי ממשלה ונוגע לפרטיות של אנשים.... (לערוך את הקובץ PDF כדי לטשטש את המידע האישי צריך תוכנה, ואין לי את התוכנה לעריכת PDF זה צריך להגיע אלי בדואר רשום ממקסיקו עוד מאתיים שנה :lol: :lol: :lol: :lol: )

                            פורסם במקור בפורום CODE613 ב23/07/2014 17:41 (+03:00)

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

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

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

                              פורסם במקור בפורום CODE613 ב23/07/2014 18:32 (+03:00)

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

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

                                ראה כאן העלינו קוד שעובד מעולה ומחזיר DataTable.

                                פורסם במקור בפורום CODE613 ב25/11/2014 12:08 (+02:00)

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

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

                                  מעניין לעניין,

                                  ישנם הרבה PDF שנסגרו בתג ומתקבלים כגיבריש,

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

                                  פורסם במקור בפורום CODE613 ב22/10/2015 01:32 (+03:00)

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

                                    כדאי שתפתח על זה אשכול בפני עצמו

                                    פורסם במקור בפורום CODE613 ב22/10/2015 08:14 (+03:00)

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

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

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

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