C#을 사용하여 반응형 CSS가 포함된 HTML을 PDF로 변환하는 방법

C#에서 반응형 PDF를 구현하기 위해 HTML과 CSS를 함께 사용하는 방법

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

IronPDF는 C# 개발자가 HTML과 CSS를 사용하여 반응형 디자인을 유지하면서 PDF로 변환할 수 있도록 지원합니다. '화면' 및 '인쇄' 미디어 유형을 모두 지원하기 때문입니다. 인쇄 모드는 PDF 출력에 최적화된 레이아웃을 제공하며, 여러 페이지에 걸쳐 표 헤더를 반복 표시하는 등의 기능을 사용할 수 있도록 합니다.

CSS의 'screen' 미디어 유형은 주로 컴퓨터 화면 및 유사한 장치에 표시하기 위한 것입니다. '화면' 미디어 유형에 대한 스타일을 정의하면 웹 콘텐츠가 화면에 표시되는 방식에 영향을 미쳐 시각적 디자인과 상호 작용성을 강조할 수 있습니다. 여기에는 마우스 오버 효과, 애니메이션, 배경 이미지와 같은 요소들이 포함되어 디지털 디스플레이에서 사용자 경험을 향상시킵니다.

CSS 'print' 미디어 유형은 인쇄용으로 설계되었습니다. 이는 웹 페이지가 인쇄될 때 어떻게 보이는지를 결정하며, 인쇄 페이지에 최적화된 콘텐츠에 중점을 둡니다. 이러한 최적화에는 글꼴 크기 조정, 여백 조정, 인쇄 시 불필요한 요소 제거 등이 포함될 수 있습니다. 인쇄용 스타일시트는 종종 핵심 콘텐츠에 집중하기 위해 탐색 메뉴, 사이드바 및 장식 요소를 제거하여 문서의 가독성을 높이고 잉크를 절약합니다.

IronPDF의 Chrome PDF 렌더링 엔진을 사용하면 개발자는 사용할 미디어 유형을 완벽하게 제어할 수 있으므로 HTML에서 생성된 PDF가 의도한 디자인과 기능을 유지하도록 보장할 수 있습니다. 이러한 유연성은 디지털 배포와 실제 인쇄 두 가지 목적 모두에 필요한 문서를 제작할 때 유용합니다.

빠른 시작: 반응형 HTML 및 CSS를 사용하여 PDF 생성

IronPDF를 사용하여 반응형 CSS가 포함된 HTML을 PDF로 변환하세요. 단 몇 줄의 코드로 모든 기기에서 PDF가 완벽하게 표시되도록 하여 화면 스타일과 인쇄 스타일의 일관성을 유지할 수 있습니다. 이 간편 가이드는 IronPDF를 사용하여 기존 HTML 콘텐츠에서 전문가 수준의 PDF 출력을 생성하는 방법을 보여줍니다.

Nuget Icon지금 바로 NuGet을 사용하여 PDF 만들기를 시작하세요.

  1. NuGet 패키지 관리자를 사용하여 IronPDF를 설치하세요.

    PM > Install-Package IronPdf

  2. 다음 코드 조각을 복사하여 실행하세요.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print } }
        .RenderUrlAsPdf("https://example.com")
        .SaveAs("responsive.pdf");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    지금 바로 무료 체험판을 통해 프로젝트에서 IronPDF를 사용해 보세요.
    arrow pointer


CSS3에서 화면 및 인쇄 CSS 유형은 어떻게 작동하나요?

올바른 CSS 미디어 유형을 선택하는 것이 왜 중요할까요?

IronPDF는 C#으로 HTML에서 PDF를 생성하며, 기본적으로 화면 스타일시트를 PDF로 렌더링할 수 있습니다. 이는 인쇄용 스타일시트가 화면용 스타일시트에 비해 문서화가 덜 되어 있거나, 사용 빈도가 낮거나, 개발이 덜 된 경우가 많기 때문에 편리합니다. 하지만 이러한 미디어 유형 간의 차이점을 이해하는 것은 전문가 수준의 PDF를 제작하는 데 매우 중요합니다.

