푸터 콘텐츠로 바로가기
마이그레이션 가이드

PeachPDF에서 IronPDF로의 마이그레이션 방법 (C#)

PeachPDF에서 IronPDF로의 마이그레이션은 포괄적인 기능, 활발한 개발, 전문적인 지원을 갖춘 Enterprise급 PDF 생성에 대한 접근을 제공합니다. 이 가이드는 기본 HTML-대-PDF 워크플로우를 최신 Chromium 렌더링, 고급 보안 옵션, 광범위한 조작 기능을 갖춘 전체 기능의 PDF 솔루션으로 변환하는 완전한 단계별 마이그레이션 경로를 제공합니다.

PeachPDF에서 IronPDF로 마이그레이션해야 하는 이유

PeachPDF이해

PeachPDF는 HTML을 PDF로 변환해야 하는 개발자를 위한 .NET 생태계의 비교적 새로운 구성원입니다. 라이브러리로서 PeachPDF는 순수 .NET 구현을 약속하며, 외부 프로세스에 의존하지 않아 .NET을 지원하는 플랫폼 간에 원활하게 통합될 수 있습니다. 이 특성은 PeachPDF를 가볍고 관리되는 라이브러리 솔루션을 찾고 있는 프로젝트에 매력적인 선택으로 만듭니다.

잠재력에도 불구하고 PeachPDF는 여전히 개발 중이며, 흥미로운 가능성과 주목할 만한 제약을 모두 강조합니다. PeachPDF는 순수 .NET Core로 다양한 환경에서 간단한 배포를 약속하기 때문에 매력적입니다. 그러나 이는 제한된 채택으로도 이어지며, 더 작은 사용자 기반과 커뮤니티 기반 지원을 의미합니다.

PeachPDF의 한계

PeachPDF는 성숙함, 기능, 지원이 부족한 상대적으로 새로운, 덜 알려진 PDF 라이브러리입니다. 마이그레이션해야 하는 주요 이유:

  1. 제한된 기능 집합: PeachPDF는 디지털 서명,PDF/A준수 및 정교한 텍스트 추출과 같은 고급 기능이 부족합니다.

  2. 작은 커뮤니티: 제한된 문서, 예제 및 커뮤니티 지원. 사용자 기반이 작기 때문에 커뮤니티 지원이 드물 수 있으며, 도움을 받거나 광범위한 문서를 찾는 것이 어려울 수 있습니다.

  3. 불확실한 미래: 확립된 기록이 없는 새로운 라이브러리는 채택 위험을 수반합니다.

  4. 기본 HTML 지원: CSS 및JavaScript렌더링 기능이 제한적입니다.

  5. Enterprise 지원 없음: 전문 지원 또는 SLA 옵션이 없습니다.

PeachPDF대IronPDF비교

기능/특성 PeachPDF IronPDF
구현 순수 .NET 광범위한 호환성으로 관리됨
라이선스 오픈 소스 (BSD-3-Clause) 상업적
사용자 기반 작음 큰 (4천만+ 다운로드)
지원 커뮤니티 주도 전용 지원이 있는 전문적
HTML 렌더링 기초적인 전체 Chromium
CSS 지원 제한적 전체 CSS3
JavaScript 기초적인 전체 ES2024
디지털 서명 아니요
PDF/A 준수 아니요
문서화 제한적 광범위함
개발 상태 개발 중 성숙하고 안정적인 릴리스

IronPDF는 HTML-PDF 변환뿐만 아니라 OCR, 워터마크 작업 및 기타 고급 기능을 지원하는 광범위한 기능으로 두각을 나타냅니다. 전문적인 지원 구조는 개발자가 겪는 문제를 신속하게 해결할 수 있는 명확한 이점을 제공합니다.

.NET 10 및 C# 14 채택을 계획하는 팀에게 IronPDF는 장기적인 안정성과 최신 .NET Framework와의 호환성을 보장하는 포괄적인 기능과 활발한 유지 관리를 제공합니다.


시작하기 전에

필수 조건

  1. .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
  3. IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요

NuGet 패키지 변경 사항

# Remove PeachPDF
dotnet remove package PeachPDF

# Install IronPDF
dotnet add package IronPdf
# Remove PeachPDF
dotnet remove package PeachPDF

# Install IronPDF
dotnet add package IronPdf
SHELL

라이선스 구성

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

PeachPDF사용 식별

# AuditPeachPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .
# AuditPeachPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .
SHELL

완전한 API 참조

네임스페이스 변경

// Before: PeachPDF
using PeachPDF;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PeachPDF
using PeachPDF;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
$vbLabelText   $csharpLabel

핵심 API 매핑

PeachPDF IronPDF
new HtmlToPdfConverter() new ChromePdfRenderer()
converter.Convert(html) renderer.RenderHtmlAsPdf(html)
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url)
converter.Header renderer.RenderingOptions.HtmlHeader
converter.Footer renderer.RenderingOptions.HtmlFooter
File.WriteAllBytes(path, pdf) pdf.SaveAs(path)
pdf (byte[]) pdf.BinaryData
PdfReader.LoadFromFile(path) PdfDocument.FromFile(path)
document.MergeWith(other) PdfDocument.Merge(pdfs)

