동적 콘텐츠가 포함된 Word 문서를 만들고 프로세스를 자동화해야 합니까? python-docx-template
라이브러리를 갖춘 Python은 효율적인 솔루션을 제공합니다. 이 튜토리얼에서는 수동으로 업데이트할 필요 없이 Word 문서를 동적으로 생성하는 방법을 보여줍니다.
송장 예시를 들어 설명해 보겠습니다. API의 데이터를 처리할 때 송장 데이터를 수동으로 업데이트하는 것은 지루하고 비실용적입니다. 다이내믹 제너레이션이 이를 해결해 드립니다.
Word 문서 템플릿을 고려해 보세요.
회사 세부정보 및 품목 목록은 자주 변경됩니다. 동적 생성은 이러한 가변성을 처리합니다.
이를 달성하려면 Jinja2 호환성을 위해 템플릿을 수정하세요. Jinja2의 템플릿 기능(조건부 렌더링, 반복)은 제공된 데이터를 기반으로 동적 채우기를 가능하게 합니다.
Jinja2 호환 템플릿은 다음과 같습니다.
Jinja2 구문(예: {% if %}
및 {% for %}
)은 처음에는 복잡해 보일 수 있지만 강력한 제어 기능을 제공합니다. {{ }}
내의 표현식은 런타임 시 채워지는 변수를 나타냅니다. 예를 들어 {% if items %}
은 테이블 행을 렌더링하기 전에 items
변수가 존재하는지 확인합니다. {% for item in items %}
은 items
목록을 반복하여 각 항목에 대한 행을 생성합니다.
이제 Python을 사용하여 템플릿을 렌더링하기 위한 FastAPI 서버를 만들어 보겠습니다.
가상 환경 만들기:
<code class="language-bash">pip3 install virtualenv virtualenv -p python3 venv source venv/bin/activate</code>
라이브러리 설치:
<code class="language-bash">pip install "fastapi[standard]" docx docxtpl pydantic requests</code>
생성 main.py
: 기본 FastAPI 엔드포인트로 시작:
<code class="language-python">from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"}</code>
localhost:8000
에 액세스하면 {"Hello": "World"}
이 반환되어야 합니다.
Jinja2 템플릿 가져오기: 수정된 invoice_tpl.docx
을 프로젝트 루트에 배치하세요.
Enhance main.py
: 다음 코드는 템플릿 렌더링, 이미지 가져오기 및 총액 계산을 처리합니다.
<code class="language-bash">pip3 install virtualenv virtualenv -p python3 venv source venv/bin/activate</code>
엔드포인트 테스트: JSON 페이로드(원본 텍스트의 예와 유사)를 /
엔드포인트
출력 예: (원본 텍스트의 이미지가 여기에 포함됩니다)
결론: 이 튜토리얼에서는 python-docx-template
및 FastAPI를 사용한 동적 Word 문서 생성을 보여줍니다. Jinja2와 FastAPI의 조합은 문서 생성을 자동화하는 유연한 시스템을 만듭니다. 향후 블로그 게시물(2부)에서 PDF 생성을 다룰 예정입니다.
저장소: https://www.php.cn/link/1df146af0948a68b1342ce39907668fe
Husein Kantarci 팔로우:
자리 표시자 이미지 URL을 실제 이미지 URL로 바꿔야 합니다. 또한 코드에서는 원래 예제와 같이 필요한 데이터 모델(Company, BankInformation, Item, VatInformation, InvoiceContext)이 정의되어 있다고 가정합니다.
위 내용은 Python 및 FastAPI를 사용하여 Word 문서 생성 자동화(python-docx-template 사용)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!