IronPDF에서 CSS(스크린 및 인쇄)를 사용할 때 화면 및 인쇄 매체 유형 중 어떤 것을 선택하느냐에 따라 최종 PDF 출력 결과가 크게 달라집니다. 화면 매체는 상호작용 요소와 풍부한 시각적 디자인을 보존하는 반면, 인쇄 매체는 가독성과 종이 기반 소비에 맞춰 콘텐츠를 최적화합니다.

CSS3는 특정 CSS 스타일을 인쇄 문서에서만 표시되도록 하고, 다른 스타일은 웹 브라우저용으로 표시되도록 합니다. IronPDF는 HTML과 PDF 모두와 호환되므로 HTML 콘텐츠가 PDF로 렌더링되는 방식을 완벽하게 제어할 수 있습니다. 이러한 유연성을 통해 디지털 보고서, 인쇄 가능한 송장 또는 혼합 문서를 생성하든 관계없이 PDF가 의도된 사용 사례의 특정 요구 사항을 충족하도록 보장할 수 있습니다.

CSS 미디어 유형에서 'print'와 'screen'은 언제 사용해야 할까요?

HTML에 인쇄용 스타일시트를 만들고 적용하는 방법: 완벽한 인쇄용 스타일시트를 만들고 적용하는 방법을 알아보세요.

각 CSS 미디어 유형은 서로 다른 사용 사례를 대상으로 합니다. 각각 사용해보고 요구 사항에 맞는 것을 찾아보세요. 다음 지침을 고려하십시오.

다음과 같은 경우에 Print CSS 미디어 유형을 사용하십시오.

  • 실물 인쇄용 문서 제작
  • 송장, 보고서 또는 공식 문서 생성
  • 페이지 전체에 걸쳐 테이블 헤더가 반복되어야 합니다.
  • 잉크 절약은 최우선 과제입니다
  • 맞춤형 용지 크기 요구 사항 처리

화면 CSS 미디어 유형을 다음과 같은 경우에 사용하십시오.

  • 풍부한 시각적 요소를 포함한 인터랙티브 PDF 제작
  • PDF에서도 웹 디자인의 미적 요소를 유지하기
  • 배경 이미지 및 색상 포함
  • 이 PDF 파일은 주로 화면에서 볼 수 있습니다.
  • 반응형 HTML을 PDF로 변환하는 작업

화면 모드와 인쇄 모드 간의 시각적 차이점은 무엇인가요?

CSS 인쇄 및 화면 매체 유형 비교 (인쇄 버전에서는 이미지가 숨겨진 Apple Mac 페이지) CSS 미디어 유형 비교: 인쇄 레이아웃은 아이콘을 생략하고, 화면 레이아웃은 MacBook 사양에 따라 아이콘을 포함합니다.

위 예시들은 동일한 HTML 콘텐츠가 CSS 미디어 유형 선택에 따라 어떻게 다르게 렌더링되는지를 보여줍니다. 인쇄용 버전은 장식 이미지와 아이콘을 제거하여 더 깔끔하고 인쇄하기 쉬운 문서를 만드는 반면, 화면용 버전은 디지털 보기를 위해 모든 시각적 요소를 유지하는 것을 알 수 있습니다.


PDF 페이지 전체에 표 머리글을 반복해서 표시하려면 어떻게 해야 하나요?

테이블 헤더가 화면 모드에서 한 번만 나타나는 이유는 무엇입니까?

여러 페이지에 걸쳐 있는 HTML 테이블을 다룰 때는 CssMediaType 속성을 PdfCssMediaType.Print 로 설정하십시오. 이렇게 하면 테이블 헤더가 확장된 각 페이지 상단에 반복됩니다. 반면, PdfCssMediaType.Screen 는 Chrome에게 헤더를 한 번만 출력하도록 지시합니다. 이러한 동작은 특히 데이터 테이블이 긴 PDF 보고서를 생성할 때 중요합니다.