코드 마이그레이션 예제

예제 1: HTML 문자열을 PDF로 변환

이전 (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = converter.Convert(html)
        File.WriteAllBytes("output.pdf", pdf)
    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 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();
        var 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 = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

이 예시는 두 라이브러리 간의 기본적인 차이점을 보여줍니다. PeachPDF는 HtmlToPdfConverter을 사용하며, Convert() 메서드를 사용하여 byte[]을 반환하며, 저장을 위한 File.WriteAllBytes()이 필요합니다. IronPDF는 ChromePdfRenderer을 사용하며, RenderHtmlAsPdf()으로 PdfDocument 객체를 반환하며, 내장된 SaveAs() 메서드를 가지고 있습니다.

IronPDF의 접근 방식의 주요 이점: PdfDocument 객체는 저장하기 전에 (워터마크 추가, 병합, 보안 설정) 추가 조작이 가능하지만, PeachPDF의 바이트 배열은 최종 출력입니다. IronPDF의 접근법은 현대 .NET 애플리케이션과의 더 나은 통합과 더 나은 문법을 제공합니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.

예제 2: URL에서 PDF로 변환

이전 (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        var pdf = converter.ConvertUrl(url);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        var pdf = converter.ConvertUrl(url);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim url = "https://www.example.com"
        Dim pdf = converter.ConvertUrl(url)
        File.WriteAllBytes("webpage.pdf", pdf)
    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 url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim url = "https://www.example.com"
        Dim pdf = renderer.RenderUrlAsPdf(url)
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PeachPDF는 ConvertUrl()을 사용하고 IronPDF는 RenderUrlAsPdf()을 사용합니다. IronPDF의 메서드 명칭은 보다 설명적입니다. URL이 PDF로 렌더링되고 있음을 명확히 나타냅니다. 두 라이브러리는 URL-PDF 변환을 유사하게 처리하지만 IronPDF의 전체 Chromium 엔진은 복잡한 CSS 및 JavaScript를 사용하는 최신 웹 페이지를 우수하게 렌더링합니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요.

예제 3: 헤더와 푸터 추가

이전 (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.Header = "<div style='text-align:center'>My Header</div>";
        converter.Footer = "<div style='text-align:center'>Page {page}</div>";
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("document.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.Header = "<div style='text-align:center'>My Header</div>";
        converter.Footer = "<div style='text-align:center'>Page {page}</div>";
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("document.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        converter.Header = "<div style='text-align:center'>My Header</div>"
        converter.Footer = "<div style='text-align:center'>Page {page}</div>"
        Dim html = "<html><body><h1>Document Content</h1></body></html>"
        Dim pdf = converter.Convert(html)
        File.WriteAllBytes("document.pdf", pdf)
    End Sub
End Class
$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.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
        var html = "<html><body><h1>Document Content</h1></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.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
        var html = "<html><body><h1>Document Content</h1></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.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>My Header</div>"}
        renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>Page {page}</div>"}
        Dim html As String = "<html><body><h1>Document Content</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("document.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

이 예제는 중요한 구조적 차이점을 보여줍니다. PeachPDF는 헤더와 푸터를 위한 간단한 문자열 속성 (converter.Headerconverter.Footer)을 사용합니다. IronPDF는 HtmlHeaderFooter 객체를 RenderingOptions.HtmlHeaderRenderingOptions.HtmlFooter에 할당하여 사용합니다.

IronPDF 접근 방식은 더욱 유연성을 제공합니다. HtmlHeaderFooter 객체는 헤더/푸터 크기를 제어할 수 있는 MaxHeight과 같은 추가 속성을 포함할 수 있습니다. 두 라이브러리 모두 페이지 번호 자리 표시자로 {page}을 사용한다는 점에 유의하십시오. IronPDF는 총 페이지 수를 위한 {total-pages}도 지원합니다.

IronPDF에 필요한 추가 네임스페이스: using IronPdf.Rendering;HtmlHeaderFooter 클래스를 위해 필요합니다.


중요한 마이그레이션 노트

변환기 클래스 변경

PeachPDF는 HtmlToPdfConverter을 사용합니다; IronPDF는 ChromePdfRenderer을 사용합니다:

// PeachPDF
var converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
// PeachPDF
var converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
' PeachPDF
Dim converter As New HtmlToPdfConverter()

' IronPDF
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

반환 타입 변경

PeachPDF는 byte[]을 반환합니다; IronPDF는 PdfDocument을 반환합니다:

// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);

// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;
// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);

// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;
' PeachPDF: Returns byte array
Dim pdf As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdf)

' IronPDF: Returns PdfDocument object
Dim pdfDoc As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDoc.SaveAs("output.pdf")
' Or get bytes: Dim bytes As Byte() = pdfDoc.BinaryData
$vbLabelText   $csharpLabel

헤더/푸터 속성 변경

// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";

// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Header</div>" 
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Footer</div>" 
};
// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";

// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Header</div>" 
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Footer</div>" 
};
' PeachPDF: Simple string properties
converter.Header = "<div>Header</div>"
converter.Footer = "<div>Footer</div>"

' IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div>Header</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div>Footer</div>"
}
$vbLabelText   $csharpLabel

