HTML 보고서, 인보이스 또는 포털 페이지를 생성하고 대량의 PDF가 필요하다면, 핵심 요구 사항은 기계마다 동일한 출력물을 반복해서 생성할 수 있는 것입니다. 이 단계별 가이드는 Aspose.HTML for Python via .NET를 사용하여 Python에서 여러 HTML 파일을 PDF로 일괄 변환하는 방법을 보여줍니다. 폴더 기반 변환기를 구축한 다음, SVG가 많이 포함된 페이지와 임베디드 폰트를 확장하여 일관된 렌더링을 구현하게 됩니다.

HTML을 PDF 배치 변환에 Aspose.HTML을 사용하는 이유?

Aspose.HTML for .NET은 파일이나 URL에서 HTML 콘텐츠를 로드하고 렌더링 옵션을 세밀하게 제어하면서 PDF로 내보낼 수 있는 문서 렌더링 API입니다. 배치 변환 시나리오에서 주요 이점은 다음과 같습니다.

  • 브라우저 자동화 없이 신뢰할 수 있는 렌더링
  • 페이지 크기, 여백 및 배경 렌더링과 같은 PDF 옵션 제어
  • 서버 환경에서 예측 가능한 실행
  • 다수의 변환에 걸쳐 글꼴 및 리소스를 표준화하는 기능

Python에서 여러 HTML 파일을 PDF로 일괄 변환 — 단계별

1단계: 환경 설정

배포 환경에 맞는 .NET 런타임과 Python이 필요합니다. 서버에서 변환을 실행할 계획이라면 동일한 런타임을 해당 서버에도 설치하십시오.

Aspose.HTML for Python via .NET 설치

실행:

pip install aspose-html-net

가상 환경을 사용하는 경우:

python -m venv .venv
.venv\Scripts\activate
pip install aspose-html-net

2단계: 입력 및 출력 폴더 만들기 (선택 사항)

프로젝트 디렉터리에 두 개의 폴더를 만듭니다:

  • input_html은 HTML 파일 및 자산에 사용됩니다
  • output_pdf는 생성된 PDF에 사용됩니다

신뢰할 수 있는 자산 해상을 위한 권장 구조:

  • input_html

  • report1.html

    • report2.html
    • styles
  • site.css

    • images
  • logo.png

    • 글꼴
  • Inter Regular.ttf

CSS, 이미지 및 폰트를 동일한 루트에 보관하여 상대 경로가 일관되게 작동하도록 하세요.

3단계: 배치 변환 스크립트 작성

이 스크립트는 입력 폴더를 스캔하여 .html.htm 파일을 찾고, 각 파일을 출력 폴더 아래 동일한 상대 경로를 가진 PDF로 변환합니다. 또한 파일별 성공 및 실패를 로그에 기록합니다.

코드 예제: HTML 파일 폴더를 PDF로 일괄 변환

이 섹션은 엔터프라이즈 자동화에 사용되는 기본 배치 패턴을 구현합니다. HTML 파일을 열거하고, 결정론적 출력 경로를 생성하며, 각 문서를 변환하고, 모니터링 및 재실행을 위해 저장할 수 있는 요약 보고서를 반환합니다.

아래 단계를 따르세요:

  1. 입력 및 출력 폴더를 설정합니다.
  2. 모든 HTML 파일을 열거합니다.
  3. 각 HTML 문서를 로드합니다.
  4. 각 문서를 PDF로 변환합니다.
  5. 결정적인 이름으로 PDF를 저장합니다.

이 코드 예제는 Aspose.HTML for Python via .NET을 사용하여 HTML 파일 컬렉션을 PDF로 변환하는 방법을 보여줍니다.

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로(input, output 등)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 뒤 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 문서 또는 지원 팀에 문의하십시오.

4단계: 변환기를 실행하고 출력 확인

실행:

python batch_html_to_pdf.py

확인:

  • PDFs는 output에 생성됩니다
  • 폴더 구조가 input과 동일합니다
  • 레이아웃이 기대에 부합합니다
  • CSS와 이미지가 올바르게 표시됩니다

CSS가 누락된 경우, Fix Missing CSS, Images, and Broken Relative Paths 섹션으로 이동하십시오. 이는 거의 항상 경로나 자산 패키징 문제이기 때문입니다.


글꼴을 포함하여 글꼴 렌더링을 일관되게 만들기

청구서나 규정 문서를 생성하는 경우, 글꼴 대체가 줄 바꿈 및 페이지 매김을 변경할 수 있습니다. 가장 신뢰할 수 있는 해결책은 템플릿에 글꼴을 포함하고 CSS를 사용하여 로드하는 것입니다.

코드 예제: 임베디드 폰트가 포함된 HTML을 PDF로 변환

이 섹션은 템플릿 패키징에 중점을 둡니다. 변환 코드는 동일하게 유지됩니다. 상대 경로를 사용하여 CSS @font-face 로 글꼴을 포함합니다.

