IronPDF 튜토리얼 .NET Core PDF 생성 Convert HTML to PDF in .NET Core using C# with IronPDF 제이콥 멜러 업데이트됨:1월 10, 2026 다운로드 IronPDF NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 This article was translated from English: Does it need improvement? Translated View the article in English 최신 .NET 애플리케이션에서는 HTML에서 고품질 PDF를 직접 생성하는 것이 일반적인 요구 사항입니다. 보고서, 송장, 티켓 등 모든 문서가 웹 UI와 일치하는 픽셀 단위까지 완벽한 출력을 필요로 합니다. IronPDF는 HTML, Razor 뷰 및 전체 웹사이트를 표준을 준수하는 PDF 문서로 렌더링하기 위한 단일 C# API를 제공하여 이러한 워크플로를 간소화합니다. 이 가이드를 마치면 개발자는 ASP.NET Core 프로젝트에서 URL, 원시 HTML 또는 MVC 뷰를 변환하고 동일한 코드를 Windows, Linux, Docker 또는 서버리스 환경에 배포할 수 있게 됩니다. 레이아웃 문제의 경우 IronPDF는 PDF가 렌더링되기 전에 CSS, JavaScript 및 미디어 쿼리 관련 문제를 진단하는 데 도움이 되는 헤드리스 Chrome 디버거를 제공합니다. 자세한 기술 정보는 픽셀 단위까지 완벽한 HTML-PDF 변환 가이드를 참조하세요. 빠른 시작: .NET Core에서 HTML을 PDF로 만들기 IronPDF 라이브러리를 사용하면 .NET Core에서 HTML을 PDF로 손쉽게 변환할 수 있습니다. 이 가이드는 최소한의 코드로 HTML 콘텐츠를 고품질 PDF로 렌더링하여 빠르게 시작할 수 있도록 간단한 예제를 제공합니다. PDF 생성 기능을 애플리케이션에 손쉽게 통합하려는 개발자에게 적합합니다. 지금 바로 NuGet을 사용하여 PDF 만들기를 시작하세요. NuGet 패키지 관리자를 사용하여 IronPDF를 설치하세요. PM > Install-Package IronPdf 다음 코드 조각을 복사하여 실행하세요. var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>"); 실제 운영 환경에서 테스트할 수 있도록 배포하세요. 지금 바로 무료 체험판을 통해 프로젝트에서 IronPDF를 사용해 보세요. 30일 무료 체험 ### 최소 워크플로우(5단계) `IronPdf` NuGet 패키지를 설치하세요. `RenderUrlAsPdf` 사용하여 웹사이트 URL을 변환하세요. `RenderHtmlAsPdf` 통해 원시 HTML을 렌더링합니다. MVC 뷰를 PDF로 내보내기 용지 크기, 여백, 머리글 및 바닥글을 조정하세요. 빠른 시작 체크리스트 설치 – Install-Package IronPdf URL 렌더링 – ChromePdfRenderer.RenderUrlAsPdf() 원시 HTML 렌더링 – ChromePdfRenderer.RenderHtmlAsPdf() Razor 뷰 내보내기 – ChromePdfRenderer.RenderHtmlAsPdfAsync() 출력 미세 조정 – ChromePdfRenderer.RenderingOptions 활용 이 튜토리얼에서 다루는 내용 URL, HTML 문자열 및 Razor 뷰 변환 용지, 여백 및 미디어 유형 설정 크로스 플랫폼 배포 (윈도우, 리눅스, Docker) 후처리: PDF 병합, 워터마크 추가, 비밀번호 보호 및 디지털 서명 엔드투엔드 샘플: 티켓 예매 MVC 앱 .NET Core에 PDF 라이브러리를 설치하는 방법은 무엇인가요? 이 라이브러리를 설치하는 것은 모든 .NET 8 프로젝트에서 한 줄짜리 명령으로 가능하며, .NET 9 미리 보기 및 곧 출시될 .NET 10과도 호환성을 유지합니다. NuGet 패키지 관리자 콘솔을 사용하면 패키지 관리자가 Windows, Linux, Docker 및 서버리스 대상에 필요한 모든 종속성을 자동으로 해결합니다. PM> Install-Package IronPdf # .NET 8 LTS and higher PM> Install-Package IronPdf # .NET 8 LTS and higher SHELL 참고해 주세요 CLI가 필요하신가요? 동일한 명령어가 프로젝트 폴더 내의 dotnet add package IronPdf 에서도 작동합니다. 설치가 완료되면 모든 공개 URL을 변환하여 모든 연결이 제대로 되었는지 확인하십시오. // Program.cs — .NET 8 LTS using IronPdf; var renderer = new ChromePdfRenderer(); // Render a live website to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com"); // Persist to disk pdf.SaveAs("website-snapshot.pdf"); // Program.cs — .NET 8 LTS using IronPdf; var renderer = new ChromePdfRenderer(); // Render a live website to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com"); // Persist to disk pdf.SaveAs("website-snapshot.pdf"); $vbLabelText $csharpLabel 작동 방식 ChromePdfRenderer는 내부적으로 샌드박스 처리된 Chromium 인스턴스를 실행합니다. 별도의 Chrome 설치는 필요하지 않습니다. RenderUrlAsPdf는 JavaScript 기반 콘텐츠, CSS 미디어 쿼리 및 글꼴을 포함하여 완전히 렌더링된 DOM을 캡처합니다. 결과적으로 생성되는 PdfDocument는 출력물을 병합하거나, 암호로 보호하거나, 디지털 서명하는 데 도움이 되는 메서드를 제공합니다. 이러한 기능은 이 튜토리얼의 뒷부분에서 다룹니다. Azure App Service, AWS Lambda, 온프레미스 Linux 등 배포 관련 세부 사항은 전용 설치 가이드 및 고급 NuGet 설정 페이지를 참조하세요. Docker 및 K8s 클러스터에 대한 내부 CI/CD 팁은 Docker 배포 모범 사례 에서 다룹니다. .NET Core 서비스에서 웹사이트 URL을 PDF로 변환하는 방법은 무엇인가요? RenderUrlAsPdf를 한 번만 호출하면 됩니다. 공개적으로 접근 가능한 URL을 전달하면 IronPDF는 표준을 준수하는 완벽하게 렌더링된 PDF를 반환합니다. 아래 코드는 .NET 8 LTS를 대상으로 하며, .NET 9 미리 보기 버전과 2025년에 출시될 예정인 .NET 10에서도 변경 없이 컴파일됩니다. 단계별 예시 // Program.cs — .NET 8 LTS-compatible using IronPdf; // 1. Activate a license (or trial key) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // 2. Create a reusable renderer instance var renderer = new ChromePdfRenderer { RenderingOptions = { // Force A4 portrait output and apply @media print styles PaperSize = PdfPaperSize.A4, CssMediaType = PdfCssMediaType.Print } }; // 3. Convert Microsoft Docs home page to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/"); // 4. Save the PDF or stream it from a Web API pdf.SaveAs("docs-offline-copy.pdf"); // Program.cs — .NET 8 LTS-compatible using IronPdf; // 1. Activate a license (or trial key) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // 2. Create a reusable renderer instance var renderer = new ChromePdfRenderer { RenderingOptions = { // Force A4 portrait output and apply @media print styles PaperSize = PdfPaperSize.A4, CssMediaType = PdfCssMediaType.Print } }; // 3. Convert Microsoft Docs home page to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/"); // 4. Save the PDF or stream it from a Web API pdf.SaveAs("docs-offline-copy.pdf"); $vbLabelText $csharpLabel 작동 원리 ChromePdfRenderer는 시스템 Chrome 종속성 없이 샌드박스 환경에서 Chromium 인스턴스를 실행하여 Docker 이미지 크기를 줄입니다. RenderUrlAsPdf는 스냅샷을 찍기 전에 DOM과 JavaScript가 완료될 때까지 기다리므로 단일 페이지 앱이 올바르게 렌더링됩니다. CssMediaType 를 인쇄 로 설정하면 엔진은 브라우저의 인쇄 → PDF로 저장 출력과 일치하는 인쇄 관련 규칙을 사용하게 됩니다. 생성된 PdfDocument는 암호화, 디지털 서명, 병합 또는 래스터화할 수 있으며, 이러한 기능은 이후 섹션에서 다룹니다. 팁 픽셀 단위 디버깅: renderer.LoggingOptions.DebugMode = true를 활성화하고 헤드리스 크롬 디버그 가이드를 따라 렌더링 중 실시간 개발자 도구를 검사하세요. 관련 자료 API 참조 – ChromePdfRenderer.RenderUrlAsPdf API 참조 – PdfDocument.SaveAs 튜토리얼 – Docker 컨테이너에 IronPDF 배포하기 .NET Core에서 HTML 원본을 PDF로 변환하는 방법은 무엇인가요? HTML 문자열이나 Razor 뷰의 렌더링된 마크업을 ChromePdfRenderer.RenderHtmlAsPdf에 전달하면 표준을 준수하는 PDF가 즉시 생성됩니다. 이 방법은 IronPDF에 내장된 Chromium 엔진을 실행하므로 외부 브라우저 설치나 WebView 종속성이 필요하지 않습니다. 아래에 표시된 코드는 현재 .NET 8 LTS에서 컴파일되며 .NET 9 및 2025년 11월 출시 예정인 .NET 10과도 호환성을 유지합니다. 예시 - HTML 조각에서 PDF 생성 // Program.cs — compatible with .NET 8 and newer using IronPdf; // Sample HTML fragment (could also be read from a file, Razor view, or CMS) const string html = """ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Quarterly Report</title> <style> body { font-family:'Segoe UI', sans-serif; margin:1.2rem; } header { margin-bottom:2rem; } h1 { color:#3056d3; } table { width:100%; border-collapse:collapse; margin-top:1rem; } th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; } tr:nth-child(even){ background-color:#f8f9fa; } </style> </head> <body> <header><h1>Q2 Revenue Summary</h1></header> <table> <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead> <tbody> <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr> <tr><td>IronOCR for .NET</td><td>890,000</td></tr> <tr><td>IronXL for .NET</td><td>610,000</td></tr> </tbody> </table> </body> </html> """; // 1. Create a renderer once and reuse it across conversions var renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A4, // ISO-standard paper size PaperOrientation = PdfPaperOrientation.Portrait, CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS RenderDelay = 100, // Wait 100 ms for JS/animations FallbackEncoding = "utf-8" // Handle non-ASCII correctly } }; // 2. Render the HTML fragment using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // 3. Persist to disk or return via ASP.NET Core FileStreamResult pdf.SaveAs("q2-report.pdf"); // Program.cs — compatible with .NET 8 and newer using IronPdf; // Sample HTML fragment (could also be read from a file, Razor view, or CMS) const string html = """ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Quarterly Report</title> <style> body { font-family:'Segoe UI', sans-serif; margin:1.2rem; } header { margin-bottom:2rem; } h1 { color:#3056d3; } table { width:100%; border-collapse:collapse; margin-top:1rem; } th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; } tr:nth-child(even){ background-color:#f8f9fa; } </style> </head> <body> <header><h1>Q2 Revenue Summary</h1></header> <table> <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead> <tbody> <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr> <tr><td>IronOCR for .NET</td><td>890,000</td></tr> <tr><td>IronXL for .NET</td><td>610,000</td></tr> </tbody> </table> </body> </html> """; // 1. Create a renderer once and reuse it across conversions var renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A4, // ISO-standard paper size PaperOrientation = PdfPaperOrientation.Portrait, CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS RenderDelay = 100, // Wait 100 ms for JS/animations FallbackEncoding = "utf-8" // Handle non-ASCII correctly } }; // 2. Render the HTML fragment using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // 3. Persist to disk or return via ASP.NET Core FileStreamResult pdf.SaveAs("q2-report.pdf"); $vbLabelText $csharpLabel 이 코드가 보여주는 것 Chromium 내장 -- IronPDF는 Chromium 엔진을 포함하여 최신 브라우저와 HTML5, CSS3 및 JavaScript 호환성을 보장합니다. 단일 종속성 -- 가벼운 NuGet 설치로 Windows, Linux, Docker 및 Azure/AWS를 추가 시스템 라이브러리 없이 지원합니다. 렌더링 옵션 -- PaperSize, CssMediaType, 및 RenderDelay는 브라우저 인쇄 설정을 반영하여 PDF가 화면 레이아웃과 일치하도록 합니다. 미래 지향적인 타겟팅 -- API 표면은 .NET 8, .NET 9 STS 및 곧 출시될 .NET 10에서 동일하므로 장기적인 유지 관리가 최소화됩니다 . 후처리 후크 -- PdfDocument는 병합, 암호 보호 및 디지털 서명을 위한 도우미 기능을 제공합니다. 각 기능은 이 가이드의 뒷부분에서 자세히 다룹니다. 추가 정보: 단계별 HTML 문자열-PDF 변환 튜토리얼 과 전체 ChromePdfRenderer API 문서를 참조하세요. ASP .NET Core MVC 뷰를 PDF로 내보내는 방법은 무엇인가요? IronPDF는 브라우저와 동일한 방식으로 완전히 처리된 Razor 뷰( .cshtml )를 렌더링하고 결과를 PdfDocument로 스트리밍합니다. 아래 워크플로는 컨트롤러 로직을 깔끔하게 유지하고, 브라우저 플러그인이 필요하지 않으며, .NET 8 LTS, .NET 9 미리 보기 및 2025년 11월 출시 예정인 .NET 10에서 작동합니다. 엔드투엔드 컨트롤러 예시 // TicketsController.cs — .NET 8 LTS / MVC using IronPdf; using Microsoft.AspNetCore.Mvc; using YourApp.Models; // TicketViewModel public class TicketsController : Controller { private readonly ChromePdfRenderer _renderer; public TicketsController() { _renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A5, // Compact ticket size PaperOrientation = PdfPdfOrientation.Portrait, FitToPaperWidth = true, CssMediaType = PdfCssMediaType.Print, Margins = new PdfMargins(5, 10, 5, 10) // mm } }; } // GET /Tickets/Print/42 public async Task<IActionResult> Print(int id) { TicketViewModel vm = await _service.GetTicketAsync(id); // 1. Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderViewAsync( HttpContext, "~/Views/Tickets/Print.cshtml", vm); // 2. Convert HTML → PDF using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html); // 3. Stream back as a file return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf"); } } // TicketsController.cs — .NET 8 LTS / MVC using IronPdf; using Microsoft.AspNetCore.Mvc; using YourApp.Models; // TicketViewModel public class TicketsController : Controller { private readonly ChromePdfRenderer _renderer; public TicketsController() { _renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A5, // Compact ticket size PaperOrientation = PdfPdfOrientation.Portrait, FitToPaperWidth = true, CssMediaType = PdfCssMediaType.Print, Margins = new PdfMargins(5, 10, 5, 10) // mm } }; } // GET /Tickets/Print/42 public async Task<IActionResult> Print(int id) { TicketViewModel vm = await _service.GetTicketAsync(id); // 1. Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderViewAsync( HttpContext, "~/Views/Tickets/Print.cshtml", vm); // 2. Convert HTML → PDF using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html); // 3. Stream back as a file return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf"); } } $vbLabelText $csharpLabel 이 코드가 보여주는 것 임시 파일이 없습니다 . Razor 뷰는 메모리에 렌더링된 다음 RenderHtmlAsPdf 로 직접 전달되어 디스크 I/O 및 임시 폴더 경쟁 조건을 방지합니다. 티켓 크기의 출력물 -- PaperSize = A5 및 좁은 여백으로 가정에서 출력하는 티켓을 컴팩트하게 유지할 수 있습니다. 일관된 인쇄 스타일 -- CssMediaType = Print는 브라우저에서 사용하는 것과 동일한 @media print CSS 규칙을 적용합니다. 바이너리 스트리밍 -- pdf.BinaryData는 파일 시스템을 건드리지 않고 문서를 스트리밍합니다. API 엔드포인트 및 Lambda 함수에 이상적입니다. 재사용 가능한 렌더러 -- ChromePdfRenderer는 컨트롤러당 한 번 인스턴스화된 후 재사용되어 프로세스 생성 오버헤드를 최소화합니다. ## Paper & Orientation `PaperSize` , `PaperOrientation` , `FitToPaperWidth` ## Margins & Headers / Footers `Margins` , `Header` , `Footer` , `Watermark` 다음 단계: 암호화, 디지털 서명을 추가하거나 여러 티켓을 하나의 파일로 병합하세요. 병합 예시 와 디지털 서명 방법을 참조하세요. 인쇄하기 전에 용지 크기, 여백, 머리글, 워터마크 및 보안 설정을 어떻게 세밀하게 조정할 수 있나요? IronPDF는 용지 크기, 방향, 머리글 및 바닥글, JavaScript 타이밍, 워터마크, 암호화 및 디지털 서명 등 출력의 모든 측면을 제어하는 단일 ChromePdfRenderOptions 객체를 제공하며, 추가 브라우저 플러그인이 필요하지 않습니다. 코드 예시 — 여러 옵션을 한 번에 적용하기 // AdvancedOptions.cs — .NET 8 compatible using IronPdf; var renderer = new ChromePdfRenderer(); // Configure everything in one place renderer.RenderingOptions = new ChromePdfRenderOptions { // 1. Page layout PaperSize = PdfPaperSize.A4, // ISO size PaperOrientation = PdfPdfOrientation.Portrait, Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm // 2. Timing & media CssMediaType = PdfCssMediaType.Print, // Respect @media print EnableJavaScript = true, RenderDelay = 200, // Wait 200 ms for animations // 3. Headers & footers (HTML gives full design freedom) HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>", HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>", // 4. Watermark Watermark = new HtmlStamp { HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, // 5. Security SecurityOptions = new PdfSecurityOptions { OwnerPassword = "StrongOwnerPwd!", UserPassword = "ReadOnly", AllowUserPrinting = false, AllowUserCopyPasteContent = false } }; // Render any HTML using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>"); // Digitally sign with a PFX certificate (optional) pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval"); // Save pdf.SaveAs("advanced-options-demo.pdf"); // AdvancedOptions.cs — .NET 8 compatible using IronPdf; var renderer = new ChromePdfRenderer(); // Configure everything in one place renderer.RenderingOptions = new ChromePdfRenderOptions { // 1. Page layout PaperSize = PdfPaperSize.A4, // ISO size PaperOrientation = PdfPdfOrientation.Portrait, Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm // 2. Timing & media CssMediaType = PdfCssMediaType.Print, // Respect @media print EnableJavaScript = true, RenderDelay = 200, // Wait 200 ms for animations // 3. Headers & footers (HTML gives full design freedom) HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>", HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>", // 4. Watermark Watermark = new HtmlStamp { HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, // 5. Security SecurityOptions = new PdfSecurityOptions { OwnerPassword = "StrongOwnerPwd!", UserPassword = "ReadOnly", AllowUserPrinting = false, AllowUserCopyPasteContent = false } }; // Render any HTML using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>"); // Digitally sign with a PFX certificate (optional) pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval"); // Save pdf.SaveAs("advanced-options-demo.pdf"); $vbLabelText $csharpLabel 이러한 선택 사항들이 중요한 이유 PaperSize, Margins, 및 CssMediaType는 브라우저의 인쇄 대화 상자를 미러링하여 화면 레이아웃과 PDF가 Windows, Linux 및 Docker에서 동일하게 유지되도록 합니다. HTML 헤더와 푸터는 Razor 토큰, CSS 및 JavaScript를 지원하므로 동적 페이지 번호 또는 브랜딩에 유용합니다. HtmlStamp를 사용하면 HTML과 CSS를 완벽하게 제어하여 단 한 줄의 코드로 브랜드 워터마크를 만들 수 있습니다. 보안 옵션을 통해 타사 도구 없이 128비트 암호화, 소유자/사용자 암호 및 세부적인 권한 설정을 사용할 수 있습니다. 디지털 서명은 코드에 직접 암호화 봉인을 추가하여 법적 진위성과 위변조 방지 기능을 유지합니다. ExtractAllText 및 ExtractAllImages와 같은 추출 도우미는 분석이 필요한 경우 프로세스를 역으로 수행합니다. 빠른 참조 — 자주 사용하는 설정 ## Page Layout & Media `PaperSize` , `PaperOrientation` , `Margins` , `CssMediaType` , `RenderDelay` ## Headers & Footers `HtmlHeader` , `HtmlFooter` , 동적 Razor 플레이스홀더, 페이지 번호 토큰 ## 워터마킹 `Watermark` , `HtmlStamp` , 투명도, 정렬 ## Encryption & Signatures `SecurityOptions` , `SignAndStamp` , 소유자/사용자 암호, 인증서 봉인 다음 작업: 여러 PDF 파일 병합, 텍스트 및 이미지 추출, Docker 또는 서버리스 환경에 배포. 플랫폼 간 호환성을 확보하려면 배포 섹션으로 진행하십시오. Linux와 Windows의 Docker 환경에 PDF 생성 코드를 배포하려면 어떻게 해야 할까요? IronPDF는 단일 독립형 NuGet 패키지 로 제공되므로 Windows와 Linux 모두 에서 ASP.NET Core(또는 콘솔) 앱을 컨테이너화하는 것이 간단합니다. 핵심은 게시된 바이너리를 간소화된 런타임 이미지에 복사하고, Linux에서는 IronPDF에 필요한 두 가지 네이티브 라이브러리(libnss3 및 libatk1.0-0)를 추가하는 것입니다. 멀티스테이지 Dockerfile (Ubuntu 22.04) 참고해 주세요 왜 다단계인가요? SDK 이미지(1단계)는 프로젝트를 컴파일합니다. 빌드 도구가 폐기되므로 최종 런타임 이미지(2단계)는 120MB 미만의 가벼운 크기를 유지합니다. ####### ---------- stage 1 ---------- FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["MyPdfApp.csproj", "."] RUN dotnet restore COPY . . RUN dotnet publish -c Release -o /app/publish ####### ---------- stage 2 ---------- FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy ######## Install two native libs required by Chromium RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "MyPdfApp.dll"] [{i:( Windows 컨테이너? 두 번째 단계를 mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022로 바꾸세요. Chromium DLL이 번들로 제공되므로 추가 패키지가 필요하지 않습니다. 엔드투엔드 검증 스크립트 docker build -t pdf-demo . docker run --rm -p 8080:80 pdf-demo ######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com docker build -t pdf-demo . docker run --rm -p 8080:80 pdf-demo ######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com SHELL API 작업은 섹션 2에서와 같이 내부적으로 ChromePdfRenderer.RenderUrlAsPdf를 호출합니다. IronPDF는 컨테이너 내부에서 샌드박스 처리된 Chromium 프로세스를 실행합니다. 헤드리스 렌더링을 사용하기 때문에 X 서버가 필요하지 않습니다. 대용량 렌더링 중에도 메모리 사용량은 200MB 미만으로 유지됩니다. 팁 문제 해결 팁: 컨테이너 로그에 "libnss3.so를 찾을 수 없음" 오류가 표시되면 libnss3 및 libatk1.0-0가 모두 존재하는지 확인하십시오. musl C 라이브러리에 필요한 심볼이 부족하여 Alpine 이미지를 지원 하지 않습니다 . 내부 자원 튜토리얼 – Docker 컨테이너에 IronPDF 배포하기 방법 - Azure App Service Linux에서 IronPDF 실행하기 API 참조 – ChromePdfRenderer 클래스 .NET Core에서 기존 PDF 파일을 열고, 병합하고, 워터마크를 추가하고, 콘텐츠를 추출하는 방법은 무엇인가요? IronPDF는 IronPDF, Adobe® Acrobat 또는 타사 도구로 생성된 모든 PDF 파일을 품질 손실 없이 열고, 편집하고, 보호하고, 다시 저장할 수 있는 최고 수준의 PdfDocument 객체로 취급합니다. 동일한 API 인터페이스는 현재 .NET 8 LTS에서 작동하며 .NET 9 미리 보기 및 곧 출시될 .NET 10에서도 변경 없이 컴파일됩니다. 통합 샘플 — 열기 → 병합 → 워터마크 → 추출 // ManipulateExistingPdf.cs — .NET 8 LTS compatible using IronPdf; using System.Linq; // Step 1: Open two existing files (password-protected PDFs are supported) PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required // Step 2: Merge them (invoice pages first, then T&Cs) PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge // Step 3: Apply a diagonal CONFIDENTIAL watermark to every page mergedPdf.ApplyStamp( "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);" + "width:100%;text-align:center;'>CONFIDENTIAL</div>", verticalAlignment : VerticalAlignment.Center, horizontalAlignment : HorizontalAlignment.Center); // Step 4: Extract all text and the first image for audit purposes string fullText = mergedPdf.ExtractAllText(); var image = mergedPdf.ExtractAllImages().FirstOrDefault(); // Step 5: Save or stream mergedPdf.SaveAs("invoice-with-terms.pdf"); // ManipulateExistingPdf.cs — .NET 8 LTS compatible using IronPdf; using System.Linq; // Step 1: Open two existing files (password-protected PDFs are supported) PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required // Step 2: Merge them (invoice pages first, then T&Cs) PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge // Step 3: Apply a diagonal CONFIDENTIAL watermark to every page mergedPdf.ApplyStamp( "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);" + "width:100%;text-align:center;'>CONFIDENTIAL</div>", verticalAlignment : VerticalAlignment.Center, horizontalAlignment : HorizontalAlignment.Center); // Step 4: Extract all text and the first image for audit purposes string fullText = mergedPdf.ExtractAllText(); var image = mergedPdf.ExtractAllImages().FirstOrDefault(); // Step 5: Save or stream mergedPdf.SaveAs("invoice-with-terms.pdf"); $vbLabelText $csharpLabel 이것이 중요한 이유 열기 및 병합 – PdfDocument.FromFile는 암호화된 파일을 포함하여 표준을 준수하는 모든 PDF를 로드하고, PdfDocument.Merge는 단일 호출로 임의의 개수의 문서를 연결합니다. 워터마크 – ApplyStamp (별칭 HtmlStamp)는 래스터화 없이 선택한 페이지에 로고, QR 코드 또는 대각선 텍스트와 같은 완벽하게 스타일링된 HTML/CSS 오버레이를 삽입합니다. 콘텐츠 추출 – ExtractAllText 및 ExtractAllImages는 다운스트림 아카이빙 또는 AI 파이프라인을 위해 원시 UTF-8 텍스트 또는 바이너리 이미지 스트림을 추출합니다. 디지털 서명 준비 완료 – 동일한 PdfDocument 인스턴스를 SignAndStamp로 봉인하여 ISO 32000-2 디지털 서명 요구 사항 에 맞춰 RFC 3161을 준수하는 해시를 생성할 수 있습니다. 개방형 표준 준수 – IronPDF는 원본 PDF 구조(글꼴, 레이어, XMP 메타데이터)를 유지하므로 출력물이 Adobe® Reader 및 기타 ISO 32000-1 뷰어와 호환됩니다. 미래 지향적 – 이 API는 상호 운용 어셈블리 및 Win32 GDI 호출을 사용하지 않으므로 코드는 Windows, Linux, Docker 및 향후 출시될 .NET 10 서버리스 SKU에서 변경 없이 실행됩니다. 페이지를 분할, 회전 또는 삭제해야 하시나요? 세부적인 작업 방법은 페이지 수준 편집 튜토리얼을 참조하세요. .NET Core에서 PDF 파일을 암호화하고 디지털 서명하는 방법은 무엇인가요? IronPDF는 두 단계를 통해 문서를 보호합니다. 첫 번째 단계는 AES 기반 암호화 (사용자/소유자 암호 + 세부적인 권한 설정)이고, 두 번째 단계는 암호화 해시로 파일을 봉인하는 X.509 디지털 서명입니다 . 두 API는 동일한 PdfDocument 객체에 존재하므로 워크플로는 현재 .NET 8 LTS에서 동일하며 .NET 9 미리 보기 및 곧 출시될 .NET 10에서도 변경 없이 컴파일됩니다. 예시 — 256비트 AES 암호화를 적용하고, 인쇄 권한을 잠그고, 서명을 표시합니다. // SecureAndSign.cs — .NET 8 LTS compatible using IronPdf; // Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf) PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf"); // Step 2: Configure AES-256 encryption & permissions pdf.SecuritySettings = new PdfSecuritySettings { EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit, OwnerPassword = "IronAdmin!2025", UserPassword = "ReadOnly", AllowUserPrinting = PdfPrintSecurity.Disabled, AllowUserCopyPasteContent = false, AllowUserAnnotations = false }; // Step 3: Digitally sign with a PFX certificate pdf.SignAndStamp( certificatePath : "./certs/ironsoftware.pfx", authority : "Iron Software Ltd.", location : "Chicago, IL", reason : "Final approval" ); // Step 4: Persist or stream pdf.SaveAs("financial-report-secured-signed.pdf"); // SecureAndSign.cs — .NET 8 LTS compatible using IronPdf; // Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf) PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf"); // Step 2: Configure AES-256 encryption & permissions pdf.SecuritySettings = new PdfSecuritySettings { EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit, OwnerPassword = "IronAdmin!2025", UserPassword = "ReadOnly", AllowUserPrinting = PdfPrintSecurity.Disabled, AllowUserCopyPasteContent = false, AllowUserAnnotations = false }; // Step 3: Digitally sign with a PFX certificate pdf.SignAndStamp( certificatePath : "./certs/ironsoftware.pfx", authority : "Iron Software Ltd.", location : "Chicago, IL", reason : "Final approval" ); // Step 4: Persist or stream pdf.SaveAs("financial-report-secured-signed.pdf"); $vbLabelText $csharpLabel 비하인드 스토리 AES-256 암호화 -- IronPDF는 NIST 승인 AES 키로 페이로드를 감싸 무단 열람, 인쇄 또는 복사 붙여넣기를 차단합니다. 권한 세분화 -- AllowUserPrinting 및 AllowUserFormData 와 같은 속성은 작업별 권한을 전환합니다. 제한 사항을 적용하려면 소유자 암호가 필요합니다. 디지털 서명 -- SignAndStamp는 RFC 3161 타임스탬프와 인증서 체인을 포함하여 Adobe® Acrobat 및 기타 ISO 32000-2 뷰어에서 인식할 수 있는 변조 방지 해시를 생성합니다. 원스톱 API -- 암호화와 서명 모두 동일한 PdfDocument 인스턴스를 수정하므로 여러 파일 처리를 방지하고 내부 글꼴, 레이어 및 메타데이터를 보존합니다. [{t:( 문제 해결 팁: Adobe Reader에서 "잘못된 서명" 오류가 발생하는 경우, PFX 파일에 신뢰할 수 있는 루트 인증서가 포함되어 있는지, 그리고 reason/location 문자열이 ASCII 형식으로 올바른지 확인하십시오. 핵심 보안 설정 ## Encryption & Passwords `PdfSecuritySettings` → `OwnerPassword` , `UserPassword` , `EncryptionAlgorithm` , `AllowUserPrinting` ## 디지털 서명 `PdfDocument.SignAndStamp` — PFX 경로, 권한, 위치, 사유, 타임스탬프 심층 분석을 위한 내부 자료 튜토리얼 – PDF에 비밀번호로 보호하기 예시 – PDF에 디지털 서명하기 API 참조 – PdfSecuritySettings .NET Core에서 HTML을 PDF로 변환하는 성능을 최적화하고 확장하는 방법은 무엇일까요? IronPDF의 Chromium 엔진은 최신 하드웨어에서 대부분의 페이지를 1초 이내에 렌더링하지만, 렌더링을 일괄 처리하고, 멀티스레딩을 활성화하고, 헤드리스 Chrome 오버헤드를 줄이면 처리량을 크게 향상시킬 수 있습니다. 아래의 팁은 모든 .NET 버전에 동일하게 적용됩니다. 1. 백그라운드 스레드 풀에서 일괄 렌더링 // BatchRender.cs — Thread-safe on .NET 8+ using IronPdf; using System.Threading.Tasks; var htmlSources = Directory.GetFiles("./html", "*.html"); var renderer = new ChromePdfRenderer(); // reuse 1 instance Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file => { string html = File.ReadAllText(file); using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(Path.ChangeExtension(file, ".pdf")); }); // BatchRender.cs — Thread-safe on .NET 8+ using IronPdf; using System.Threading.Tasks; var htmlSources = Directory.GetFiles("./html", "*.html"); var renderer = new ChromePdfRenderer(); // reuse 1 instance Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file => { string html = File.ReadAllText(file); using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(Path.ChangeExtension(file, ".pdf")); }); $vbLabelText $csharpLabel ChromePdfRenderer는 스레드 안전합니다 . 단일 인스턴스가 교착 상태 없이 수십 개의 동시 작업을 처리할 수 있습니다. Parallel.ForEach는 모든 CPU 코어를 포화시킵니다. 일반적인 서버는 단일 스레드 루프에 비해 처리량이 4~6배 향상됩니다. ASP.NET 요청이 대기열에 쌓이는 경우, 응답 시간을 낮추기 위해 렌더링 작업이 많은 경우 호스팅된 백그라운드 서비스 또는 메시지 큐로 이동하세요 . 2. 헤드리스 크롬 시작 비용 절감 IronPDF는 자체 Chromium 빌드를 제공하지만, 렌더링할 때마다 약간의 시작 비용이 발생합니다. 풀링은 도움이 되며, Linux 컨테이너에는 두 가지 네이티브 라이브러리가 포함되어야 합니다. RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 Missing either library manifests as a libnss3.so not found error in Docker logs. Recommended Chrome flags (automatically applied by IronPDF) include --disable-gpu and --no-sandbox to reduce memory and root-user issues in containers. 3. RenderDelay 또는 WaitFor를 사용하여 지연된 JavaScript를 기다립니다. 카운터를 애니메이션으로 표시하거나 DOMContentLoaded 이후에 데이터를 가져오는 페이지는 약간의 지연이 필요할 수 있습니다. renderer.RenderingOptions.RenderDelay = 200; // ms // OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')"; renderer.RenderingOptions.RenderDelay = 200; // ms // OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')"; $vbLabelText $csharpLabel 사용자 지정 프로미스와 DOM 폴링에 대한 자세한 내용은 WaitFor 튜토리얼을 참조하세요. 4. 특정 요청에 대해 디버그 로깅을 활성화합니다. renderer.LoggingOptions.DebugMode = true; renderer.LoggingOptions.LogsToConsole = true; renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"; renderer.LoggingOptions.DebugMode = true; renderer.LoggingOptions.LogsToConsole = true; renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"; $vbLabelText $csharpLabel 실시간 개발자 도구 추적 기능을 사용하면 코드를 다시 컴파일하지 않고도 누락된 글꼴, 404 이미지 및 타이밍 이벤트를 확인할 수 있습니다. 5. 다시 렌더링하는 대신 템플릿 PDF를 재사용하세요. 송장 발행 시에는 복잡한 HTML을 다시 만드는 대신 [[name]]와 같은 자리 표시자가 포함된 템플릿 PDF를 생성 하고 텍스트를 바꾸는 방식을 사용하세요. 속도가 10배 더 빠르고 메모리 사용량도 적습니다. 빠른 튜닝 체크리스트 ## Multi-Thread & Async `Parallel.ForEach` , `async/await` 사용하여 단일 `ChromePdfRenderer` 재사용합니다. ## Docker 최적화 이미지 `aspnet:8.0-jammy` 사용하고 `libnss3` 및 `libatk1.0-0` 설치합니다. `--no-sandbox` 및 `--disable-gpu` 플래그를 사용합니다. ## 자바스크립트 타이밍 SPA 하이드레이션이 느린 경우 `RenderDelay` , `WaitFor()` , DevTools 타임라인 로그를 확인하세요. 추가 자료 방법 - 비동기/멀티스레딩을 사용하여 PDF 생성하기 문제 해결 - 성능 지원 센터 예시 – 스레드 렌더링 데모 무료 체험판은 어디에서 다운로드하고, 라이선스를 선택하고, 전문가 지원을 받을 수 있나요? {#anchor-10-resources} '무료 체험 시작' 양식을 작성하시면 30일 무료 체험판 키가 즉시 발급되며, 워터마크 없이 HTML-PDF 변환, 디지털 서명, 암호화 등 모든 기능을 이용하실 수 있습니다. 라이브러리를 평가한 후 영구 개발자 라이선스 , 배포 라이선스 또는 Enterprise 라이선스를 선택하십시오. 각 플랜에는 무료 마이너 업데이트, 개발/스테이징/프로덕션 사용 권한, 그리고 30일 환불 보증이 포함됩니다. 핵심 기능을 적용하는 데 필요한 코드는 단 한 줄(IronPdf.License.LicenseKey = "YOUR-KEY";)이며, CI/CD 파이프라인에서 자동화할 수 있습니다. 포괄적인 문서 (빠른 시작 가이드 , API 참조 및 튜토리얼 비디오) 는 문서 포털에서 확인할 수 있으며 모든 .NET 릴리스에 맞춰 업데이트됩니다. 엔지니어링 관련 질문은 시카고에 위치한 지원팀에서 실시간 채팅 , 이메일 또는 전화를 통해 영업일 기준 하루 이내에 답변을 받으실 수 있습니다. 성능 튜닝 및 배포 관련 FAQ는 성능 지원 센터에 모여 있습니다. 바로가기 링크 의지 URL 왜 중요한가 30일 무료 체험판 키를 받으세요 https://ironpdf.com/demos/ 워터마크 없이 모든 기능을 사용할 수 있습니다. 라이선스 및 가격 책정 https://ironpdf.com/licensing/ 영구 구독 플랜 또는 정기 구독 플랜; Iron Suite는 10개의 라이브러리를 묶어서 제공합니다. API 참조 https://ironpdf.com/object-reference/api/ 전체 클래스 문서, 예: ChromePdfRenderer 문서 포털 https://ironpdf.com/docs/ 가이드, 튜토리얼, 샘플 프로젝트 성능 지원 https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/ 최적화 및 확장 팁 고객 지원팀에 문의하세요. https://ironsoftware.com/contact-us/ 실시간 채팅, 이메일, 전화 지원 다음 단계 MVC 뷰 렌더링부터 AES-256 암호화까지 모든 주요 기능을 보여주는 샘플 저장소를 복제하세요 . 평가판 키를 기존 솔루션에 연결하고 단위 테스트를 실행하여 플랫폼 간 호환성을 검증하십시오. 프로젝트별 맞춤 권장 사항을 받으려면 엔지니어링 팀과 실시간 데모를 예약하세요 . 이러한 리소스를 활용하면 모든 .NET 팀은 단 한 번의 스프린트 내에 온프레미스, Docker 또는 서버리스 환경에서 픽셀 단위까지 완벽한 PDF를 제작하여 배포할 수 있습니다. 자주 묻는 질문 .NET Core에서 HTML을 PDF로 변환하는 방법은 무엇인가요? .NET Core에서 IronPDF 라이브러리를 사용하면 HTML을 PDF로 변환할 수 있습니다. 먼저 IronPDF NuGet 패키지를 설치한 다음 `ChromePdfRenderer` 인스턴스를 생성합니다. `RenderHtmlAsPdf` 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 웹사이트 URL을 PDF 문서로 변환하는 방법은 무엇인가요? 웹사이트 URL을 PDF 문서로 변환하려면 IronPDF NuGet 패키지를 설치하고 `ChromePdfRenderer` 인스턴스를 생성한 다음 `RenderUrlAsPdf` 메서드를 사용하여 URL을 PDF로 렌더링합니다. 결과는 `SaveAs` 메서드를 사용하여 저장할 수 있습니다. Razor 뷰를 PDF로 변환하는 가장 좋은 방법은 무엇인가요? Razor 뷰를 PDF로 변환하는 가장 좋은 방법은 IronPDF를 사용하는 것입니다. 먼저 Razor 뷰를 HTML 문자열로 렌더링한 다음, 이 문자열을 `RenderHtmlAsPdf` 메서드에 전달하여 PDF 문서를 생성합니다. PDF 문서의 보안을 강화하려면 어떻게 해야 할까요? IronPDF를 사용하여 AES-256 암호화를 적용하고, 암호를 설정하고, 사용자 권한을 제어하여 PDF 보안을 강화하세요. `SecuritySettings` 속성을 통해 이러한 설정을 구성하여 인쇄 및 편집과 같은 작업을 제한할 수 있습니다. PDF 렌더링을 사용자 지정하는 데 사용할 수 있는 옵션은 무엇입니까? IronPDF는 `ChromePdfRenderOptions` 클래스를 통해 용지 크기, 방향, 여백 설정 및 CSS 미디어 유형 적용을 포함한 다양한 렌더링 옵션을 제공합니다. 또한 사용자 지정 문서 출력을 위해 머리글, 바닥글 및 워터마크를 추가할 수 있습니다. Docker 컨테이너에 PDF 생성 애플리케이션을 배포하려면 어떻게 해야 하나요? Docker 컨테이너에 PDF 생성 애플리케이션을 배포하려면 Dockerfile에서 Linux 종속성을 구성하고 사용자 권한을 설정해야 합니다. 종속성 자동 관리를 위해 `IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig` 를 활용하십시오. C#을 사용하여 PDF에 워터마크를 추가하는 방법은 무엇인가요? IronPDF를 사용하면 `HtmlStamp` 객체의 `Watermark` 속성을 이용하여 PDF에 워터마크를 추가할 수 있습니다. 고급 옵션으로는 `HtmlStamper` 클래스를 통해 사용자 지정 위치 지정 및 투명도 효과를 적용할 수 있습니다. PDF 문서에 디지털 서명을 추가할 수 있나요? 네, IronPDF의 `PdfSignature` 클래스를 사용하여 PDF에 디지털 서명을 추가할 수 있습니다. `PdfDocument` 객체의 `Sign` 메서드를 사용하고 문서의 무결성과 진위성을 보장하기 위해 인증서 파일을 제공하면 됩니다. .NET Core에서 PDF 생성 성능을 최적화하는 방법은 무엇인가요? 스레드로부터 안전한 `ChromePdfRenderer` 인스턴스를 재사용하고, 멀티스레딩을 활성화하며, 불필요한 헤드리스 Chrome 시작 플래그를 제거하여 PDF 생성 성능을 최적화하세요. 이러한 방법을 통해 애플리케이션의 효율성을 향상시킬 수 있습니다. 이 튜토리얼의 .NET Core HTML-to-PDF 예제는 .NET 10에서도 작동합니까? 네. IronPDF는 .NET 10과 완벽하게 호환되므로 이 튜토리얼의 ChromePdfRenderer HTML-to-PDF 예제를 핵심 코드 변경 없이 .NET 10 프로젝트에서 사용할 수 있습니다. 주요 차이점은 프로젝트를 생성할 때 .NET 10을 대상으로 지정하고 NuGet에서 최신 IronPdf 패키지를 설치하여 HTML, Razor 뷰 또는 URL에서 픽셀 단위까지 정확한 PDF를 생성하는 것입니다. 제이콥 멜러 지금 바로 엔지니어링 팀과 채팅하세요 최고기술책임자 제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다. 제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다. 그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다. 검토자: 제프리 T. 프리츠 .NET 커뮤니티 팀의 수석 프로그램 관리자 제프는 .NET 및 Visual Studio 팀의 수석 프로그램 관리자이기도 합니다. 그는 .NET Conf 가상 컨퍼런스 시리즈의 총괄 프로듀서이며, 개발자를 위한 라이브 스트림 'Fritz and Friends'를 주 2회 진행하며 시청자들과 함께 기술에 대해 이야기하고 코드를 작성합니다. 제프는 Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit 등 주요 Microsoft 개발자 행사를 위한 워크숍, 프레젠테이션 및 콘텐츠 기획을 담당합니다. 시작할 준비 되셨나요? Nuget 다운로드 17,527,568 | 버전: 2026.2 방금 출시되었습니다 NuGet 무료 다운로드 총 다운로드 수: 17,527,568 라이선스 보기