푸터 콘텐츠로 바로가기
IRONPDF 사용하기

.NET Core용 PDF API: C#에서 PDF 생성 및 편집

IronPDF .NET Core PDF API 개요, HTML을 PDF로 변환하는 코드 편집기와 출력 문서를 나란히 보여줌

IronPDF는 C# 코드를 통해 PDF 문서를 생성, 변환 및 편집하는 .NET Core 및 .NET 10용 PDF API 입니다. NuGet 패키지를 설치하고, ChromePdfRenderer 인스턴스를 생성한 후 HTML 문자열, 라이브 URL 또는 기존 파일에서 몇 줄의 코드로 PDF를 생성하세요.

PDF 생성은 .NET Core 애플리케이션에서 송장, 보고서, 계약서 및 준수 문서의 표준 요구 사항입니다. 도전 과제는 HTML을 정확하게 렌더링하고, ASP.NET Core 및 Blazor와 깔끔하게 통합되며, Windows, Linux 및 macOS에서 일관된 출력을 생성하고, 별도의 도구 없이 디지털 서명 및 비밀번호 보호와 같은 고급 작업을 처리할 수 있는 라이브러리를 찾는 것입니다. 이 가이드는 IronPDF의 .NET Core PDF API를 설치에서 가장 일반적인 문서 작업까지 안내하며, 각각의 작업에는 작업 중인 C# 코드 예제가 포함되어 있습니다.

IronPDF를 .NET Core에서 시작하는 방법은 무엇입니까?

NuGet에서 패키지 관리자 콘솔 또는 .NET CLI를 사용하여 IronPDF를 설치합니다:

# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
SHELL

설치 후 애플리케이션 시작 시 Program.cs에 라이선스 키를 추가하세요:

using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronPdf

' Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

무료 체험판은 평가를 위해 신용카드 없이 사용할 수 있습니다. IronPDF는 .NET 10, .NET 9, .NET 8, .NET Framework 4.6.2+ 및 모든 주요 .NET Core 버전을 지원합니다. 라이브러리는 추가 런타임 종속성 없이 Windows, macOS 및 Linux에서 실행되며, 컨테이너화된 배포 및 Azure, Docker 및 AWS를 포함한 클라우드 환경에 적합합니다.

ASP.NET Core 프로젝트의 경우, 앱을 빌드하기 전에 Program.cs에서 IronPDF 서비스를 등록한 다음 표준 의존성 주입 컨테이너를 통해 ChromePdfRenderer를 주입하세요. IronPDF는 Web API, MVC, Razor Pages 및 Blazor Server를 포함한 ASP.NET Core 프로젝트 유형과 통합됩니다. NuGet 패키지는 기본 런타임 라이브러리나 외부 실행 파일을 요구하지 않고 단일 종속성으로 설치되어, CI 파이프라인 및 컨테이너 이미지를 간단하게 유지합니다. 표준 .NET SDK를 제외하고는 Linux 또는 macOS 배포를 위한 추가 구성은 필요하지 않습니다.

ChromePdfRenderer는 스레드 안전성이 있으므로 싱글톤으로 등록하여 요청 핸들러 전반에서 공유할 수 있습니다. 높은 처리량 시나리오에서는 PDF 생성이 실행되는 동안 요청 스레드를 차단하지 않도록 렌더러 인스턴스 풀을 생성하거나 비동기 렌더 메소드(RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync)를 사용하세요. IronPDF의 라이선싱 페이지는 프로덕션 환경에 대한 배포 시트 및 동시 스레드 제한을 다룹니다.

C#에서 HTML로 PDF를 어떻게 생성합니까?

HTML-to-PDF 변환은 .NET PDF API의 가장 일반적인 사용 사례입니다. IronPDF의 ChromePdfRenderer는 HTML 문자열, 로컬 파일 또는 실시간 URL을 변환하며, CSS 스타일, 폰트, JavaScript 출력 및 이미지를 Chrome에서 렌더링된 그대로 유지합니다.

using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
Imports IronPdf

' Create the renderer and define HTML content with full CSS support
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>"

