C#에서 html2pdf 페이지 나누기 고정 (개발자 튜토리얼)
현대의 기업에서는 디지털 문서가 정보를 공유하고 시각적으로 표현하는 일반적인 장소입니다. 그러나 단일 페이지 내에 정보가 너무 많아져 정보 과부하가 발생하고, 주제와 관련된 내용을 이해하기 어렵게 될 때가 있습니다. 따라서, 일반적인 전략은 페이지 구분을 구조화하여 발표자가 정보를 명확하게 전달하고, 독자가 문서 간의 명확하게 정의된 섹션을 볼 수 있도록 하는 것입니다.
페이지 구분이 문서에서 일반적이지만, 수동으로 조정하는 것은 번거롭고 확장성이 없습니다. 수천 개의 문서가 생성되는 회사에서는 페이지 구분을 자동으로 추가하는 것이 훨씬 효율적이고 이상적입니다. 이는 개발자가 선택한 문서에 형식을 사용자 정의하고 적용할 수 있도록 합니다.
이번 기사에서는 IronPDF라는 C# PDF 라이브러리를 사용하여 페이지 구분을 추가하는 것을 논의할 것입니다. IronPDF의 직관성은 개발자가 여러 종류의 콘텐츠에 빨리 페이지 구분을 설정할 수 있도록 합니다. 라이브러리의 사용과 페이지 구분을 포함하여 시각적으로 매력적인 문서를 만드는 맞춤화와 유연성도 논의할 것입니다.
IronPDF: C# PDF 라이브러리

IronPDF는 개발자, 초보자 또는 전문가에게 PDF를 완전히 조작하고 편집할 수 있는 유연하고 사용하기 쉬우며 고도로 사용자 정의 가능한 C# PDF 라이브러리입니다. HTML, RTF, 이미지 등 여러 형식을 PDF로 변환하고, PDF로 변환할 때 렌더링 방식을 더 편집할 수 있는 다양한 방법을 제공합니다. 또한, IronPDF는 Chrome 렌더링 엔진을 활용하므로 HTML 문자열을 렌더링하는 데 매우 능숙하며, CSS 스타일링을 사용하여 HTML 문서를 더욱 사용자 정의할 수 있어 다른 곳에서는 찾기 힘든 맞춤화와 시각적 표현의 이점을 제공합니다.
라이브러리가 Chrome 렌더링 엔진을 사용하기 때문에 HTML 렌더링 시 보이는 대로 나타나므로, 템플릿과 불일치가 없는 페이지 구분과 같은 템플릿을 만드는 작업에 이상적입니다. PDF로 변환할 때 템플릿을 설계한 그대로입니다.
PDF에 페이지 구분 추가
라이브러리의 유연성과 사용의 용이성을 설명하기 위해, 코드 예제를 사용하여 프로그램적으로 페이지 구분을 추가하는 방법을 보여드리겠습니다.
이 시나리오에서는 입력으로 테이블 기반 PDF를 사용하며, 시각적 명확성을 위해 페이지 구분을 즉시 추가하는 것과 나중에 추가하는 것의 차이점을 보겠습니다.
라이선스 키
시작하기 전에 IronPDF는 작동을 위해 라이선스 키가 필요하다는 것을 기억하세요. 링크를 방문하여 무료 체험판의 일환으로 키를 얻을 수 있습니다.
// Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
' Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
시험 키를 받은 후, 프로젝트에 이 변수를 설정하면 준비가 됩니다.
입력 PDF
다음 PDF가 우리의 예제 입력으로 사용됩니다. 이것은 데이터가 다른 정보와 함께 모여 있는 간단한 테이블로, 콘텐츠가 어디에서 끝나는지 구분하기 어렵습니다.

코드 예제 사용
using IronPdf; // Import the IronPdf library
// Define the HTML content, including a table and an image
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'>";
// Create an instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the HTML content into a PDF
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf");
using IronPdf; // Import the IronPdf library
// Define the HTML content, including a table and an image
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'>";
// Create an instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the HTML content into a PDF
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf ' Import the IronPdf library
' Define the HTML content, including a table and an image
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'>"
' Create an instance of ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the HTML content into a PDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf")
- 우리는 먼저
IronPdf모듈을 가져옵니다. - 위의 HTML 문자열은 PDF로 변환될 콘텐츠를 나타냅니다.
<div style='page-break-after: always;'> </div>태그는 테이블 후에 페이지 구분을 보장하기 위해 포함됩니다. - 그런 다음 PDF 렌더러를 인스턴스화합니다.
- 우리는 HTML 문자열을
RenderHtmlAsPdf메서드에 전달합니다. - 마지막으로, 문서를
Page_Break.pdf로 저장합니다.
더 일반적인 방법은 HTML 인라인 스타일링보다는 CSS를 사용하여 페이지 구분을 활용하는 것입니다.
PDF 출력

