C#을 사용하여 HTML에서 PDF로 페이지 나누기를 처리하는 방법

C#을 사용하여 HTML PDF에서 페이지 나누기를 추가하거나 제거하는 방법

This article was translated from English: Does it need improvement?
Translated
View the article in English

HTML을 C#에서 PDF로 변환하는 IronPDF를 사용하여 HTML 요소에 page-break-after: always;를 추가하거나, page-break-inside: avoid;를 사용하여 중단 방지를 추가하여 PDF 문서에서 페이지를 제어합니다.

IronPDF PDF 문서 내에서 페이지 나누기를 지원합니다. PDF 문서와 HTML 문서의 주요 차이점 중 하나는 HTML 문서는 스크롤해야 하는 반면 PDF는 여러 페이지로 구성되어 인쇄가 가능하다는 점입니다. HTML 문자열을 PDF로 변환할 때 개발자는 전문적인 문서 품질을 보장하기 위해 페이지 나누기 위치를 정확하게 제어해야 하는 경우가 많습니다.

빠른 시작: HTML을 PDF로 변환할 때 페이지 나누기 구현

IronPDF 사용하여 페이지 나누기를 포함하여 HTML을 PDF로 변환합니다. 이 예제는 특정 HTML 콘텐츠 뒤에 페이지 나누기를 삽입하여 올바른 페이지네이션을 구현하는 방법을 보여줍니다. page-break-after: always; 스타일을 추가하면 개발자가 페이지 분리 위치를 제어하여 생성된 PDF 문서의 가독성을 높이고 조직화합니다. <div> <section> <article> <div> page-break-inside DIV page-break-inside: avoid page-break-inside: avoid DIV <thead> page-break-inside: avoid page-break-after: always page-break-before: always orphans widows break-inside break-after break-before

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPdf 설치하기

    PM > Install-Package IronPdf
  2. 다음 코드 조각을 복사하여 실행하세요.

    new IronPdf.ChromePdfRenderer()
      .RenderHtmlAsPdf("<html><body><h1>Hello World!</h1><div style='page-break-after: always;'></div></body></html>")
      .SaveAs("pageWithBreaks.pdf");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기

    arrow pointer


HTML에서 PDF로 페이지 나누기를 추가하는 방법은 무엇인가요?

HTML에서 페이지 나누기를 만들려면 HTML 코드에 다음을 사용하세요.

<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>
HTML

page-break-after CSS 속성은 HTML을 PDF로 렌더링할 때 페이지화를 제어하는 가장 신뢰할 수 있는 방법입니다. 이 속성은 PDF 렌더러에게 이 스타일이 포함된 요소 바로 뒤에 페이지 나누기를 삽입하도록 지시합니다. 사용자 지정 여백 이나 특정 페이지 레이아웃을 사용할 때 페이지 나누기를 통해 콘텐츠가 의도한 위치에 정확하게 표시되도록 할 수 있습니다.

페이지 나누기 후 삽입이 다른 방법보다 더 효과적인 이유는 무엇일까요?

이 예제에서, HTML에 다음의 tableimg이 있으며, table 후에 페이지 분리를 추가하여 두 개의 개별 페이지로 만들고 싶습니다. page-break-after 속성은 page-break-before나 수동 간격과 같은 대안과 비교하여 서로 다른 렌더링 엔진 솔루션에서 더 일관성 있는 결과를 제공합니다. 복잡한 레이아웃을 가진 새 PDF를 만들 때 이 방법을 사용하면 예측 가능한 페이지 매김이 보장됩니다.

페이지 나누기에 어떤 요소를 사용해야 할까요?

페이지 분리는 div, section, 및 article과 같은 블록 수준 요소에서 효과적으로 작동합니다. 페이지 분리 스타일을 다양한 HTML 요소에 적용할 수 있지만, 콘텐츠를 전용 div로 감싸면 가장 신뢰할 수 있는 결과를 제공합니다. 이는 특히 페이지 전체에서 일관된 형태로 표시되어야 하는 머리글과 바닥글을 다룰 때 매우 중요합니다.