Dim document = renderer.RenderHtmlAsPdf(html)
document.SaveAs("sales-report.pdf")
$vbLabelText   $csharpLabel

PDF 문서 출력

IronPDF HTML에서 PDF로의 변환을 실행하고 스타일이 있는 데이터 테이블과 서식이 지정된 판매 보고서를 생성하는 Visual Studio 프로젝트

ChromePdfRendererPdfDocument 객체를 반환하며, 이를 파일 경로에 저장하거나 HTTP 응답을 위해 byte[]로 내보내거나 메모리 내 처리를 위해 MemoryStream에 쓸 수 있습니다. 렌더러는 사용자 정의 글꼴, 플렉스박스, 그리드 레이아웃, 미디어 쿼리 및 마진 및 페이지 크기 제어를 위한 @page 규칙을 포함한 모든 CSS 속성을 준수합니다. 디스크에 저장된 HTML 템플릿과 CSS 및 이미지 자산의 경우, 인라인 문자열을 전달하는 대신 파일 경로를 사용하여 RenderHtmlFileAsPdf를 호출하세요. IronPDF는 파일의 디렉토리에 대해 상대 자산 경로를 해결하므로, 연결된 스타일 시트 및 로컬 이미지는 추가 구성 없이 출력에 나타납니다.

실시간 웹 페이지를 캡처해야 하는 애플리케이션의 경우, JavaScript를 실행하면서 모든 URL을 스크린샷하는 RenderUrlAsPdfAsync을 사용하세요:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render a live URL including all JavaScript-rendered content
Dim document = Await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report")
document.SaveAs("monthly-report.pdf")

' Return PDF bytes in an ASP.NET Core controller
Dim pdfBytes As Byte() = document.BinaryData
Return File(pdfBytes, "application/pdf", "report.pdf")
$vbLabelText   $csharpLabel

URL 렌더링은 JavaScript가 완전히 실행될 때까지 대기하여, 동적으로 로드된 차트, 테이블 및 데이터 시각화가 출력 PDF에 올바르게 나타나도록 합니다. 렌더링 옵션을 설정하여 페이지 여백, 용지 크기, 방향 및 JavaScript 실행 제한 시간을 설정할 수 있습니다. 인증 쿠키와 사용자 정의 HTTP 헤더도 렌더링 전에 요청에 주입될 수 있으며, 이는 로그인된 세션이 필요한 페이지를 캡처하는 것을 지원합니다.

PDF 페이지 레이아웃 및 렌더링 옵션을 설정하려면 어떻게 해야 하나요?

RenderingOptions 속성은 ChromePdfRenderer에서 페이지 크기, 여백, 방향 및 모든 렌더 호출이 실행되기 전 JavaScript 대기 동작을 제어합니다. 렌더러 인스턴스에서 이러한 속성을 한 번 설정하면 렌더링하는 모든 문서에 적용됩니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 15
renderer.RenderingOptions.MarginBottom = 15
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20

' Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500)

Dim document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>")
document.SaveAs("landscape-report.pdf")
$vbLabelText   $csharpLabel

용지 크기 값은 A4, A3, 레터, 법적 문서, 밀리미터로 지정된 사용자 정의 크기를 포함한 표준 형식을 다룹니다. 여백 속성은 밀리미터로 값을 받아들이며 각각의 가장자리에 독립적으로 적용됩니다. WaitFor API는 JavaScript 실행 타이밍을 제어하며, 차트나 계산된 테이블 값을 렌더링하기 전에 HTML이 비동기로 데이터를 로드할 때 유용합니다. CSS @page 규칙을 사용하는 페이지의 경우, IronPDF는 해당 선언을 준수하고 직접 적용합니다. 렌더링 옵션 참조에서 줌 팩터, 배경색 및 PDF 버전 선택을 포함한 전체 속성 목록을 참조하십시오.

DOCX 파일 및 이미지를 PDF로 변환하는 방법은?

HTML 외에도 IronPDF는 DOCX 문서, 일반 이미지 형식 및 Markdown 파일을 PDF로 변환합니다. 이는 여러 입력 유형을 수용하는 처리 파이프라인을 지원합니다.

using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
Imports IronPdf

