문서(PDF, 워드 프로세싱, 웹 페이지 등)에서 텍스트 추출은 디지털 정보 세계에서 다양한 사용 사례를 가지고 있습니다. 예를 들어 문서 구문 분석, 텍스트 분석 수행, 정보 검색, 문서 내용을 데이터베이스에 저장하는 등의 작업에 사용할 수 있습니다. 범위를 좁히면 PDF는 디지털 정보를 유지하고 공유하는 데 가장 널리 사용되는 문서 형식 중 하나입니다. 이러한 인기는 PDF 문서를 정보의 거대한 소스로 만듭니다. 따라서 PDF 문서에서 텍스트를 구문 분석하거나 추출하는 작업은 여러 텍스트 분석 시나리오와 관련될 수 있습니다.
C++ 응용 프로그램에서 PDF 구문 분석을 자동화하기 위해 이 기사에서는 C++를 사용하여 PDF 문서에서 텍스트를 추출하는 방법을 보여줍니다. 다음 텍스트 추출 시나리오를 다룹니다.
- C++를 사용하여 PDF 문서에서 텍스트를 추출합니다.
- C++를 사용하여 PDF 문서의 특정 페이지에서 텍스트를 추출합니다.
- C++를 사용하여 PDF 문서에서 페이지별 텍스트 추출.
C++ PDF 리더 및 텍스트 추출기 라이브러리
PDF 문서에서 텍스트를 추출하기 위해 PDF 문서를 생성, 변환 및 구문 분석하기 위한 강력한 PDF 라이브러리인 Aspose.PDF for C++를 사용할 것입니다. 다운로드 섹션에서 실행 중인 코드 샘플과 라이브러리 파일을 다운로드할 수 있습니다.
C++를 사용하여 PDF에서 텍스트 추출
C++용 Aspose.PDF를 사용하면 몇 가지 간단한 단계로 PDF 문서를 구문 분석할 수 있습니다. 다음은 PDF 문서에서 텍스트를 추출하는 방법입니다.
- PdfExtractor 클래스의 개체를 만듭니다.
- PdfExtractor->BindPdf() 기능을 사용하여 PDF 문서를 로드합니다.
- PdfExtractor->ExtractText() 기능을 사용하여 PDF 문서에서 PdfExtractor로 텍스트를 추출합니다.
- 추출된 텍스트를 MemoryStream 객체에 저장합니다.
- MemoryStream에서 문자열로 텍스트를 읽습니다.
다음 코드 샘플은 C++를 사용하여 PDF에서 텍스트를 추출하는 방법을 보여줍니다.
auto extractor = MakeObject<Facades::PdfExtractor>();
// 소스 PDF 문서 바인딩
extractor->BindPdf(u"candy.pdf");
// PDF에서 PdfExtractor로 텍스트 추출
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// 메모리 스트림에 텍스트 저장
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// 추출된 텍스트 인쇄
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
C++를 사용하여 PDF의 특정 페이지에서 텍스트 추출
PDF의 몇 페이지에서만 텍스트를 추출해야 하는 경우가 있을 수 있습니다. 이러한 경우 시작 및 끝 페이지 번호를 설정하여 PDF의 페이지 범위를 지정할 수 있습니다. 다음은 PDF 문서의 특정 페이지에서 텍스트를 추출하는 단계입니다.
- PdfExtractor 클래스의 개체를 만듭니다.
- PdfExtractor->BindPdf() 기능을 사용하여 PDF 문서를 로드합니다.
- PdfExtractor->set_StartPage() 및 PdfExtractor->set_EndPage() 함수를 각각 사용하여 시작 및 끝 페이지 번호를 설정합니다.
- PdfExtractor->ExtractText() 함수를 사용하여 PDF에서 텍스트를 추출합니다.
- 추출된 텍스트를 MemoryStream 객체에 저장합니다.
- MemoryStream에서 문자열로 텍스트를 읽습니다.
다음 코드 샘플은 C++에서 PDF의 특정 페이지에서 텍스트를 추출하는 방법을 보여줍니다.
auto extractor = MakeObject<Facades::PdfExtractor>();
// 소스 PDF 문서 바인딩
extractor->BindPdf(u"candy.pdf");
// 페이지 범위 설정
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// PDF에서 PdfExtractor로 텍스트 추출
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// 메모리 스트림에 텍스트 저장
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// 추출된 텍스트 인쇄
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
C++의 PDF에서 페이지별 텍스트 추출
PDF 문서에서 모든 텍스트를 추출하는 대신 문서의 모든 페이지에서 개별적으로 텍스트를 추출할 수 있습니다. 다음은 PDF에서 페이지별 텍스트 추출을 수행하는 단계입니다.
- PdfExtractor 클래스의 개체를 만듭니다.
- PdfExtractor->BindPdf() 함수를 사용하여 PDF 문서를 로드합니다.
- PdfExtractor->ExtractText() 함수를 호출하여 PDF 문서에서 PdfExtractor로 텍스트를 검색합니다.
- PdfExtractor->HasNextPageText() 함수를 사용하여 모든 페이지를 반복합니다.
- PdfExtractor->GetNextPageText() 함수를 사용하여 메모리 스트림으로 텍스트를 추출합니다.
- 메모리 스트림에서 텍스트를 읽습니다.
다음 코드 샘플은 C++의 PDF에서 페이지별로 텍스트를 추출하는 방법을 보여줍니다.
auto extractor = MakeObject<Facades::PdfExtractor>();
// 소스 PDF 문서 바인딩
extractor->BindPdf(u"candy.pdf");
// PDF에서 PdfExtractor로 텍스트 추출
extractor->ExtractText();
auto unicode = System::Text::Encoding::get_Unicode();
int pageNumber = 1;
while (extractor->HasNextPageText())
{
auto memStream = MakeObject<IO::MemoryStream>();
extractor->GetNextPageText(memStream);
String text;
// StreamReader 생성자에서 유니코드 인코딩 유형 지정
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// 추출된 텍스트 인쇄
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
C++용 Aspose.PDF에 대해 자세히 알아보기
문서를 사용하여 C++용 Aspose.PDF에 대해 자세히 알아볼 수 있습니다.