테이블

<table style="border: 1px solid #000000">
  <tr>
    <th>Company</th>
    <th>Product</th>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronPDF</td>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronOCR</td>
  </tr>
</table>
<table style="border: 1px solid #000000">
  <tr>
    <th>Company</th>
    <th>Product</th>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronPDF</td>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronOCR</td>
  </tr>
</table>
HTML

영상

<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
HTML

C# 코드에서 페이지 나누기를 구현하는 방법은 무엇인가요?

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-page-break.cs
using IronPdf;

const string html = @"
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf

Private Const html As String = "
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"

Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Page_Break.pdf")
$vbLabelText   $csharpLabel

위의 코드는 2페이지의 PDF를 생성합니다: 첫 번째 페이지에 table이 있고 두 번째 페이지에 img이 있습니다:

이미지에서 페이지 나누기를 방지하려면 어떻게 해야 하나요?

이미지나 table 내에서 페이지 분리를 피하고자 할 때, CSS avoid 속성을 적용된 감싸는 div 요소를 사용하세요. 이 기술은 Chrome을 사용하여 HTML을 디버깅할 때 시각적 무결성을 유지하는 데 필수적이며, 이를 통해 PDF가 의도한 대로 정확하게 렌더링되도록 보장합니다.

<div style="page-break-inside: avoid">
    <img src="no-break-me.png" />
</div>
<div style="page-break-inside: avoid">
    <img src="no-break-me.png" />
</div>
HTML

이미지를 DIV 요소로 감싸야 하는 이유는 무엇일까요?

div 요소로 이미지를 감싸면 페이지 분리 동작을 더 잘 제어할 수 있습니다. page-break-inside 속성은 블록 수준 요소에서 가장 신뢰할 수 있게 작동합니다. 이미지는 기본적으로 인라인 요소이므로, 이미지를 래핑하면 스타일이 제대로 적용됩니다. 이 접근 방식은 PDF 형식에서도 구조를 유지해야 하는 반응형 CSS 레이아웃을 다룰 때 특히 유용합니다.

이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

일반적인 문제로는 이미지가 여러 페이지에 걸쳐 분할되거나, 페이지 경계에서 부분적으로만 렌더링되거나, 캡션 또는 관련 텍스트가 손실되는 경우가 있습니다. 이러한 문제는 이미지가 페이지 하단에 있을 때 자주 발생합니다. page-break-inside: avoid 래퍼는 전체 이미지와 그 컨테이너가 하나의 단위로 다음 페이지로 이동하도록 보장하여 이러한 문제를 방지합니다.

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-7.cs
using IronPdf;

// Example showing how to prevent image breaks in a more complex layout
const string htmlWithProtectedImage = @"
<html>
<head>
    <style>
        .no-break { page-break-inside: avoid; }
        .image-container { 
            border: 2px solid #333; 
            padding: 10px; 
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <h1>Product Gallery</h1>
    <p>Our featured products are displayed below:</p>
    
    <div class='no-break image-container'>
        <img src='product1.jpg' alt='Product 1' />
        <p>Product 1 Description</p>
    </div>
    
    <div class='no-break image-container'>
        <img src='product2.jpg' alt='Product 2' />
        <p>Product 2 Description</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage);
pdf.SaveAs("ProductGallery.pdf");
Imports IronPdf

' Example showing how to prevent image breaks in a more complex layout
Const htmlWithProtectedImage As String = "
<html>
<head>
    <style>
        .no-break { page-break-inside: avoid; }
        .image-container { 
            border: 2px solid #333; 
            padding: 10px; 
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <h1>Product Gallery</h1>
    <p>Our featured products are displayed below:</p>
    
    <div class='no-break image-container'>
        <img src='product1.jpg' alt='Product 1' />
        <p>Product 1 Description</p>
    </div>
    
    <div class='no-break image-container'>
        <img src='product2.jpg' alt='Product 2' />
        <p>Product 2 Description</p>
    </div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage)
pdf.SaveAs("ProductGallery.pdf")
$vbLabelText   $csharpLabel
Icon Quote related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

