Python

[파이썬] opendataloader-pdf를 활용한 PDF 변환: txt, json, html, markdown

weweGH 2025. 10. 26. 23:00
반응형

pdf 변환
pdf 변환


opendataloader-pdf를 활용한 PDF 변환: txt, json, html, markdown


들어가며


한컴에서 PDF를 TXT, JSON, HTML, 마크다운 Markdown 형태로 변환할 수 있는 기술을 오픈소스로 공개했습니다. 다양한 형태로 변환 가능하고, 빠르고 가볍다는 장점으로 RAG, 벡터 검색 등 AI 기술에 매우 유용하게 활용할 수 있습니다.

이 글에서는 opendataloader-pdf를 활용하여 PDF를 TXT, JSON, HTML, 마크다운 Markdown 형식으로 변환하는 방법을 소개합니다.

opendataloader-pdf에 대한 더 자세한 정보는 아래 링크를 참고해 주세요:)

 

OpenDataLoader

PDF Data loader for AI/ML datasets. Easily load, explore, and utilize various datasets.

opendataloader.org



패키지 설치


먼저, opendataloader-pdf를 위한 필수 조건은 다음과 같습니다.

Java 11 이상
Python 3.9 이상


위의 필수 조건을 갖췄다면, 다음 명령어를 활용하여 opendataloader-pdf 파이썬 패키지를 설치 후, import 합니다.

# pip install opendataloader-pdf

import opendataloader_pdf

PDF 파일 TXT 변환


PDF 파일을 TXT 파일로 변환하는 방법은 다음과 같습니다. format 옵션을 'text'로 설정합니다. 

opendataloader_pdf.convert(
    input_path=['TemplateEngineIngredientPDF.pdf'],
    output_dir='C:/Users/convert_pdf/',
    format=['text']
)

opendataloader-pdf의 주요 옵션은 다음과 같습니다.

◾ input_path: PDF 파일 혹은 PDF 파일 경로
◾ 
output_dir: 변환된 결과 파일을 저장할 경로
◾ password: 암호화된 PDF의 비밀번호
format: 변환 형식('json', 'html', 'text' 등)
◾ keep_line_breaks: 텍스트 출력 시 줄 바꿈 유지(Default: False)


TXT 파일로 변환한 결과는 다음과 같습니다. 다음 이미지와 같이 PDF 파일의 표 부분도 텍스트로 깔끔하게 변환된 것을 확인할 수 있습니다.

from pathlib import Path

pdf_to_text = Path('TemplateEngineIngredientPDF.txt').read_text()
print(pdf_to_text)

pdf to txt
pdf to txt

반응형

PDF 파일 JSON 변환


PDF 파일을 JSON 파일로 변환하는 방법은 다음과 같습니다. format 옵션을 'json'으로 설정합니다. 

opendataloader_pdf.convert(
    input_path=['TemplateEngineIngredientPDF.pdf'],
    output_dir='C:/Users/convert_pdf/',
    format=['json']
)

JSON 파일로 변환한 결과는 다음과 같습니다.

import json
from pathlib import Path

pdf_to_json = json.loads(Path('TemplateEngineIngredientPDF.json').read_text())
pdf_to_json

pdf to json
pdf to json


JSON 구조에 대한 주요 필드별 의미는 다음과 같습니다.

설명
'type': 'table cell' 이 객체가 '표의 셀'임을 의미
'page number': 1 PDF의 1 페이지에 위치
'bounding box': [ ] 셀의 좌표
'row number': 4 표의 4번째 행
'columns number': 2 표의 2번째 열
'kids': [ ] 이 셀 안에 포함된 하위 요소

PDF 파일 HTML 변환


PDF 파일을 HTML 파일로 변환하는 방법은 다음과 같습니다. format 옵션을 'html'로 설정합니다. 

opendataloader_pdf.convert(
    input_path=['TemplateEngineIngredientPDF.pdf'],
    output_dir='C:/Users/convert_pdf/',
    format=['html']
)

HTML 파일로 변환한 결과는 다음과 같습니다.

from pathlib import Path

pdf_to_html = Path('TemplateEngineIngredientPDF.html').read_text()
print(pdf_to_html)

pdf to html
pdf to html


PDF 파일 마크다운 Markdown 변환


PDF 파일을 마크다운 파일로 변환하는 방법은 다음과 같습니다. format 옵션을 'markdown'으로 설정합니다. 

opendataloader_pdf.convert(
    input_path=['TemplateEngineIngredientPDF.pdf'],
    output_dir='C:/Users/convert_pdf/',
    format=['markdown']
)

마크다운 파일로 변환한 결과는 다음과 같습니다.

from pathlib import Path

pdf_to_markdown = Path('TemplateEngineIngredientPDF.md').read_text()
print(pdf_to_markdown)

pdf to markdown
pdf to markdown


반응형