' Convert a Word document to PDF while preserving its formatting
Dim docxPdf = New DocxToPdfRenderer().RenderDocxAsPdf("contract.docx")
docxPdf.SaveAs("contract.pdf")

' Combine multiple images into a single multi-page PDF
Dim images = {"page1.png", "page2.png", "page3.png"}
Dim imagePdf = ImageToPdfConverter.ImageToPdf(images)
imagePdf.SaveAs("scanned-document.pdf")
$vbLabelText   $csharpLabel

예제 입력 DOCX과 출력 PDF

원래의 Word 문서와 IronPDF로 변환된 PDF 출력의 테이블 서식 및 스타일이 보존된 상태의 나란히 비교

DOCX에서 PDF로의 변환 기능은 소스 Word 문서의 단락 스타일, 테이블, 헤더, 푸터, 매입 이미지 및 리스트를 보존합니다. 이미지를 PDF로 변환하는 도구는 JPEG, PNG, TIFF, BMP, GIF를 수용하고 출력 파일 크기를 자동으로 최적화하며 여러 이미지를 단일 페이지 문서로 결합하는 것을 지원합니다. 두 변환기는 표준 PdfDocument 인스턴스를 반환하므로 병합, 서명 또는 워터마킹과 같은 편집 작업과 연계할 수 있습니다. Microsoft Word에서 생성된 DOCX 파일의 경우, 변환기는 복잡한 테이블 구조 및 매입 이미지를 다루면서 원래의 단락 및 머리글 계층 구조를 유지합니다.

디지털 서명 및 양식 필드를 어떻게 추가합니까?

프로덕션 문서 워크플로는 종종 진위성을 위한 암호화 서명과 데이터 수집을 위한 대화형 양식 필드를 요구합니다. IronPDF는 동일한 API를 통해 디지털 서명PDF 양식 지원을 제공합니다.

using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
Imports IronPdf
Imports IronPdf.Signing

' Load an existing PDF and apply a digital signature using an X.509 certificate
Dim pdf = PdfDocument.FromFile("agreement.pdf")
Dim signature = New PdfSignature("certificate.pfx", "pfx-password")
pdf.Sign(signature)

' Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation"
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd")
pdf.Form.FindFormField("Amount").Value = "$12,500.00"

pdf.SaveAs("signed-agreement.pdf")
$vbLabelText   $csharpLabel

검증된 서명 예

IronPDF의 PdfSignature API로 서명된 PDF에서 인증된 디지털 서명 패널을 보여주는 Adobe Acrobat

디지털 서명은 PFX 형식의 X.509 인증서를 사용하며 Adobe Acrobat 및 기타 PDF 뷰어에서 인정하는 PDF 서명 표준을 준수합니다. Acrobat의 서명 패널은 인증서 발급자, 서명 시간 및 무결성 상태를 확인합니다. PDF 양식 API는 텍스트 필드, 체크박스, 라디오 버튼, 드롭다운 메뉴를 지원합니다. 양식 템플릿을 프로그래밍 방식으로 생성하고, 런타임 시 데이터를 입력하며, 작성된 문서에서 제출된 필드 값을 읽을 수 있습니다. 이 패턴은 계약 관리, HR 채용, 자동화된 데이터 수집 파이프라인에 유용하며, 동일한 PDF 템플릿이 다른 필드 값과 함께 여러 거래에 걸쳐 재사용됩니다.

타임스탬프 기반 서명을 위해 PdfSignature 인스턴스에 타임스탬프 서버 URI를 구성하여 서명 시간이 로컬 시스템 시계가 아닌 신뢰할 수 있는 제3자에 의해 인증되도록 전달하세요. 서명 가이드는 가시적 서명 이미지, 다중 순차 서명자, 인증서 유효성 검사 옵션을 다룹니다.

기존 PDF 문서를 어떻게 편집하고 조작합니까?

IronPDF를 사용하면 PDF 파일을 HTML에서 다시 빌드하지 않고 수정할 수 있습니다. 헤더, 바닥글, 워터마크, 주석을 추가하거나 페이지를 프로그래밍 방식으로 병합하고 분할합니다.

using IronPdf;

