마이그레이션 가이드 PDFreactor에서 IronPDF로의 마이그레이션 방법 (C#) 커티스 차우 업데이트됨:2월 1, 2026 다운로드 IronPDF NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 PDFreactor에서 IronPDF로 마이그레이션하면 Java 종속성과 서버 인프라를 제거하면서 네이티브 .NET 라이브러리를 통한 HTML-to-PDF 변환 기능을 제공합니다. 이 가이드는 Java 기반 서버 아키텍처를 .NET 애플리케이션에 원활하게 통합되는 인프로세스 라이브러리로 대체하는 전체 단계별 마이그레이션 경로를 제공합니다. PDFreactor에서 IronPDF로 마이그레이션하는 이유 PDFreactor이해하기 PDFreactor는 다양한 플랫폼과 통합되는 강력한 HTML-to-PDF 변환 서버입니다. 상업용 솔루션으로서 PDFreactor는 HTML 및 CSS 콘텐츠를 고품질 PDF 문서로 변환하기 위해 독자적인 기술을 활용합니다. 눈에 띄는 속성 중 PDFreactor는 복잡한 레이아웃 렌더링에 적합한 다양한 CSS 속성을 지원합니다. 그러나, PDFreactor는 Java에 의존하여 비토박스 환경에서는 배포 및 통합이 복잡할 수 있는 .NET 환경에서 몇 가지 문제를 제시합니다. Java 종속성은 .NET 애플리케이션에서 추가 통합 작업이 필요하여 부가적인 오버헤드를 유발합니다. Java 종속성 문제 PDFreactor의 아키텍처는 .NET 환경에서 여러 문제를 만듭니다: Java 런타임 필수: 모든 서버에 JRE/JDK 설치가 필요합니다. 서버 아키텍처: 별도 서비스로 실행되어 추가 인프라가 필요합니다. 서버 기반 솔루션으로서 PDFreactor는 각 변환마다 REST API 호출이 필요합니다. 복잡한 배포: 주로 .NET 생태계에서 Java 종속성을 관리하면 설정이 복잡해지고 유지 관리 비용이 증가할 수 있습니다. CI/CD 파이프라인에서 Java + .NET 두 런타임을 관리해야 합니다. 프로세스 간 통신: REST API 또는 소켓 통신이 지연을 추가시킵니다. 모든 PDF 변환은 서버로의 HTTP 왕복이 필요합니다. 별도의 라이선스 관리: 라이선스는 애플리케이션이 아닌 서버 인스턴스에 귀속됩니다. Java 서비스 인스턴스에 연결된 서버당 라이선싱. 자원 격리: 별도의 프로세스 메모리 및 CPU 관리. 추가 서버 모니터링, 규모 조정 및 유지 관리. PDFreactor대비IronPDF비교 기능/측면 PDFreactor IronPDF 네이티브 .NET 라이브러리 아니요 (Java 기반) 예 런타임 Java (외부 서버) 네이티브 .NET (인프로세스) 아키텍처 REST API 서비스 NuGet 라이브러리 배포 Java + 서버 구성 단일 NuGet 패키지 종속성 JRE + HTTP 클라이언트 자급자족 지연 시간 네트워크 왕복 직접 메서드 호출 크로스 플랫폼 기능 예 (Java 의존) 예 (번들 Chromium) CSS 지원 CSS3, CSS Paged Media에 대한 고급 지원 포괄적인 HTML5/CSS3 지원 배포 복잡성 Java로 인해 더 복잡 쉽고, .NET과 직접 통합 PDF 조작 기능 기본 (생성만) 병합, 분할, 편집 및 주석 추가를 포함한 광범위한 기능 PDFreactor와 달리 IronPDF는 .NET 프로젝트에 외부 종속성 없이 매끄럽게 통합되도록 특별히 설계된 본래의 .NET 라이브러리로 자리잡고 있습니다. IronPDF는 번들된 Chromium 렌더링 엔진을 사용하여 몇 줄의 코드로 HTML을 PDF로 변환할 수 있습니다. 2025년 및 2026년 동안 .NET 10 및 C# 14 채택을 계획하는 팀에게 IronPDF는 Java 서버 복잡성을 제거하면서 포괄적인 PDF 생명주기 관리를 제공하는 본래의 .NET 솔루션을 제공합니다. 시작하기 전에 필수 조건 .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+ NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력 IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요 NuGet 패키지 변경 사항 # RemovePDFreactorNuGet packages dotnet remove package PDFreactor.NET dotnet remove package PDFreactor.Native.Windows.x64 # StopPDFreactorserver service (if running locally) # Windows: net stop PDFreactor # Linux: sudo systemctl stop pdfreactor # Install IronPDF dotnet add package IronPdf # RemovePDFreactorNuGet packages dotnet remove package PDFreactor.NET dotnet remove package PDFreactor.Native.Windows.x64 # StopPDFreactorserver service (if running locally) # Windows: net stop PDFreactor # Linux: sudo systemctl stop pdfreactor # Install IronPDF dotnet add package IronPdf SHELL 라이선스 구성 PDFreactor (서버 기반): // License configured on server via config file or command line // Client connects to licensed server var pdfReactor = new PDFreactor("http://pdfreactor-server:9423"); // License configured on server via config file or command line // Client connects to licensed server var pdfReactor = new PDFreactor("http://pdfreactor-server:9423"); ' License configured on server via config file or command line ' Client connects to licensed server Dim pdfReactor = New PDFreactor("http://pdfreactor-server:9423") $vbLabelText $csharpLabel IronPDF (애플리케이션 수준): // One-time setup at application startup IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"; // One-time setup at application startup IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"; ' One-time setup at application startup IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY" $vbLabelText $csharpLabel PDFreactor사용 식별 # FindPDFreactorusage grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" . # Find CSS 분할 미디어rules to convert grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" . # FindPDFreactorusage grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" . # Find CSS 분할 미디어rules to convert grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" . SHELL 완전한 API 참조 네임스페이스 변경 // Before: PDFreactor using RealObjects.PDFreactor; using System.IO; // After: IronPDF using IronPdf; using IronPdf.Rendering; // Before: PDFreactor using RealObjects.PDFreactor; using System.IO; // After: IronPDF using IronPdf; using IronPdf.Rendering; Imports IronPdf Imports IronPdf.Rendering Imports System.IO $vbLabelText $csharpLabel 핵심 클래스 매핑 PDFreactor IronPDF PDFreactor ChromePdfRenderer Configuration ChromePdfRenderOptions Result PdfDocument config.Document = html renderer.RenderHtmlAsPdf(html) result.Document (byte[]) pdf.BinaryData 설정 속성 매핑 PDFreactor구성 IronPDF RenderingOptions config.Document = html renderer.RenderHtmlAsPdf(html) config.Document = url renderer.RenderUrlAsPdf(url) config.PageFormat = PageFormat.A4 RenderingOptions.PaperSize = PdfPaperSize.A4 config.PageOrientation RenderingOptions.PaperOrientation config.PageMargins RenderingOptions.MarginTop/Bottom/Left/Right config.EnableJavaScript = true RenderingOptions.EnableJavaScript = true config.AddUserStyleSheet(css) HTML에 CSS 포함 config.Title pdf.MetaData.Title config.Encryption pdf.SecuritySettings PDFreactor에 없는 새로운 기능 IronPDF기능 설명 PdfDocument.Merge() 여러 PDF 병합 pdf.ApplyWatermark() 워터마크 추가 pdf.ExtractAllText() 텍스트 추출 pdf.Form 양식 채우기 pdf.Sign() 디지털 서명 코드 마이그레이션 예제 예제 1: HTML 문자열을 PDF로 변환 이전 (PDFreactor): // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); string html = "<html><body><h1>Hello World</h1></body></html>"; Configuration config = new Configuration(); config.Document = html; Result result = pdfReactor.Convert(config); File.WriteAllBytes("output.pdf", result.Document); } } // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); string html = "<html><body><h1>Hello World</h1></body></html>"; Configuration config = new Configuration(); config.Document = html; Result result = pdfReactor.Convert(config); File.WriteAllBytes("output.pdf", result.Document); } } Imports RealObjects.PDFreactor Imports System.IO Module Program Sub Main() Dim pdfReactor As New PDFreactor() Dim html As String = "<html><body><h1>Hello World</h1></body></html>" Dim config As New Configuration() config.Document = html Dim result As Result = pdfReactor.Convert(config) File.WriteAllBytes("output.pdf", result.Document) End Sub End Module $vbLabelText $csharpLabel 이후 (IronPDF): // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } Imports IronPdf Imports System Class Program Shared Sub Main() Dim renderer = New ChromePdfRenderer() Dim html As String = "<html><body><h1>Hello World</h1></body></html>" Dim pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("output.pdf") End Sub End Class $vbLabelText $csharpLabel 근본적인 차이점은 아키텍처 패턴입니다. PDFreactor는 PDFreactor 인스턴스를 생성해야 하며(Java 서버에 연결됨), 설정 및 HTML 콘텐츠를 보관할 별도의 Configuration 객체, Convert() 호출하여 Result 객체를 반환받고, 마지막으로 File.WriteAllBytes()를 사용하여 result.Document 바이트를 파일에 작성합니다. IronPDF는 ChromePdfRenderer를 생성하고, HTML 문자열을 사용하여 직접 RenderHtmlAsPdf()를 호출하며, 반환된 PdfDocument에 내장된 SaveAs() 메서드를 사용하여 이를 간소화합니다. 서버 연결, 구성 객체, 수동 바이트 처리 불필요. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요. 예제 2: URL에서 PDF로 변환 이전 (PDFreactor): // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); Configuration config = new Configuration(); config.Document = "https://www.example.com"; Result result = pdfReactor.Convert(config); File.WriteAllBytes("webpage.pdf", result.Document); } } // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); Configuration config = new Configuration(); config.Document = "https://www.example.com"; Result result = pdfReactor.Convert(config); File.WriteAllBytes("webpage.pdf", result.Document); } } Imports RealObjects.PDFreactor Imports System.IO Class Program Shared Sub Main() Dim pdfReactor As New PDFreactor() Dim config As New Configuration() config.Document = "https://www.example.com" Dim result As Result = pdfReactor.Convert(config) File.WriteAllBytes("webpage.pdf", result.Document) End Sub End Class $vbLabelText $csharpLabel 이후 (IronPDF): // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } Imports IronPdf Imports System Class Program Shared Sub Main() Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com") pdf.SaveAs("webpage.pdf") End Sub End Class $vbLabelText $csharpLabel PDFreactor는 HTML 문자열과 URL에 대해 동일한 config.Document 속성을 사용하여 유형을 자동으로 결정합니다. IronPDF는 HTML 문자열을 위한 명시적 메서드 RenderHtmlAsPdf()와 URL을 위한 RenderUrlAsPdf()를 제공합니다. 이 명시적인 접근 방식은 코드 명확성과 IntelliSense 지원을 향상시킵니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요. 예제 3: 페이지 번호가 있는 헤더와 푸터 이전 (PDFreactor): // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"; Configuration config = new Configuration(); config.Document = html; config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }"); Result result = pdfReactor.Convert(config); File.WriteAllBytes("document.pdf", result.Document); } } // NuGet: Install-Package PDFreactor.Native.Windows.x64 using RealObjects.PDFreactor; using System.IO; class Program { static void Main() { PDFreactorpdfReactor = new PDFreactor(); string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"; Configuration config = new Configuration(); config.Document = html; config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }"); Result result = pdfReactor.Convert(config); File.WriteAllBytes("document.pdf", result.Document); } } Imports RealObjects.PDFreactor Imports System.IO Module Program Sub Main() Dim pdfReactor As New PDFreactor() Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>" Dim config As New Configuration() config.Document = html config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }") Dim result As Result = pdfReactor.Convert(config) File.WriteAllBytes("document.pdf", result.Document) End Sub End Module $vbLabelText $csharpLabel 이후 (IronPDF): // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { CenterText = "Header Text" }; renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { CenterText = "Page {page}" }; string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("document.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { CenterText = "Header Text" }; renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { CenterText = "Page {page}" }; string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("document.pdf"); } } Imports IronPdf Imports IronPdf.Rendering Imports System Module Program Sub Main() Dim renderer As New ChromePdfRenderer() renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With { .CenterText = "Header Text" } renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With { .CenterText = "Page {page}" } Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>" Dim pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("document.pdf") End Sub End Module $vbLabelText $csharpLabel 이 예제는 가장 중요한 구문 차이를 보여줍니다. PDFreactor는 @page 규칙, @bottom-center 영역, counter(page)를 사용하여 AddUserStyleSheet()를 통해 주입된 페이지 번호에 CSS 분할 미디어구문을 사용합니다. IronPDF는 TextHeaderFooter 객체가 RenderingOptions.TextHeader 및 RenderingOptions.TextFooter에 할당되는 네이티브 .NET API를 사용합니다. 페이지 번호는 CSS counter(page) 대신 {page} 플레이스홀더를 사용합니다. IronPDF는 또한 헤더/푸터 클래스에 대해 IronPdf.Rendering 네임스페이스를 가져와야 함을 주의하세요. 중요한 마이그레이션 노트 서버 필요 없음 IronPDF는 프로세스 내에서 실행됩니다—설정할 Java 서버가 필요 없음: // PDFreactor: Requires server connection var pdfReactor = new PDFreactor("http://localhost:9423"); // IronPDF: No server URL needed var renderer = new ChromePdfRenderer(); // PDFreactor: Requires server connection var pdfReactor = new PDFreactor("http://localhost:9423"); // IronPDF: No server URL needed var renderer = new ChromePdfRenderer(); ' PDFreactor: Requires server connection Dim pdfReactor = New PDFreactor("http://localhost:9423") ' IronPDF: No server URL needed Dim renderer = New ChromePdfRenderer() $vbLabelText $csharpLabel CSS Paged Media에서IronPDFAPI로 CSS @page 규칙을 RenderingOptions로 대체하십시오: //PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } } //IronPDFequivalent: renderer.RenderingOptions.TextFooter = new TextHeaderFooter { CenterText = "Page {page}" }; //PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } } //IronPDFequivalent: renderer.RenderingOptions.TextFooter = new TextHeaderFooter { CenterText = "Page {page}" }; 'PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } } 'IronPDFequivalent: renderer.RenderingOptions.TextFooter = New TextHeaderFooter With { .CenterText = "Page {page}" } $vbLabelText $csharpLabel 페이지 번호 플레이스홀더 문법 //PDFreactorCSS: counter(page) // IronPDF: {page} //PDFreactorCSS: counter(pages) // IronPDF: {total-pages} //PDFreactorCSS: counter(page) // IronPDF: {page} //PDFreactorCSS: counter(pages) // IronPDF: {total-pages} 'PDFreactorCSS: counter(page) ' IronPDF: {page} 'PDFreactorCSS: counter(pages) ' IronPDF: {total-pages} $vbLabelText $csharpLabel 결과 처리 변경 구성 + 결과 패턴은 직접 PdfDocument로 변경: // PDFreactor: Configuration → Convert → Result → bytes Result result = pdfReactor.Convert(config); byte[] bytes = result.Document; File.WriteAllBytes("output.pdf", bytes); // IronPDF: Direct PdfDocument with built-in methods var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // Or: byte[] bytes = pdf.BinaryData; // PDFreactor: Configuration → Convert → Result → bytes Result result = pdfReactor.Convert(config); byte[] bytes = result.Document; File.WriteAllBytes("output.pdf", bytes); // IronPDF: Direct PdfDocument with built-in methods var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // Or: byte[] bytes = pdf.BinaryData; ' PDFreactor: Configuration → Convert → Result → bytes Dim result As Result = pdfReactor.Convert(config) Dim bytes As Byte() = result.Document File.WriteAllBytes("output.pdf", bytes) ' IronPDF: Direct PdfDocument with built-in methods Dim pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("output.pdf") ' Or: Dim bytes As Byte() = pdf.BinaryData $vbLabelText $csharpLabel 여백 단위 변경 PDFreactor는 문자열을 사용합니다; IronPDF는 밀리미터를 사용합니다: // PDFreactor: config.PageMargins.Top = "1in" // IronPDF: renderer.RenderingOptions.MarginTop = 25.4 // 1 inch in mm // PDFreactor: config.PageMargins.Top = "1in" // IronPDF: renderer.RenderingOptions.MarginTop = 25.4 // 1 inch in mm ' PDFreactor: config.PageMargins.Top = "1in" ' IronPDF: renderer.RenderingOptions.MarginTop = 25.4 ' 1 inch in mm $vbLabelText $csharpLabel 이동 후 새로운 기능 IronPDF로 이전 후, PDFreactor가 제공할 수 없는 기능을 얻게 됩니다: PDF 병합 var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); Dim pdf1 = PdfDocument.FromFile("document1.pdf") Dim pdf2 = PdfDocument.FromFile("document2.pdf") Dim merged = PdfDocument.Merge(pdf1, pdf2) merged.SaveAs("merged.pdf") $vbLabelText $csharpLabel 워터마크 pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>"); pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>"); pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>") $vbLabelText $csharpLabel 텍스트 추출 string text = pdf.ExtractAllText(); string text = pdf.ExtractAllText(); Dim text As String = pdf.ExtractAllText() $vbLabelText $csharpLabel 비밀번호 보호 pdf.SecuritySettings.UserPassword = "userpassword"; pdf.SecuritySettings.OwnerPassword = "ownerpassword"; pdf.SecuritySettings.UserPassword = "userpassword"; pdf.SecuritySettings.OwnerPassword = "ownerpassword"; pdf.SecuritySettings.UserPassword = "userpassword" pdf.SecuritySettings.OwnerPassword = "ownerpassword" $vbLabelText $csharpLabel 기능 비교 요약 기능 PDFreactor IronPDF HTML to PDF ✓ ✓ URL을 PDF로 변환 ✓ ✓ 헤더/푸터 CSS 분할 미디어 본래의 API 페이지 설정 ✓ ✓ JavaScript 지원 ✓ ✓ 네이티브 .NET ✗ ✓ 프로세스 내 ✗ ✓ PDF 병합 ✗ ✓ PDF 분할 ✗ ✓ 워터마크 ✗ ✓ 텍스트 추출 ✗ ✓ 폼 채우기 ✗ ✓ 디지털 서명 ✗ ✓ 마이그레이션 체크리스트 사전 마이그레이션 코드베이스에서 모든PDFreactor사용 인벤토리 사용된 모든 CSS 분할 미디어규칙 문서화 모든 구성 설정(여백, 페이지 크기, JavaScript) 기록 -IronPDF라이선스 키 저장 계획 (환경 변수 권장) -IronPDF체험판 라이선스로 먼저 테스트 패키지 변경 사항 PDFreactor.NET NuGet 패키지 제거 PDFreactor.Native.Windows.x64 NuGet 패키지 제거 IronPdf NuGet Install-Package: dotnet add package IronPdf 코드 변경 사항 네임스페이스 가져오기 업데이트 (using RealObjects.PDFreactor; → using IronPdf;) 헤더/푸터 클래스를 위해 using IronPdf.Rendering; 추가 PDFreactor 클래스를 ChromePdfRenderer로 교체 Configuration 객체를 RenderingOptions 속성으로 변환 config.Document = html를 renderer.RenderHtmlAsPdf(html)로 교체 config.Document = url를 renderer.RenderUrlAsPdf(url)로 교체 File.WriteAllBytes(path, result.Document)를 pdf.SaveAs(path)로 교체 CSS @page 규칙을 TextFooter 객체로 변환 페이지 번호 플레이스홀더 업데이트 (counter(page) → {page}) 여백 단위를 문자열에서 밀리미터로 변환 인프라 마이그레이션 Java 런타임 요구사항 제거 -PDFreactor서버 사용 중단 Docker/배포 구성 업데이트 CI/CD 파이프라인을 업데이트하세요 마이그레이션 이후 PDF 출력 품질이 기대에 부합하는지 테스트하세요 헤더/푸터 렌더링 검증 사용했다면 JavaScript 실행 확인 필요에 따라 새로운 기능 추가 (병합, 워터마크, 보안) 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 관련 기사 업데이트됨 2월 1, 2026 C#에서 ZetPDF에서 IronPDF로 마이그레이션하는 방법 이 완전한 C# 가이드로 ZetPDF에서 IronPDF로의 마이그레이션을 마스터하세요. 좌표 기반 라이브러리에서 현대적인 HTML-to-PDF 솔루션으로 전환하십시오. HTML 변환, PDF 병합 및 PDFSharp 종속성 제거에 대한 코드 예제가 포함되어 있습니다. 더 읽어보기 업데이트됨 2월 1, 2026 Scryber.Core에서 IronPDF로의 마이그레이션 방법 (C#) 이 완벽한 C# 가이드를 통해 Scryber.Core에서 IronPDF로의 마이그레이션을 완전히 이해하십시오. 사용자 지정 XML/HTML 파싱에서 현대적인 Chromium 렌더러로 전환하십시오. HTML 변환, URL 렌더링 및 독점 바인딩 교체를 위한 코드 예제가 포함됩니다. 더 읽어보기 업데이트됨 2월 1, 2026 C#에서 XFINIUM.PDF에서 IronPDF로 마이그레이션하는 방법 이 완전한 C# 가이드로 XFINIUM.PDF에서 IronPDF로의 마이그레이션을 마스터하세요. 수동적인 좌표 기반 위치에서 선언적인 HTML/CSS 렌더링으로 전환하십시오. 그래픽 프리미티브 교체 및 자동 레이아웃에 대한 코드 예제가 포함되어 있습니다. 더 읽어보기 PDFSharp에서 IronPDF로의 마이그레이션 방법 (C#)PDFPrinting.NET에서 IronPDF로의...
업데이트됨 2월 1, 2026 C#에서 ZetPDF에서 IronPDF로 마이그레이션하는 방법 이 완전한 C# 가이드로 ZetPDF에서 IronPDF로의 마이그레이션을 마스터하세요. 좌표 기반 라이브러리에서 현대적인 HTML-to-PDF 솔루션으로 전환하십시오. HTML 변환, PDF 병합 및 PDFSharp 종속성 제거에 대한 코드 예제가 포함되어 있습니다. 더 읽어보기
업데이트됨 2월 1, 2026 Scryber.Core에서 IronPDF로의 마이그레이션 방법 (C#) 이 완벽한 C# 가이드를 통해 Scryber.Core에서 IronPDF로의 마이그레이션을 완전히 이해하십시오. 사용자 지정 XML/HTML 파싱에서 현대적인 Chromium 렌더러로 전환하십시오. HTML 변환, URL 렌더링 및 독점 바인딩 교체를 위한 코드 예제가 포함됩니다. 더 읽어보기
업데이트됨 2월 1, 2026 C#에서 XFINIUM.PDF에서 IronPDF로 마이그레이션하는 방법 이 완전한 C# 가이드로 XFINIUM.PDF에서 IronPDF로의 마이그레이션을 마스터하세요. 수동적인 좌표 기반 위치에서 선언적인 HTML/CSS 렌더링으로 전환하십시오. 그래픽 프리미티브 교체 및 자동 레이아웃에 대한 코드 예제가 포함되어 있습니다. 더 읽어보기