인쇄 매체 유형은 브라우저가 페이지네이션에 사용하는 특정 CSS 규칙을 활성화하며, 여기에는 헤더 반복을 가능하게 하는 thead {display: table-header-group;} 속성이 포함됩니다. 이 기능은 독자가 여러 페이지로 구성된 문서를 넘겨볼 때 맥락을 유지하는 데 필수적입니다.

반복되는 헤더에 필요한 HTML 구조는 무엇인가요?

Chrome에서 테이블 헤더를 제대로 인식하도록 하려면 헤더를 <thead> 태그로 묶으세요. Let's render the 'tableHeader.html example of repeating table headers' HTML file to PDF to see the effect.

다음은 권장되는 HTML 구조입니다.

<table>
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
            <th>Column 3</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>
<table>
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
            <th>Column 3</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>
HTML

C#에서 테이블 헤더 반복을 구현하는 방법은 무엇인가요?

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-responsive-css-table-header.cs
using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400);

// Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableHeader.html");

pdf.SaveAs("tableHeader.pdf");
$vbLabelText   $csharpLabel

더욱 고급스러운 표 서식 옵션을 사용하려면 표 주변 간격을 조절하는 사용자 지정 여백을 살펴보거나, 필요에 따라 표가 새 페이지에서 시작되도록 페이지 나누기를 구현해 보세요.

최종 PDF 출력물은 어떤 모습인가요?

고급 CSS 미디어 유형 구성

복잡한 레이아웃을 다룰 때는 CSS 미디어 유형을 IronPDF의 다른 기능과 함께 사용하세요. 예를 들어, 뷰포트 및 확대/축소 설정을 사용할 때 선택하는 CSS 미디어 유형은 최종 PDF에서 반응형 디자인이 확대/축소되는 방식에 영향을 미칩니다.

다음은 고급 구성 방법을 보여주는 예입니다.

using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add custom CSS for print media
string customCss = @"
    @media print {
        .no-print { display: none; }
        body { font-size: 12pt; }
        h1 { page-break-after: avoid; }
    }
";

// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);

pdf.SaveAs("advanced-print-layout.pdf");
using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add custom CSS for print media
string customCss = @"
    @media print {
        .no-print { display: none; }
        body { font-size: 12pt; }
        h1 { page-break-after: avoid; }
    }
";

// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);

pdf.SaveAs("advanced-print-layout.pdf");
$vbLabelText   $csharpLabel

픽셀 단위까지 정확한 해상도가 필요한 프로젝트의 경우, 최종 PDF를 생성하기 전에 CSS 미디어 유형이 어떻게 렌더링될지 미리 보려면 Chrome의 HTML 디버그 기능을 사용하는 것을 고려해 보세요.

IronPDF에서 CSS 미디어 유형을 위한 모범 사례

  1. 두 가지 미디어 유형 모두 테스트 : 항상 화면 및 인쇄 매체 유형 모두에서 HTML을 테스트하여 특정 사용 사례에 가장 적합한 결과를 얻을 수 있는 방식을 확인하십시오.

  2. 문서 인쇄: 공식 문서, 송장 또는 보고서를 작성할 때는 인쇄 매체를 사용하는 것이 일반적으로 더 깔끔하고 전문적인 결과를 제공합니다.

  3. 미디어 쿼리 활용 : CSS 미디어 쿼리를 활용하여 다양한 출력 시나리오에 맞게 레이아웃을 세밀하게 조정하세요.

  4. 성능을 고려하세요 : 인쇄용 스타일시트는 불필요한 시각적 요소를 제외하기 때문에 렌더링 속도가 더 빠른 경우가 많습니다.

  5. CSS 유효성 검사 : HTML 렌더링 설정을 사용하여 PDF 생성 중에 CSS가 올바르게 적용되는지 확인하십시오.

