PDF 파일에서 일반 텍스트를 추출하는 것은 데이터 분석, 검색 인덱싱 및 콘텐츠 마이그레이션에 자주 필요한 작업입니다.
Aspose.PDF for Python via .NET는 강력한 SDK를 제공하여 Python에서 PDF를 TXT로 쉽게 변환할 수 있게 해줍니다.
이 가이드에서는 라이브러리를 설정하는 방법, 전체 코드 예제를 단계별로 살펴보는 방법, 구성 옵션을 탐색하는 방법, 그리고 효율적이고 신뢰할 수 있는 텍스트 추출을 위한 모범 사례를 적용하는 방법을 배웁니다.
Python에서 PDF 텍스트 추출 단계
- Aspose.PDF SDK 설치: pip를 사용하여 라이브러리를 환경에 추가합니다.
pip install aspose-pdf
- 필요한 클래스 가져오기: 스크립트에 Document와 TextAbsorber 클래스를 포함합니다.
import aspose.pdf as ap
- PDF 문서 로드: 소스 파일을 가리키는 Document 객체를 생성합니다.
doc = ap.Document("sample.pdf")
- TextAbsorber로 텍스트 추출: TextAbsorber를 초기화하고, 모든 페이지를 처리하도록 하며, 텍스트를 가져옵니다.
absorber = ap.TextAbsorber()
doc.pages.accept(absorber)
extracted_text = absorber.text
TextAbsorber 클래스는 인코딩 및 레이아웃 보존을 위한 속성을 제공합니다.
- 추출된 텍스트를 TXT 파일에 저장: 특수 문자를 그대로 유지하기 위해 UTF‑8 인코딩으로 문자열을 디스크에 씁니다.
with open("output.txt", "w", encoding="utf-8") as txt_file:
txt_file.write(extracted_text)
Aspose.PDF를 사용하여 PDF를 TXT로 변환 - 전체 코드 예제
다음 예제는 최소한의 엔드‑투‑엔드 구현을 보여주며, 이를 귀하의 프로젝트에 맞게 적용할 수 있습니다.
import aspose.pdf as ap
def convert_pdf_to_txt(input_path: str, output_path: str):
# Load the PDF document
document = ap.Document(input_path)
# Create a TextAbsorber to extract text
absorber = ap.TextAbsorber()
document.pages.accept(absorber)
# Retrieve the extracted text
text = absorber.text
# Write the text to a .txt file using UTF‑8 encoding
with open(output_path, "w", encoding="utf-8") as file:
file.write(text)
if __name__ == "__main__":
# Example usage
convert_pdf_to_txt("sample.pdf", "sample.txt")
참고: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로(
sample.pdf,sample.txt)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 다음 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.
설치 및 구성 Aspose.PDF for Python via .NET
SDK는 PyPI 패키지로 배포됩니다. 공식 저장소에서 최신 릴리스를 다운로드하고 pip으로 설치하십시오.
pip install aspose-pdf
또한 휠을 직접 다운로드 페이지에서 다운로드할 수 있습니다. 라이브러리는 Python 3.6 이상과 프로덕션 사용을 위한 유효한 Aspose 라이선스가 필요합니다.
PDF를 TXT로 변환하기 위한 추출 옵션 구성
다음 속성을 조정하여 추출 프로세스를 미세 조정하십시오:
- Encoding - 특정 문자 집합을 처리하려면
absorber.text_encoding을 설정하십시오.
absorber.text_encoding = "utf-8"
- Page Range - 페이지 추출을 성능 향상을 위해 페이지 하위 집합으로 제한합니다.
absorber.page_start = 1
absorber.page_end = 5
- 레이아웃 보존 - 열 구조를 유지하려면 레이아웃 보존과 함께
absorber.extract_text를 활성화하십시오.
absorber.extract_text = True
이 옵션들은 API 참조의 TextAbsorber 클래스의 일부입니다.
Python에서 PDF를 TXT로 변환하기 위한 모범 사례
- Process Large PDFs Incrementally - 페이지를 전체 문서를 메모리에 로드하지 않고 배치 단위로 추출합니다.
- Use UTF‑8 Encoding - 특히 다국어 PDF의 경우 문자 손실을 방지하기 위해 항상 UTF‑8로 출력 파일을 작성합니다.
- Validate Input Files - 추출하기 전에 PDF가 비밀번호로 보호되어 있지 않은지 확인하고, 필요하면
PdfPasswordException을 처리합니다. - Dispose Resources - Python의 가비지 컬렉터가 대부분의 객체를 처리하지만, 작업이 끝난 후 파일 스트림을 명시적으로 닫습니다.
- Log Extraction Results - 디버깅 및 모니터링을 위해 처리된 페이지 수와 경고를 기록합니다.
결론
Python에서 PDF를 TXT로 변환하는 작업은 Aspose.PDF for Python via .NET을 사용하면 간단해집니다. SDK는 복잡한 레이아웃, 유니코드 문자 및 대용량 문서를 처리하면서 API를 통해 세밀한 제어를 제공합니다. 패키지를 설치하고 단계별 가이드를 따르면, 어떤 Python 애플리케이션에도 신뢰할 수 있는 텍스트 추출을 통합할 수 있습니다. 프로덕션 사용을 위해 적절한 라이선스를 확보해야 하며, 옵션을 확인하려면 가격 페이지를 검토하고, SDK를 평가하기 위해 임시 라이선스를 얻을 수 있습니다.
자주 묻는 질문
How can I convert PDF to TXT in Python using Aspose.PDF?
Document 클래스를 사용하여 PDF를 로드하고, TextAbsorber를 적용하여 텍스트를 캡처한 다음, absorber.text를 .TXT 파일에 기록합니다. 위의 전체 코드 예제가 이 워크플로를 보여줍니다.PDF에 이미지나 스캔된 페이지가 포함되어 있으면 어떻게 되나요?
TextAbsorber는 선택 가능한 텍스트만 추출합니다. 스캔된 PDF의 경우, 추출 전에 OCR을 수행하기 위해 Aspose.PDF와 Aspose.OCR for Python via .NET를 결합하십시오.한 번에 여러 PDF를 일괄 변환할 수 있나요?
예. 변환 로직을 파일 경로 목록을 반복하는 루프 안에 배치하십시오. 각 문서에 필요에 따라 TextAbsorber 설정을 조정하십시오.상업 프로젝트에 라이선스가 필요합니까?
생산 배포를 위해서는 Aspose.PDF for Python via .NET의 라이선스 버전이 필요합니다. 테스트를 위한 임시 라이선스가 제공되며, 자세한 가격 정보는 가격 페이지에서 확인할 수 있습니다.