이 종류의 라이브러리 중 가장 좋아하는 것은 IronPDF입니다. PDF 파일을 빠르고 효율적으로 조작할 수 있습니다. 또한 PDF/A 형식으로 내보내기 및 PDF 문서의 디지털 서명과 같은 많은 유용한 기능을 가지고 있습니다.

Milan Jovanovic related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

Milan Jovanovic

마이크로소프트 MVP

사례 연구 보기
Icon Quote related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

IronOCR 덕분에 연간 $40,000를 수동 프로세싱에서 절약하고 생산성을 높이며 고부가가치 작업에 자원을 활용할 수 있습니다. 강력히 추천합니다.

Brent Matzelle related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

브렌트 마첼

최고 기술 책임자, OPYN

사례 연구 보기
Icon Quote related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

IronSuite는 우리의 운영에서 중요한 역할을 합니다. 이것들은 사업 전반에 걸쳐 효율성을 높이는 도구로, 평면도 생성 및 재고 관리 개선을 포함합니다.

David Jones related to 이미지 페이지 나누기에서 흔히 발생하는 문제는 무엇인가요?

데이비드 존스

리드 소프트웨어 엔지니어, Agorus Build

사례 연구 보기

표에서 페이지 나누기를 피하려면 어떻게 해야 하나요?

위에 보여진 것처럼, 테이블 내부의 페이지 분리는 CSS avoid을 사용하여 피할 수 있습니다. 이것을 테이블 자체보다는 div로 감싸는 것이 더 잘 적용되어 스타일이 블록 수준 HTML 노드에 적용되도록 합니다. 포괄적인 HTML을 PDF로 변환하는 튜토리얼을 제작할 때, 가독성을 위해 표 형식을 제대로 지정하는 것이 매우 중요합니다.

테이블 헤더에 thead를 언제 사용해야 할까요?

크기가 큰 HTML 테이블이 여러 PDF 페이지에 걸쳐있을 때 각 페이지에 테이블 헤더와 푸터를 복제하려면, 테이블 내에서 thead 그룹을 사용하세요:

<thead>
    <tr>
        <th>C Sharp</th><th>VB</th>
    </tr>
</thead>
<thead>
    <tr>
        <th>C Sharp</th><th>VB</th>
    </tr>
</thead>
HTML

요소는 테이블이 여러 페이지에 걸쳐질 때 각 페이지에 테이블 헤더가 반복되도록 보장합니다. 이는 특히 재무 보고서, 데이터 목록 및 모든 페이지에서 맥락이 필요한 모든 문서에 유용합니다. 초기 설정 및 설치 개요를 위해 IronPDF 이러한 HTML 표준을 자동으로 처리합니다.

테이블을 DIV로 감싸는 것이 왜 중요할까요?

페이지 분리 제어가 있는 div 요소로 테이블을 감싸면 여러 가지 이점이 있습니다:

  • 필요한 경우 표 전체가 하나의 단위로 다음 페이지로 이동하도록 합니다.
  • 헤더와 데이터 행이 분리되는 것을 방지합니다.
  • 추가적인 스타일링 및 간격 조절이 가능합니다.
  • 표에 캡션이나 설명을 쉽게 추가할 수 있으며, 추가된 캡션은 표와 함께 유지됩니다.

CSS3 고급 설정에서 페이지 나누기를 제어하는 ​​방법은 무엇인가요?

더 큰 제어를 위해, CSS3를 thead 그룹과 함께 사용하세요:

<style type="text/css">
    table { page-break-inside:auto }
    tr { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group }
    tfoot { display:table-footer-group }
</style>
<style type="text/css">
    table { page-break-inside:auto }
    tr { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group }
    tfoot { display:table-footer-group }
</style>
HTML

복잡한 레이아웃에 가장 적합한 CSS 속성은 무엇일까요?

