feat: 마크다운 파서 추가 + 골든패턴 데이터 변환 (v1 - 개선 필요)
This commit is contained in:
77
test_real_data.py
Normal file
77
test_real_data.py
Normal file
@@ -0,0 +1,77 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
실제 마크다운 변환 데이터로 PDF 테스트
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from animal_med.renderer import AnimalMedRenderer
|
||||
|
||||
|
||||
def main():
|
||||
print("=" * 60)
|
||||
print("실제 동물약 데이터 PDF 테스트")
|
||||
print("=" * 60)
|
||||
|
||||
# 변환된 JSON 로드
|
||||
json_path = os.path.join(os.path.dirname(__file__), 'data', 'drugs_from_md.json')
|
||||
with open(json_path, 'r', encoding='utf-8') as f:
|
||||
drugs_list = json.load(f)
|
||||
|
||||
print(f"\n총 약품 수: {len(drugs_list)}")
|
||||
|
||||
# drugs 딕셔너리로 변환 (apc_code를 키로)
|
||||
drugs_dict = {drug['apc_code']: drug for drug in drugs_list}
|
||||
|
||||
# 렌더러 생성 (커스텀 데이터 사용)
|
||||
renderer = AnimalMedRenderer()
|
||||
renderer.drugs = drugs_dict # 데이터 교체
|
||||
|
||||
# 테스트할 약품 3개 선택
|
||||
test_codes = list(drugs_dict.keys())[:3]
|
||||
|
||||
print(f"\n테스트 약품:")
|
||||
for code in test_codes:
|
||||
drug = drugs_dict[code]
|
||||
print(f" - {drug['name']} ({drug['category']})")
|
||||
|
||||
# PDF 렌더링
|
||||
output_dir = os.path.join(os.path.dirname(__file__), 'output')
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
pdf_path = os.path.join(output_dir, 'real_data_test.pdf')
|
||||
|
||||
print(f"\n[PDF 렌더링 중...]")
|
||||
|
||||
result = renderer.render_to_pdf(
|
||||
apc_codes=test_codes,
|
||||
output_path=pdf_path,
|
||||
patient_name="박보호자",
|
||||
pet_name="몽이",
|
||||
pet_species="말티즈",
|
||||
pet_age="5세"
|
||||
)
|
||||
|
||||
if result['success']:
|
||||
print(f"✅ 성공!")
|
||||
print(f"📄 PDF: {result['pdf_path']}")
|
||||
print(f"약품: {', '.join(result['drugs'])}")
|
||||
|
||||
size = os.path.getsize(pdf_path)
|
||||
print(f"크기: {size / 1024:.1f} KB")
|
||||
|
||||
import fitz
|
||||
doc = fitz.open(pdf_path)
|
||||
print(f"페이지 수: {len(doc)}")
|
||||
doc.close()
|
||||
else:
|
||||
print(f"❌ 실패: {result.get('error')}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user