# -*- coding: utf-8 -*- """ v2 API 테스트 - 마스터 JSON 기반 PDF 렌더링 """ import os import sys sys.path.insert(0, os.path.dirname(__file__)) from animal_med import AnimalMedRendererV2 def main(): print("=" * 60) print("동물약 복약안내 v2 API 테스트") print("=" * 60) renderer = AnimalMedRendererV2() # 마스터 약품 목록 print("\n[1] 마스터 약품 목록:") for drug in renderer.list_drugs(): print(f" {drug['product_id']} - {drug['name']} ({drug['category_display']})") # 테스트: 넥스가드 스펙트라 (구충제) + 아시카프 (NSAIDs) test_ids = ["MASTER-001", "MASTER-002"] print(f"\n[2] PDF 렌더링 ({len(test_ids)}개 약품)") for pid in test_ids: drug = renderer.get_drug(pid) if drug: 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, 'master_v2_test.pdf') print(f"\n[3] PDF 생성 중...") result = renderer.render_to_pdf( product_ids=test_ids, output_path=pdf_path, patient_name="이보호자", pet_name="콩이", pet_species="비숑프리제", pet_age="4세" ) 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()