iTextSharp 라이브러리를 사용하여 PDF의 텍스트를 문자열로 읽으려고합니다..NET에서 PDF의 텍스트 읽기
iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(@"C:\mypdf.pdf");
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, strategy);
text = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
pdfReader.Close();
Console.WriteLine(text);
이것은 일반적으로 OK 작동하지만, 모든 몇 줄은 공백이 같은 출력으로 나를 떠나 생략한다 "thisismyoutputwithoutwhitespace". 올바르게 구문 분석 한 텍스트는 그렇지 않은 텍스트와 같습니다. 동일한 텍스트가 일관되게 부정확하게 파싱되어 PDF 내에서 뭔가있는 것으로 생각됩니다.
대단히 감사합니다! 이것은 매우 도움이됩니다. 그러나 IsChunkAtBounary()를 재정의 할 수 있습니까? 나는 "추상, 가상으로 표시되지 않기 때문에 무시할 수 없습니다.". 새로운 클래스 인 LocationTextExtractionStrategy를 확장하고 메서드를 재정의했습니다. –
이것은 Java에서 C#으로 이식하는 오류 인 것 같습니다. 이 문제가 다음 릴리스에서 수정되었는지 확인하겠습니다. 이 문제를 해결하려면 LocationTextExtractionStrategy 코드를 복사해야 완전히 새로운 ITextExtractionStrategy 인터페이스 구현을 효과적으로 생성 할 수 있습니다. 새 구현에서는 isChunkAtWordBoundary 메소드를 조정할 수 있습니다. 나는 가장 깨끗한 해결책이 아니라는 것을 안다. 나는 C#에 익숙하지 않다. 어쩌면 더 많은 C# 경험을 가진 사람이보다 우아한 해결책을 생각할 수 있습니다. – rhens
LocationTextExtractionStrategy 소스 코드를 사용할 수없는 경우 여기 (최신 버전)에서 찾을 수 있습니다. http://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/src/core/iTextSharp /text/pdf/parser/LocationTextExtractionStrategy.cs – rhens