정보 추출에 대한 연구를하고 있으며 iText를 사용하고 싶습니다.iText를 이용한 PDF 텍스트 추출
iText를 탐색하는 중입니다. 우리가 검토 한 문헌에 따르면, iText는 사용할 수있는 최상의 도구입니다. iText에서 한 줄에 PDF 파일을 추출 할 수 있습니까? 나는 여기에 stackoverflow 내 질문에 게시물을 읽었지만 단지 그것을 추출하지 텍스트를 읽습니다. 아무도 내 문제를 도와 줄 수 있습니까? 고맙습니다.
정보 추출에 대한 연구를하고 있으며 iText를 사용하고 싶습니다.iText를 이용한 PDF 텍스트 추출
iText를 탐색하는 중입니다. 우리가 검토 한 문헌에 따르면, iText는 사용할 수있는 최상의 도구입니다. iText에서 한 줄에 PDF 파일을 추출 할 수 있습니까? 나는 여기에 stackoverflow 내 질문에 게시물을 읽었지만 단지 그것을 추출하지 텍스트를 읽습니다. 아무도 내 문제를 도와 줄 수 있습니까? 고맙습니다.
iText를 사용하면 텍스트 블록의 세밀도에 대한 보증은 없지만 문서를 만드는 데 사용되는 실제 PDF 렌더러에 따라 다릅니다.
각 단어 나 문자가 고유 한 텍스트 블록을 가질 가능성이 있습니다. 텍스트 블록을 좌표에 따라 재정렬해야 할 수도 있으므로 신뢰할 수있는 결과를 얻으려면 어휘 순서로 정렬 할 필요가 없습니다. 또한 텍스트 블록 사이에 공백을 삽입해야하는지 계산해야 할 수도 있습니다. 시어 도어처럼
당신이 PDF 파일에서 텍스트를 추출 할 수 있습니다 말했다 크리스처럼 오래는 텍스트 (안 윤곽 또는 비트 맵)
베스트 할 일이 살입니다 실제로으로
을 지적 Bruno Lowagie의 책 "Itext"실전. 두 번째 판에서 15 장은 텍스트 추출을 다루고 있습니다.하지만 그의 사이트에서 예제를 볼 수 있습니다. http://itextpdf.com/examples/iia.php?id=279
그리고 일반 txt 파일을 만들려면이 파일을 구문 분석 할 수 있습니다.
/* * This class is part of the book "iText in Action - 2nd Edition" * written by Bruno Lowagie (ISBN: 9781935182610) * For more info, go to: http://itextpdf.com/examples/ * This example only works with the AGPL version of iText. */ package part4.chapter15; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.parser.PdfReaderContentParser; import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy; import com.itextpdf.text.pdf.parser.TextExtractionStrategy; public class ExtractPageContent { /** The original PDF that will be parsed. */ public static final String PREFACE = "resources/pdfs/preface.pdf"; /** The resulting text file. */ public static final String RESULT = "results/part4/chapter15/preface.txt"; /** * Parses a PDF to a plain text file. * @param pdf the original PDF * @param txt the resulting text * @throws IOException */ public void parsePdf(String pdf, String txt) throws IOException { PdfReader reader = new PdfReader(pdf); PdfReaderContentParser parser = new PdfReaderContentParser(reader); PrintWriter out = new PrintWriter(new FileOutputStream(txt)); TextExtractionStrategy strategy; for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); out.println(strategy.getResultantText()); } reader.close(); out.flush(); out.close(); } /** * Main method. * @param args no arguments needed * @throws IOException */ public static void main(String[] args) throws IOException { new ExtractPageContent().parsePdf(PREFACE, RESULT); } }
주의 사항이 예는이 iText의 AGPL 버전에서 작동 라이센스
: 다음은 코드 예입니다.
다른 예제를 보면 텍스트 부분을 생략하는 방법이나 PDF의 일부를 추출하는 방법을 보여줍니다.
희망이 있습니다.
내가하는 일에 대해 완전히 명확하지 않습니다. 텍스트를 읽고 텍스트를 추출하는 것은 일반적으로 같은 것입니다. iText는 텍스트를 파일에 저장하지 않지만 일단 텍스트가 있으면 쉽게 처리 할 수 있습니다. iText는 실제로 텍스트 (윤곽선 또는 비트 맵이 아닌) 인 한 텍스트를 추출하는 작업을 훌륭하게 수행합니다. 이 사이트를 검색 할 때 iText의 .Net 포트 인'iTextSharp'를 찾으십시오. 그것은 더 많은 질문/답변을 가지고 있으며 코드는 C#과 거의 동일합니다. –