보시다시피, 출력은 테이블 바로 뒤에 페이지 구분을 도입합니다.
CSS로 페이지 구분 제어
IronPDF는 Chrome 렌더링 엔진을 사용하므로 CSS로 사용자 정의할 수 있으므로 이점을 활용하여 특정 요소에 페이지 구분을 추가하고 그 안에 페이지 구분을 추가하거나, 특정 요소에는 페이지 구분이 없어야 한다고 지정할 수 있습니다.
예를 들어, 위의 이미지에서 페이지 구분은 테이블 뒤에 발생하지만 혼잡으로 인해 테이블 내에서 발생할 때도 있을 수 있습니다.
이를 피하기 위해, 노드에 대해 특정 CSS 스타일링을 사용하고 내부에 페이지 구분을 추가하지 않기를 원한다고 지정할 수 있습니다.
<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>
page-break-inside: avoid를 추가하면 요소 내부의 페이지 구분이 방지됩니다. 그러나 이 작업을 수행할 때 이 내용이 요소의 부모 div 노드에 적용되어야 한다는 것을 보장하십시오.
유사한 작업은 페이지-구분-이전 스타일을 추가하려는 요소에 대해서도 사용할 수 있습니다.
<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을 활용할 수 있기 때문에, JavaScript의 document.getElementById를 사용하여 ID로 요소를 선택하고 각 노드를 완전히 사용자 정의할 수 있도록 HTML 노드 트리를 탐색하여 노드의 요소를 더 구체화할 수 있습니다.
이미지 품질 및 파일 크기 최적화
페이지 구분 설정은 이미지 품질과도 긴밀하게 관련이 있습니다. 페이지 나누기 설정이 이미지 품질을 축소하거나 다음 페이지에 스케일링함으로써 영향을 미치지 않도록 하고 싶습니다.
이와 같이 우리가 페이지 나누기를 적용할 때 템플릿 전체에서 이미지 품질이 일관되도록 CSS를 사용할 수 있습니다.
<div class="no-break">
<img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;">
</div>
<div class="no-break">
<img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;">
</div>
위의 CSS 스타일링은 페이지 나누기 작업 후에 이미지가 일관되도록 합니다. 우리는 먼저 페이지의 너비를 100%로 설정하고, 높이는 비율을 유지하기 위해 자동 조정 가능합니다.
더욱이 IronPDF는 사용자의 인쇄 설정과 유사한 HTML을 처리할 때 추가 렌더링 옵션을 제공하며, 다운로드 가능한 출력 가능한 PDF 프롬프트에 대해 이러한 옵션이 있습니다. 속성의 전체 목록은 API 문서를 참조하십시오.
JavaScript에서의 대응
Chrome 렌더링 엔진을 사용하는 이점을 가진 IronPDF는 개발자들이 이 강력한 라이브러리를 활용할 수 있도록 다양한 배경의 개발자들을 위한 Node.js 버전도 제공됩니다.
Node.js 변형을 사용하면 개발자는 페이지 구분을 추가하는 데 더 세밀한 제어를 할 수 있습니다. 프로미스 기반 사용 및 메서드, 예를 들어 @onRejected 프로미스 메서드를 디버깅 또는 진행 추적 및 그 중간 함수로 사용할 수 있습니다.
html2pdf와 같은 일반 라이브러리와 비교했을 때 jsPDF 객체의 출력 메소드, IronPDF는 더 유연하며 다국어 지원을 통해 다양한 언어 전문성을 가진 개발자들이 같은 프로젝트에서 작업할 수 있도록 합니다.
결론

