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

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

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

חילוץ טקסט מ PDF

מתוזמן נעוץ נעול הועבר ארכיון code613m
17 פוסטים 5 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
                            • דף הבית
                            • קטגוריות
                            • פוסטים אחרונים
                            • משתמשים
                            • חיפוש
                            • חוקי הפורום