# -*- 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()