복잡한 레이아웃의 경우 여러 CSS 속성을 조합하세요.

  • page-break-inside - 요소 분리를 방지
  • page-break-after - 요소 뒤에 분리를 강요
  • page-break-before - 요소 앞에 분리를 강요
  • orphanswidows - 페이지 분리 시 최소 줄 수를 제어
  • break-inside, break-after, break-before - 현대 CSS3 대안

이러한 속성들이 함께 작용하여 적절한 흐름과 가독성을 갖춘 전문가 수준의 PDF 파일을 생성합니다.

페이지 나누기 문제를 어떻게 해결하나요?

페이지 나누기가 예상대로 작동하지 않을 때:

  1. HTML 구조가 유효한지 확인하세요
  2. 스타일이 블록 레벨 요소에 적용되었는지 확인합니다.
  3. 먼저 간단한 예제로 테스트한 다음, 복잡성을 추가하세요.
  4. 브라우저 개발자 도구를 사용하여 계산된 스타일을 검사합니다.
  5. 추가적인 제어를 위해 IronPDF의 렌더링 옵션을 활용하는 것을 고려해 보세요.

PDF 렌더링 프로그램에 따라 페이지 나누기를 처리하는 방식이 약간씩 다를 수 있으므로, 모든 시나리오에서 일관된 결과를 얻으려면 특정 사용 사례에 맞춰 테스트하는 것이 중요합니다.

자주 묻는 질문

C#에서 HTML을 PDF로 변환할 때 페이지 나누기를 추가하려면 어떻게 해야 하나요?

IronPDF를 사용할 때 페이지 구분을 추가하려면 페이지가 나뉘어지길 원하는 HTML 코드 위치에 <div style="page-break-after: always;"></div>를 삽입하세요. IronPDF의 ChromePdfRenderer는 이 CSS 속성을 인식하여 해당 지점에 새로운 페이지를 생성합니다.

PDF 변환 시 페이지 나누기를 제어하는 데 가장 신뢰할 수 있는 CSS 속성은 무엇입니까?

page-break-after: always; CSS 속성은 IronPDF를 사용할 때 가장 신뢰할 수 있는 방법입니다. 이 속성은 다양한 렌더링 엔진에서 일관된 결과를 제공하며 변환된 PDF 문서에서 예측 가능한 페이징을 보장합니다.

표나 이미지 안에서 페이지 나누기를 방지하려면 어떻게 해야 할까요?

표나 이미지 내에서 원하지 않는 페이지 구분을 방지하려면 page-break-inside: avoid; CSS 속성을 사용하세요. IronPDF로 HTML을 PDF로 변환할 때, 이 스타일은 표와 이미지가 여러 페이지에 걸쳐 분할되지 않고 단일 페이지에 온전하게 유지되도록 합니다.

페이지 나누기 스타일과 가장 잘 어울리는 HTML 요소는 무엇일까요?

페이지 구분은 <div>, <table>, <section>와 같은 블록 레벨 요소와 가장 효과적으로 작동합니다. IronPDF는 HTML을 PDF로 변환할 때 가장 신뢰할 수 있는 결과를 얻으려면 페이지 구분 스타일을 적용한 전용

요소로 콘텐츠를 감싸는 것을 권장합니다.

페이지 나누기를 인라인 스타일 대신 CSS 수준에서 제어할 수 있나요?

네, 인라인 스타일 대신 CSS 수준에서 페이지 나누기 스타일을 설정할 수 있습니다. IronPDF의 렌더링 엔진은 CSS 스타일시트를 완벽하게 지원하므로 CSS 파일에서 페이지 나누기 규칙을 정의하여 더 깔끔하고 유지 관리하기 쉬운 HTML 코드를 작성할 수 있습니다.

페이지 나누기 전 대신 페이지 나누기 후에 사용해야 하는 이유는 무엇인가요?

page-break-after 속성은 page-break-before보다 다양한 렌더링 엔진에서 더 일관된 결과를 제공합니다. IronPDF를 사용하여 복잡한 레이아웃의 PDF를 생성할 때, page-break-after는 더 예측 가능하고 신뢰할 수 있는 페이징 동작을 보장합니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 19,936,792 | 버전: 2026.7 방금 출시
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronPdf
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.