아래 단계에 따라 진행하십시오:

  1. 필요한 글꼴을 접근 가능한 폴더에 배치합니다.
  2. CSS의 font-face 규칙을 사용하여 글꼴을 참조합니다.
  3. HTML이 CSS와 글꼴을 상대 경로를 통해 로드하도록 합니다.
  4. HTML을 PDF로 변환하고 글꼴 표시를 확인합니다.

폴더 구조:

  • input_html

  • invoice.html

    • styles
  • invoice.css

    • fonts
  • Inter Regular.ttf

    • Inter Bold.ttf

CSS 샘플:

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}

body {
  font-family: "Inter", Arial, sans-serif;
}

배치 스크립트를 다시 실행하고 확인하십시오:

  • PDF는 의도한 글꼴을 사용합니다.
  • 여백 및 페이지 매김이 예상 레이아웃과 일치합니다.

누락된 CSS, 이미지 및 깨진 상대 경로 수정

PDF 출력이 스타일이 적용되지 않았거나 이미지가 누락된 경우, 다음 체크리스트를 사용하십시오:

  1. HTML의 모든 자산 참조가 HTML 파일 위치에 상대적인지 확인하십시오.
  2. 템플릿과 자산을 input과 같은 하나의 루트 폴더 아래에 보관하십시오.
  3. 머신에만 존재하는 절대 경로를 사용하지 마십시오.
  4. 서버가 접근할 수 없는 URL로 제공되는 자산을 사용하지 마십시오.

간단한 테스트는 HTML 파일을 로컬에서 열어 CSS와 이미지가 프로덕션에 배포하는 동일한 폴더 구조에서 로드되는지 확인하는 것입니다.

결론

이제 Aspose.HTML을 사용하여 Python via .NET에서 여러 HTML 파일을 PDF로 일괄 변환하는 완전한 단계별 접근 방식을 갖추게 되었습니다. 여러 HTML 파일을 PDF로 일괄 변환을 자동화하면 기업 시스템의 문서 생성이 간소화됩니다. SDK를 설치하고, 명확한 소스 목록을 준비하며, 임베디드 폰트와 SVG 보존을 위한 PDF 옵션을 구성하고, 오류를 우아하게 처리함으로써 수천 페이지에 확장 가능한 신뢰할 수 있는 변환 파이프라인을 구축할 수 있습니다. SDK의 진행 이벤트와 풍부한 API 덕분에 장시간 실행 작업을 쉽게 모니터링하고 일관된 출력 품질을 보장할 수 있습니다.

프로덕션 사용을 위해서는 가격 페이지를 방문하여 라이선스를 구매할 수 있습니다. 또는 평가 목적으로 임시 라이선스를 요청할 수 있습니다. 더 많은 튜토리얼은 Aspose.HTML 블로그에서 확인하고, 추가 지원을 위해 포럼 커뮤니티에 참여하세요.

자주 묻는 질문

1. 한 번 실행으로 HTML 및 HTM 파일을 모두 일괄 변환할 수 있나요?

예. 배치 스크립트에서 입력 폴더를 스캔할 때 .html.htm 확장자를 모두 포함하고, 각 파일을 PDF로 변환한 뒤 동일한 상대 출력 구조를 유지하십시오.

2. 왜 내 PDF에 CSS 스타일링이나 이미지가 누락되었나요?

이는 일반적으로 변환 환경에서 상대 경로가 해결되지 않을 때 발생합니다. CSS, 이미지 및 글꼴을 동일한 input 루트 아래에 두고, HTML 및 CSS에서 상대 경로를 사용하며, 머신에 종속적인 절대 경로는 피하십시오.

3. 서버 간 PDF 출력 일관성을 어떻게 유지합니까?

필요한 글꼴을 템플릿에 포함하고 CSS font-face 규칙을 사용하여 참조하십시오. 또한 모든 자산을 로컬에 보관하고 버전 관리하여 변환기가 모든 환경에서 동일한 HTML, CSS, 이미지 및 글꼴을 항상 볼 수 있도록 하세요.

4. Aspose.HTML이 생성된 PDF에서 SVG 품질을 보존합니까?

예. 인라인 SVG 요소는 일반적으로 PDF에서 벡터 콘텐츠로 렌더링됩니다. 변환 후 차트와 아이콘을 확대하여 가장자리가 선명하게 유지되는지, SVG 내부 텍스트가 예상된 글꼴을 사용하는지 확인하십시오.

5. 수백 개 또는 수천 개의 파일을 변환할 때 실패를 어떻게 처리하나요?

파일을 개별적으로 처리하고, 파일별로 예외를 포착하며, 성공 및 실패한 항목을 나열한 요약 보고서를 작성합니다. 이를 통해 전체 배치를 반복하는 대신 실패한 파일만 다시 실행할 수 있습니다.

더 읽기