2016-08-06 20 views
7

Jestem obecnie próbuje odczytać tekst z pliku PDF za pomocą iTextSharp stosując poniższy kod i przypisanie do pola tekstowego (multiline) - (Windows Desktop App)Czytaj matematyczne równanie przy użyciu iTextSharp

Uwaga: Ten kod działa poprawnie .

public string ReadPdfFile(string fileName) 
     { 
      StringBuilder text = new StringBuilder(); 

      if (File.Exists(fileName)) 
      { 
       PdfReader pdfReader = new PdfReader(fileName); 

       for (int page = 1; page <= pdfReader.NumberOfPages; page++) 
       { 
        ITextExtractionStrategy strategy = new LocationTextExtractionStrategy(); 
        string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); 

        currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText))); 
        text.Append(currentText); 
       } 
       pdfReader.Close(); 
      } 
      return text.ToString(); 
     } 

ale mój plik pdf ma równanie

enter image description here

i wszystko Dostaję jest wyjście follwing

enter image description here

co można dodać, aby osiągnąć następujący tekst? Wszelka pomoc byłaby naprawdę doceniona!

+0

Podniosłem to pytanie, ponieważ uważam to za interesujące, ale myślę, że to będzie naprawdę, bardzo trudne. W jaki sposób powstał plik pdf? Czy możesz to udostępnić? –

+4

Jakiego rodzaju wyników masz nadzieję? Twoja ekspresja matematyczna nie może być wyrażona w Podstawowej płaszczyźnie wielojęzycznej. – usr2564301

+0

@amedeevangasse Cóż, to całkiem proste. Sprawdź oprogramowanie lateksowe! Musisz włączyć tryb matematyczny, wprowadzić równania i daje wynik w formacie pdf. –

Odpowiedz

1

Użyłem itextsharp i jestem w 100% pewien, że nie jest to możliwe. Problem dotyczy samego formatu pdf. Nie zawiera żadnych tagów odwołujących się do jakiegoś tekstu. Plik PDF zawiera określoną graficzną reprezentację treści, która ma swoje położenie na stronie pdf. Bez OCR nawet niemożliwe do wykrycia pogrubiony tekst. Pdf nie jest dobrym formatem do parsowania.

Mój problem był jeszcze łatwiejszy niż twój i to było piekło przeczytać z pdf. To był tylko tekst, ale został sformułowany jako 2 strony w jednym (2 kolumny tekstu). Itextsharp odczytuje zawartość według współrzędnych, więc mój tekst został pomieszany, gdy czytał pierwszy wiersz pierwszej kolumny niż pierwszy wiersz drugiej kolumny (nie jako przepływy tekstu). Podobnie jak w przypadku lateksu, po konwersji kodu lateksu na pdf nie ma odwrotności kodu lateksu.

Powiązane problemy