var document = PdfDocument.FromFile("report.pdf");

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
using IronPdf;

var document = PdfDocument.FromFile("report.pdf");

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
Imports IronPdf

Dim document = PdfDocument.FromFile("report.pdf")

' Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>", rotation:=30, opacity:=50)

' Add a branded header to every page
document.AddHtmlHeaders(New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
})

' Append supplementary pages from a second document
Dim appendix = PdfDocument.FromFile("appendix.pdf")
document.AppendPdf(appendix)

document.SaveAs("final-report.pdf")

' Export to bytes for HTTP streaming
Dim pdfBytes As Byte() = document.BinaryData
$vbLabelText   $csharpLabel

출력 예제

IronPDF가 추가한 기밀 워터마크와 페이지 번호 및 추가된 부록 페이지가 포함된 브랜딩 헤더의 PDF 문서

HTML 헤더 및 푸터 API는 동적 콘텐츠를 위한 {page}, {total-pages}{date}을 포함한 템플릿 변수를 지원합니다. 맞춤 워터마크 메서드는 HTML 조각을 수용하여 모든 페이지에 스타일이 있는 회전된 반투명의 오버레이를 한 번의 호출로 적용할 수 있습니다. 페이지 범위별로 PDF를 분할하거나 여러 문서를 병합하고, 임베디드 이미지 및 텍스트 콘텐츠를 추출할 수도 있습니다. 텍스트 추출은 열 및 표 간 읽기 순서를 유지하며, 이는 검색 색인화, 콘텐츠 마이그레이션 또는 데이터 유효성 검사 작업 흐름의 다운스트림 처리를 간소화합니다.

비밀번호 보호 및 보안 설정을 어떻게 적용합니까?

재무 보고서, 법률 문서 및 HR 기록에 대해 비밀번호 및 권한 플래그로 PDF 문서를 보호하는 것은 표준 요구 사항입니다.

using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
Imports IronPdf
Imports IronPdf.Security

Dim pdf = PdfDocument.FromFile("financial-report.pdf")

' Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password"
pdf.SecuritySettings.OwnerPassword = "admin-password"

' Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserFormData = False

pdf.SaveAs("protected-report.pdf")
$vbLabelText   $csharpLabel

PDF 보안 설정 API는 128비트 또는 256비트 AES 암호화를 적용합니다. UserPassword 설정 시, PDF 뷰어에서 파일을 열 때 비밀번호를 입력해야 합니다. OwnerPassword 설정 시, 프로그래매틱한 수정 및 소유자 수준의 작업을 제한합니다. 권한 플래그는 인쇄 품질, 텍스트 선택, 주석 및 양식 필드 액세스를 독립적으로 제어합니다. 보안 설정을 적용한 후 BinaryData 속성은 저장 또는 HTTP 전송을 위해 암호화된 PDF 바이트를 반환합니다. 이러한 설정은 PDF 사양의 액세스 제어 모델을 준수하므로 보호된 문서는 Adobe Acrobat, 브라우저 기반 PDF 뷰어 및 모바일 읽기 애플리케이션에서 올바르게 열립니다.

소유한 문서에서 보호를 제거하려면 파일을 PdfDocument.FromFile에 매개변수로 전달된 소유자 비밀번호와 함께 로드한 후 보안 설정 없이 저장하세요. 이는 암호로 보호된 파일이 입력으로 도착하고 재배포 전에 변환되어야 하는 서버 측 워크플로에서 프로그래밍 방식의 문서 처리를 허용합니다.

다음 단계는 무엇입니까?

IronPDF의 .NET Core용 PDF API는 HTML 문자열 및 URL에서 생성하고, DOCX 및 이미지 파일을 변환하며, 페이지 레이아웃 및 렌더링 옵션을 구성하고, 워터마크, 헤더 및 바닥글을 수정하고, 디지털 서명을 적용하며, 문서를 암호화로 보호하는 전체 문서 수명 주기를 C#에서 처리합니다. 모든 작업은 Windows, macOS, Linux에서 .NET 8, .NET 9 및 .NET 10을 가로지르는 일관된 API를 사용합니다.

