PDF C++에서 텍스트 추출

문서(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 문서에서 텍스트를 추출하는 방법입니다.

다음 코드 샘플은 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 문서의 특정 페이지에서 텍스트를 추출하는 단계입니다.

다음 코드 샘플은 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에서 페이지별 텍스트 추출을 수행하는 단계입니다.

다음 코드 샘플은 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에 대해 자세히 알아볼 수 있습니다.

또한보십시오