페이지 나누기를 사용하는 방법과 CSS가 전체 HTML에 미치는 영향을 이해하는 것은 사용자에게 프레젠테이션 가능하고 시각적으로 매력적인 문서를 만드는 데 중요합니다. 독자들이 정보 과부하 및 혼란을 피하기 위해 읽고 있는 정보를 분리할 수 있도록 허용합니다. 이 기사 전반에 걸쳐 IronPDF가 사용하는 강력한 Chrome 렌더링 엔진을 활용하여 템플릿과 자동화를 위한 페이지 나누기 템플릿을 자동으로 생성하는 방법에 대해 이야기했습니다. 이는 이러한 문서를 만들 때 효율성과 확장성을 간소화하고 인적 오류의 위험을 줄입니다.
IronPDF를 사용해보고 싶은 개발자를 위해, 라이브러리는 $799 및 그 이상을 위한 무료 체험판을 제공합니다.
자주 묻는 질문
C#에서 PDF에 페이지 나누기를 어떻게 추가할 수 있나요?
CSS를 사용하여 IronPDF로 PDF에 페이지 나누기를 추가할 수 있습니다. HTML에서 PDF로 변환할 때 페이지 나누기가 발생하는 위치를 제어하기 위해 page-break-after: always;와 같은 스타일을 사용하세요.
C#을 사용하여 PDF 생성에서 CSS의 역할은 무엇입니까?
CSS는 IronPDF를 사용하여 HTML에서 PDF를 생성할 때 레이아웃과 외관을 제어하는 데 중요합니다. 개발자가 페이지 나누기를 관리하고 문서 전반에 걸쳐 일관된 포맷을 보장할 수 있게 합니다.
Chrome 렌더링 엔진이 HTML을 PDF로 변환하는 데 어떤 이점이 있습니까?
IronPDF는 PDF 출력이 HTML 입력과 매우 일치하도록 보장하기 위해 Chrome 렌더링 엔진을 사용합니다. 이 일관성은 변환 과정에서 의도된 디자인과 레이아웃을 유지하는 데 필수적입니다.
PDF에 수동으로 페이지 나누기를 삽입하는 데 어떤 어려움이 있습니까?
특히 큰 문서를 다룰 때 수동으로 페이지 나누기를 삽입하는 것은 비효율적이고 오류를 유발할 수 있습니다. IronPDF는 이 과정을 자동화하여 개발자가 포맷 문제보다는 콘텐츠에 집중할 수 있도록 합니다.
페이지 나누기가 있는 PDF에서 높은 이미지 품질을 어떻게 보장할 수 있나요?
PDF에서 이미지 품질을 유지하려면 이미지 크기를 올바르게 설정하기 위해 CSS를 사용하세요. IronPDF와 함께 width: 100%; 및 height: auto; 스타일을 적용하여 이미지가 적절히 확장되도록 할 수 있습니다.
JavaScript를 PDF로 변환하기 전에 HTML을 사용자 정의하는 데 사용할 수 있습니까?
네, IronPDF는 JavaScript를 지원하여 개발자가 PDF로 변환하기 전에 HTML 콘텐츠를 동적으로 조작할 수 있게 합니다. 이는 사용자 정의 및 표시를 향상시킵니다.
문서 생성에서 페이지 나누기를 자동화하는 것의 장점은 무엇입니까?
IronPDF를 사용하여 페이지 나누기를 자동화하면 효율성이 증가하고 오류가 줄어들어 Enterprise 환경에서 일관되고 전문적인 문서 표현이 가능합니다.
PDF 조작을 위한 C# 라이브러리를 사용하는 방법은 무엇입니까?
IronPDF 사용을 시작하려면 웹사이트에서 무료 체험판을 통해 라이센스 키를 획득하세요. 라이브러리를 C# 프로젝트에 통합하여 PDF 문서 조작을 시작하세요.
문서 표현에서 페이지 나누기 기술을 숙달하는 것이 중요한 이유는 무엇입니까?
페이지 나누기 기술을 숙달하면 문서가 잘 구조화되고 쉽게 읽을 수 있어 정보 과부하를 피하고 전반적인 표현 품질을 향상시키는 데 도움이 됩니다.
.NET 버전 지원: IronPDF는 HTML에서 PDF로 변환 및 페이지 나누기 기능을 위해 어떤 .NET 버전을 지원하나요?
IronPDF는 .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, .NET Core 및 .NET Framework를 포함한 모든 최신 .NET 버전에서 HTML에서 PDF 변환 및 CSS 페이지 나누기 기능을 지원합니다. 일관된 동작을 보장하기 위해 이러한 버전 전체에서 동일한 렌더링 엔진 API를 사용합니다.