무료 체험판을 시작하여 자신의 문서로 IronPDF를 평가해 보세요. 추가 사례에 대해서는 HTML을 PDF로 렌더링하는 옵션 가이드, PDF 압축 및 최적화 및 전체 IronPDF 기능 개요를 탐색하세요. 라이선스 옵션을 검토하여 프로덕션 배포에 사용하십시오.

자주 묻는 질문

IronPDF의 .NET Core용 PDF API는 무엇입니까?

IronPDF는 .NET 10, .NET 9, .NET 8, .NET Framework 4.6.2 이상의 지원을 받는 C# 애플리케이션에서 PDF 문서를 생성, 변환, 수정할 수 있는 .NET 라이브러리입니다. 단일 NuGet 패키지로 설치됩니다.

어떻게 .NET Core에서 HTML로 PDF를 생성합니까?

ChromePdfRenderer 인스턴스를 생성하고 RenderHtmlAsPdf와 HTML 문자열, 또는 RenderUrlAsPdfAsync와 URL를 호출합니다. 렌더러는 HTML, CSS, JavaScript 출력을 PdfDocument 객체로 변환하며, 이를 저장하거나 스트리밍할 수 있습니다.

IronPDF에서 페이지 크기 및 여백을 어떻게 구성합니까?

렌더러의 렌더링 옵션을 호출하기 전에 속성을 설정하세요. 일반 형식에는 PaperSize를 사용하고, 세로 방향에는 PaperOrientation을 사용하며, 밀리미터 기반 여백에는 MarginTop, MarginBottom, MarginLeft, MarginRight를 사용하세요.

IronPDF는 .NET Core에서 DOCX 파일을 PDF로 변환할 수 있나요?

네. DocxToPdfRenderer.RenderDocxAsPdf를 파일 경로와 함께 사용하세요. 변환기는 소스 Word 문서의 단락 스타일, 표, 머리글, 바닥글 및 삽입된 이미지를 보존합니다.

C#에서 PDF에 디지털 서명을 추가하는 방법은?

PdfDocument.FromFile로 PDF를 로드하고, PFX 인증서 경로와 암호로 PdfSignature를 생성한 후 pdf.Sign(signature)를 호출하세요. 결과 문서는 Adobe Acrobat 및 호환 PDF 뷰어에서 확인된 것으로 표시됩니다.

IronPDF를 사용하여 PDF에 암호를 설정하는 방법은?

열기 암호에는 pdf.SecuritySettings.UserPassword를, 소유자 암호에는 pdf.SecuritySettings.OwnerPassword를 설정하세요. 인쇄 허용, 내용 복사 붙여넣기 허용 및 관련 표시기를 사용하여 개인 권한을 제어하세요.

ASP.NET Core에서 생성된 PDF를 HTTP 응답으로 반환하는 방법은?

PdfDocument 인스턴스의 BinaryData 속성을 액세스하여 바이트 배열로 PDF를 검색한 다음, ASP.NET Core 컨트롤러의 액션에서 File(pdfBytes, 'application/pdf', 'filename.pdf')로 반환하세요.

IronPDF는 .NET Core 애플리케이션에서 Linux 및 macOS에서 작동합니까?

네. IronPDF는 Windows, macOS 및 Linux에서 추가 네이티브 런타임 종속성 없이 실행됩니다. 플랫폼 특정 설정 없이 Docker, Azure 및 AWS에 컨테이너화된 배포를 지원합니다.

IronPDF로 PDF에 머리글과 바닥글을 추가하는 방법은?

HtmlHeaderFooter 객체의 HtmlFragment에 머리글 마크업을 포함한 객체로 document.AddHtmlHeaders를 호출하세요. 동적 값에는 템플릿 변수 {page}, {total-pages}, {date}를 사용하세요. 바닥글에도 동일한 API가 적용됩니다.

IronPDF는 ASP.NET Core에서 사용하기에 스레드 안전한가요?

ChromePdfRenderer는 스레드 안전하며 종속성 주입 컨테이너에 싱글톤으로 등록할 수 있습니다. 높은 처리량 작업에는 비동기 렌더 메소드(RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync)를 사용하여 요청 스레드의 차단을 피하세요.

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

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

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

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해