IronPDF에서 CSS 미디어 유형을 숙달하면 디지털 배포용이든 실물 인쇄용이든 관계없이 요구 사항에 완벽하게 맞는 PDF를 만들 수 있습니다.

자주 묻는 질문

C#에서 반응형 CSS가 적용된 HTML을 PDF로 변환하려면 어떻게 해야 하나요?

IronPDF는 반응형 CSS가 적용된 HTML을 C#으로 간단하게 PDF로 변환하는 방법을 제공합니다. ChromePdfRenderer 클래스를 사용하고 RenderingOptions 속성을 통해 CSS 미디어 유형(화면 또는 인쇄)을 지정할 수 있습니다. 몇 줄의 코드만으로 IronPDF는 반응형 디자인을 유지하고 다양한 기기에서 완벽하게 렌더링되도록 보장합니다.

PDF를 생성할 때 '화면'과 '인쇄' CSS 미디어 유형의 차이점은 무엇인가요?

IronPDF는 두 가지 CSS 미디어 유형을 모두 지원합니다. '화면' 미디어 유형은 마우스 오버 효과와 애니메이션을 포함하여 디지털 화면에 표시되는 방식대로 콘텐츠를 보여주고, '인쇄' 미디어 유형은 글꼴, 여백을 조정하고 탐색 메뉴와 같은 불필요한 요소를 제거하여 인쇄 페이지에 최적화된 콘텐츠를 제공합니다. IronPDF의 Chrome PDF 렌더링 엔진을 사용하면 어떤 미디어 유형을 사용할지 완벽하게 제어할 수 있습니다.

PDF 페이지 전체에 걸쳐 표 머리글을 반복적으로 표시하려면 어떻게 해야 하나요?

PDF 문서에서 여러 페이지에 걸쳐 표 머리글을 반복해서 표시하려면 IronPDF에서 CSS 미디어 유형을 '인쇄'로 설정하세요. RenderingOptions에서 CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print로 설정하면 됩니다. 인쇄 미디어 유형에는 반복되는 머리글과 같은 최적화 기능이 포함되어 있어 여러 페이지로 구성된 문서의 가독성을 높여줍니다.

웹사이트 URL을 반응형 디자인을 적용한 PDF로 바로 변환할 수 있나요?

네, IronPDF를 사용하면 반응형 디자인을 유지하면서 웹사이트를 PDF로 직접 변환할 수 있습니다. ChromePdfRenderer 클래스의 RenderUrlAsPdf 메서드를 사용하세요. 화면용 또는 인쇄용 CSS 미디어 유형을 지정하여 PDF가 원하는 대로 렌더링되도록 할 수 있습니다.

이 라이브러리는 HTML을 PDF로 변환할 때 어떤 렌더링 엔진을 사용하나요?

IronPDF는 Chrome PDF 렌더링 엔진을 사용합니다. 이 엔진은 최신 CSS3 기능, JavaScript 및 반응형 디자인을 완벽하게 지원하면서 정확한 HTML-PDF 변환을 제공합니다. 따라서 변환된 PDF는 원본 HTML 콘텐츠의 디자인과 기능을 그대로 유지합니다.

반응형 PDF 디자인을 위한 뷰포트 크기는 어떻게 설정하나요?

IronPDF는 ChromePdfRenderer의 RenderingOptions 속성을 통해 뷰포트 크기를 구성할 수 있도록 합니다. 이를 통해 반응형 CSS 미디어 쿼리가 HTML을 PDF로 변환할 때 올바르게 작동하도록 보장하고, 다양한 뷰포트 크기에서 콘텐츠가 표시되는 방식을 제어할 수 있습니다.

커티스 차우
기술 문서 작성자

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

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

시작할 준비 되셨나요?
Nuget 다운로드 17,527,568 | 버전: 2026.2 방금 출시되었습니다