메서드 이름 변경

PeachPDF IronPDF
Convert(html) RenderHtmlAsPdf(html)
ConvertUrl(url) RenderUrlAsPdf(url)
File.WriteAllBytes() SaveAs()

이동 후 새로운 기능

IronPDF로 마이그레이션한 후 PeachPDF가 제공할 수 없는 기능을 얻게 됩니다:

PDF 병합

var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
CONVERTER NOT RUNNING
$vbLabelText   $csharpLabel

HTML을 사용한 워터마크

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>")
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

비밀번호 보호

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>")

pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint

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

디지털 서명

using IronPdf.Signing;

var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningReason = "Document Approval",
    SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf.Signing;

var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningReason = "Document Approval",
    SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
Imports IronPdf.Signing

Dim pdf = PdfDocument.FromFile("document.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
    .SigningReason = "Document Approval",
    .SigningLocation = "New York"
}
pdf.Sign(signature)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

비동기 작업

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>")
pdf.SaveAs("async_output.pdf")
$vbLabelText   $csharpLabel

기능 비교 요약

기능 PeachPDF IronPDF
HTML to PDF 기초적인 전체 Chromium
URL을 PDF로 변환 제한적
CSS Grid/Flexbox 아니요
JavaScript 제한적 전체 ES2024
PDF 병합
PDF 분할 제한적
워터마크 제한적 전체 HTML
헤더/푸터 기초적인 전체 HTML
디지털 서명 아니요
PDF/A 아니요
폼 채우기 제한적
텍스트 추출 기초적인
이미지 추출 아니요
비동기 지원 제한적
크로스 플랫폼 알 수 없음

일반적인 마이그레이션 문제

문제 1: 다른 API 패턴

문제: PeachPDF는 바이트 배열 출력을 사용하는 변환기 패턴을 사용합니다; IronPDF는 PdfDocument 출력을 사용하는 렌더러 패턴을 사용합니다.

해결책:

//PeachPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);

//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
//PeachPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);

//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
' PeachPDFpattern
Dim converter As New HtmlToPdfConverter()
Dim pdf As Byte() = converter.Convert(html)
File.WriteAllBytes(path, pdf)

' IronPDFpattern
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDocument.SaveAs(path)
$vbLabelText   $csharpLabel

문제 2: 저장 메서드 차이

문제: PeachPDF는 File.WriteAllBytes()이 필요합니다; IronPDF는 내장 SaveAs()을 가지고 있습니다.

해결책: File.WriteAllBytes("path", pdf)pdf.SaveAs("path")으로 대체하십시오.

문제 3: 헤더/푸터 개체

문제: PeachPDF는 문자열 속성을 사용합니다; IronPDF는 개체 속성을 사용합니다.

해결책: HTML 문자열을 HtmlHeaderFooter 객체에 HtmlFragment 속성과 함께 래핑하십시오.


마이그레이션 체크리스트

사전 마이그레이션

  • 코드베이스에서PeachPDF사용을 감사하라
  • 사용자 정의 구성 문서화
  • 모든 헤더/푸터 구현을 기록
  • ironpdf.com에서IronPDF라이선스 키 획득 -IronPDF체험판 라이선스로 먼저 테스트

패키지 변경 사항

  • PeachPDF NuGet 패키지를 제거하십시오
  • IronPdf NuGet 패키지를 설치하십시오: dotnet add package IronPdf

코드 변경 사항

  • 네임스페이스 가져오기를 업데이트하십시오 (using PeachPDF;using IronPdf;)
  • 헤더/푸터 기능을 위해 using IronPdf.Rendering;을 추가하십시오
  • HtmlToPdfConverterChromePdfRenderer으로 대체하십시오
  • converter.Convert(html)renderer.RenderHtmlAsPdf(html)으로 대체하십시오
  • converter.ConvertUrl(url)renderer.RenderUrlAsPdf(url)으로 대체하십시오
  • File.WriteAllBytes(path, pdf)pdf.SaveAs(path)으로 대체하십시오
  • FooterHtmlFooter 객체로 대체하십시오
  • 애플리케이션 시작 시 라이선스 초기화 추가

마이그레이션 이후

  • HTML 렌더링 품질 테스트
  • PDF 출력이 기대와 일치하는지 확인
  • 페이지 번호와 함께 헤더/푸터 렌더링 테스트
  • 필요에 따라 새 기능(보안, 워터마크, 병합) 추가

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

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

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

아이언 서포트 팀

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