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

C#에서 ZetPDF에서 IronPDF로 마이그레이션하는 방법

ZetPDF는 널리 사용되는 오픈 소스 PDFSharp 라이브러리를 기반으로 구축된 C# 응용 프로그램용 상업용 라이선스 PDF 라이브러리입니다. ZetPDF는 상업적 지원 및 기본적인 PDF 조작 능력을 제공하지만, PDFSharp 기반에서 유의미한 제한을 상속받습니다. 특히, 라이브러리는 좌표 기반 그래픽 프로그래밍에 의존하며 현대적인 대안과 비교하여 제한된 HTML-to-PDF 변환 기능을 제공합니다.

이 가이드는 전문적인 .NET 개발자가 이 전환을 평가하기 위한 단계별 지침, 코드 비교 및 실용적인 예제를 포함하여 ZetPDF에서 IronPDF로의 전체 마이그레이션 경로를 제공합니다.

왜 ZetPDF에서 마이그레이션하는가

ZetPDF는 PDFSharp의 포크로서 현대적인 문서 생성 워크플로에 대한 효과성을 제한하는 동일한 아키텍처 제약을 상속받습니다. 개발 팀이 마이그레이션을 고려하는 주요 이유는 다음과 같습니다:

좌표 기반 API: ZetPDF는 개발자가 모든 요소를 정확한 좌표로 배치해야 합니다. 모든 요소의 복잡한 수동 위치 지정은 요구 사항이 변경될 때 유지보수에 어려움을 줍니다.

제한된 CSS 지원: 스타일링 시스템이 없으므로 모든 요소에 대해 수동으로 폰트 및 색상을 관리해야 합니다.

JavaScript 렌더링 불가능: PDF 생성 중 동적 웹 콘텐츠를 렌더링하거나 JavaScript를 실행할 수 없습니다.

제한된 독특한 제안: PDFSharp를 직접 무료로 사용한 것과 비교하여 ZetPDF는 상업적 라이선스를 필요로 하는 몇 가지 매력적인 이유를 제공합니다.

수동 페이지 나누기: 자동 페이지 나누기에 의존하지 않고 페이지 넘침을 수동으로 계산하고 관리해야 합니다.

텍스트 측정 필요: 텍스트 줄바꿈의 수동 계산은 추가적인 개발 부담을 만듭니다.

근본적인 문제

ZetPDF와 PDFSharp는 모든 요소를 정확한 좌표로 배치하도록 강요합니다:

// ZetPDF:수동positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
// ZetPDF:수동positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
' ZetPDF:수동positioning nightmare
graphics.DrawString("Name:", font, brush, New XPoint(50, 100))
graphics.DrawString("John Doe", font, brush, New XPoint(100, 100))
graphics.DrawString("Address:", font, brush, New XPoint(50, 120))
graphics.DrawString("123 Main St", font, brush, New XPoint(100, 120))
' ... hundreds of lines for a simple form
$vbLabelText   $csharpLabel

IronPDF는 HTML/CSS를 사용하여 레이아웃 엔진이 모든 것을 처리합니다:

// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Simple HTML
Dim html As String = "
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

IronPDFvs ZetPDF: 기능 비교

구조적 차이를 이해하면 기술 결정을 내리는데 이주 투자를 평가하는데 도움이 됩니다:

기능 ZetPDF IronPDF
PDFSharp 기반 아니요
HTML을 PDF로 변환 제한적 네 (전체 Chromium 지원)
상용 라이선스 예, 영구
오픈 소스 기반 PDFSharp (MIT 라이선스) Chromium 기반
CSS 지원 아니요 전체 CSS3
JavaScript 아니요 전체 ES2024
자동 레이아웃 아니요
자동 페이지 나누기 아니요
테이블 수동 드로잉 HTML <table>
헤더/푸터 수동 HTML/CSS
워터마크 수동 코드 내장형
PDF 병합 제한적
PDF 분할 제한적
디지털 서명 아니요
PDF/A 아니요
단순성과 사용 용이성 보통 높음

빠른 시작: ZetPDF에서 IronPDF로의 마이그레이션

이러한 기본 단계를 통해 즉시 이주를 시작할 수 있습니다.

1단계: NuGet 패키지 교체

ZetPDF 제거:

# Remove ZetPDF
dotnet remove package ZetPDF
# Remove ZetPDF
dotnet remove package ZetPDF
SHELL

IronPDF 설치하세요:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

단계 2: 네임스페이스 업데이트

ZetPDF 네임스페이스를 IronPdf 네임스페이스로 교체하세요:

// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;

// After (IronPDF)
using IronPdf;
// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

단계 3: 라이선스 초기화

애플리케이션 시작 시 라이선스 초기화를 추가합니다:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

코드 마이그레이션 예제

HTML을 PDF로 변환

HTML에서 PDF로의 작업은 이러한 .NET PDF 라이브러리 간의 API 차이를 보여줍니다.

ZetPDF 접근 방식:

// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
Imports ZetPDF
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf")
        Console.WriteLine("PDF created successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim htmlContent = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")
        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

ZetPDF는 HtmlToPdfConverterConvertHtmlToPdf()와 함께 사용하여 파일 경로에 직접 기록합니다. IronPDF는 ChromePdfRendererRenderHtmlAsPdf()과 함께 제공하여 PdfDocument 객체를 반환합니다. 이를 통해 결과물에 대한 유연성이 높아지고, 파일 저장, 바이너리 데이터 가져오기 또는 저장 전에 추가 작업을 수행할 수 있습니다.

고급 HTML에서 PDF로의 시나리오는 HTML to PDF 변환 가이드를 참조하십시오.

URL을 PDF로 변환

URL에서 PDF로의 변환은 패턴의 차이점을 명확히 보여줍니다.

ZetPDF 접근 방식:

// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}
Imports ZetPDF
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        Dim url As String = "https://www.example.com"
        converter.ConvertUrlToPdf(url, "webpage.pdf")
        Console.WriteLine("PDF from URL created successfully")
    End Sub
End Module
$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");
        Console.WriteLine("PDF from URL created successfully");
    }
}
// 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");
        Console.WriteLine("PDF from URL created successfully");
    }
}
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")
        Console.WriteLine("PDF from URL created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

ZetPDF는 HtmlToPdfConverter 클래스와 ConvertUrlToPdf()를 사용합니다. IronPDF는 RenderUrlAsPdf()ChromePdfRenderer에서 제공하며, 이는 JavaScript 실행과 최신 CSS를 포함하여 정확한 웹 페이지 캡처를 위한 전체 Chromium 렌더링 엔진을 활용합니다.

URL to PDF 문서에서 인증 및 사용자 정의 헤더 옵션을 탐색하십시오.

여러 PDF 병합

PDF 병합은 문서 처리 방식에서 중요한 API 차이점을 드러냅니다.

ZetPDF 접근 방식:

// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
Imports ZetPDF
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim merger As New PdfMerger()
        Dim files As New List(Of String) From {"document1.pdf", "document2.pdf"}
        merger.MergeFiles(files, "merged.pdf")
        Console.WriteLine("PDFs merged successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdfs As New List(Of PdfDocument) From {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        }
        Dim merged = PdfDocument.Merge(pdfs)
        merged.SaveAs("merged.pdf")
        Console.WriteLine("PDFs merged successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

ZetPDF는 PdfMerger 클래스를 사용하여 파일 경로에 MergeFiles()와 함께 작업합니다. IronPDF는 PdfDocument 객체로 문서를 PdfDocument.FromFile()을 사용해 로드한 다음, 정적 PdfDocument.Merge() 메서드로 병합합니다. 이 객체 중심 접근 방식은 저장 전 병합된 문서에 추가 작업을 수행할 수 있게 합니다.

추가 병합 옵션을 위해 PDF 병합 문서를 탐색하십시오.

좌표 기반 드로잉 vs HTML

기존ZetPDF코드를 사용하여 좌표 기반 그래픽을 사용하는 개발자에게 있어, 마이그레이션 경로는 드로잉 명령을 HTML/CSS로 변환하는 것을 포함합니다.

ZetPDF 좌표 기반 접근 방식:

using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);

var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");
using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);

var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");
Imports ZetPdf
Imports ZetPdf.Drawing

Dim document As New PdfDocument()
Dim page = document.AddPage()
page.Width = XUnit.FromMillimeter(210)
page.Height = XUnit.FromMillimeter(297)

Dim graphics = XGraphics.FromPdfPage(page)
Dim titleFont As New XFont("Arial", 24, XFontStyle.Bold)
Dim bodyFont As New XFont("Arial", 12)

graphics.DrawString("Company Report", titleFont, XBrushes.Navy, New XPoint(50, 50))
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black, New XPoint(50, 80))
graphics.DrawString("Generated: " & DateTime.Now.ToString(), bodyFont, XBrushes.Gray, New XPoint(50, 100))

document.Save("report.pdf")
$vbLabelText   $csharpLabel

IronPDF HTML 접근 방식:

using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial, sans-serif; padding: 50px; }}
        h1 {{ color: navy; }}
        .date {{ color: gray; }}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial, sans-serif; padding: 50px; }}
        h1 {{ color: navy; }}
        .date {{ color: gray; }}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Imports IronPdf

Dim html As String = $"
<html>
<head>
    <style>
        body {{ font-family: Arial, sans-serif; padding: 50px; }}
        h1 {{ color: navy; }}
        .date {{ color: gray; }}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
$vbLabelText   $csharpLabel

ZetPDF 접근 방식은 폰트 객체를 생성하고, 정확한 픽셀 위치를 계산하며, 그래픽 컨텍스트를 수동으로 관리해야 합니다.IronPDF접근 방식은 웹 개발자가 이미 아는 표준 HTML과 CSS를 사용하며, 폰트, 색상, 레이아웃은 익숙한 CSS 속성으로 처리됩니다.

ZetPDFAPI에서 IronPDF로의 매핑 참조

이 매핑은 직접적인 API 대응을 보여주어 마이그레이션을 가속화합니다:

ZetPDF IronPDF
new PdfDocument() new ChromePdfRenderer()
document.AddPage() 자동
XGraphics.FromPdfPage(page) 해당 없음
graphics.DrawString() HTML 텍스트 요소
graphics.DrawImage() <img> 태그
graphics.DrawLine() CSS 테두리
graphics.DrawRectangle() CSS border + div
new XFont() CSS font-family
XBrushes.Black CSS color
document.Save() pdf.SaveAs()
PdfReader.Open() PdfDocument.FromFile()
HtmlToPdfConverter ChromePdfRenderer
ConvertHtmlToPdf() RenderHtmlAsPdf()
ConvertUrlToPdf() RenderUrlAsPdf()
PdfMerger PdfDocument.Merge()

일반적인 마이그레이션 문제와 해결책

문제 1: 좌표 기반 레이아웃

ZetPDF: 모든 것이 수동으로 위치를 조정해야 하는 정확한 X, Y 좌표가 필요합니다.

해결책: HTML/CSS흐름 레이아웃을 사용하세요. 필요할 때 절대 위치를 위해 CSS를 사용하세요:

.positioned-element {
    position: absolute;
    top: 100px;
    left: 50px;
}

문제 2: 폰트 객체 관리

ZetPDF: 각 폰트 변형에 대해 XFont 객체를 생성합니다.

해결책: CSS 폰트 패밀리를 사용하세요—폰트는 자동으로 처리됩니다:

<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
HTML

문제 3: 색상 처리

ZetPDF: XBrushes 및 색상 객체를 사용합니다.

해결책: 표준 CSS 색상을 사용하세요:

.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }

문제 4: 수동 페이지 나누기

ZetPDF: Y 위치를 추적하고 콘텐츠가 넘칠 때 새 페이지를 수동으로 생성합니다.

해결책: IronPDF가 자동 페이지 나누기를 처리합니다. 명시적인 제어를 위해 CSS를 사용하세요:

.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }

문제 5: 테이블 생성

ZetPDF: 사각형, 선, 텍스트 위치를 수동으로 그려야 합니다.

해결책: CSS 스타일을 사용한 표준 HTML 테이블 사용:

<table style="border-collapse: collapse; width: 100%;">
    <tr>
        <th style="border: 1px solid black; padding: 8px;">Header</th>
    </tr>
    <tr>
        <td style="border: 1px solid black; padding: 8px;">Data</td>
    </tr>
</table>
<table style="border-collapse: collapse; width: 100%;">
    <tr>
        <th style="border: 1px solid black; padding: 8px;">Header</th>
    </tr>
    <tr>
        <td style="border: 1px solid black; padding: 8px;">Data</td>
    </tr>
</table>
HTML

ZetPDF마이그레이션 체크리스트

이동 전 작업

ZetPDF 사용 전체를 식별하기 위해 코드베이스 감사:

grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
SHELL

HTML로 변환이 필요한 좌표 기반 드로잉 코드를 문서화하세요. 폰트 및 색상 사용 패턴을 기록하세요. 레이아웃 구조를 HTML로 매핑하세요.

코드 업데이트 작업

1.ZetPDFNuGet 패키지 제거

  1. IronPdf NuGet 패키지를 설치하세요
  2. ZetPDF에서 IronPdf로 네임스페이스 가져오기를 업데이트합니다.
  3. HtmlToPdfConverterChromePdfRenderer로 대체합니다.
  4. ConvertHtmlToPdf() 호출을 RenderHtmlAsPdf() + SaveAs()로 변환합니다.
  5. ConvertUrlToPdf() 호출을 RenderUrlAsPdf() + SaveAs()로 변환합니다.
  6. PdfMerger.MergeFiles()PdfDocument.Merge()로 대체합니다.
  7. DrawString() 호출을 HTML 텍스트 요소로 변환합니다.
  8. XFont를 CSS font-family로 변환합니다.
  9. XBrushes를 CSS 색상으로 대체합니다.
  10. 시작할 때IronPDF라이선스 초기화를 추가하세요

마이그레이션 후 테스트

마이그레이션 후 다음 측면을 검증:

  • 시각적 출력을 비교하여 외관이 일치하거나 개선되었는지 확인하십시오.
  • 글꼴이 CSS 스타일링으로 기대한 대로 렌더링되는지 확인하십시오.
  • 자동 페이지 나누기와 함께 페이지가 올바르게 분리되는지 테스트하십시오.
  • 이미지가 올바르게 배치되고 표시되는지 확인하십시오.
  • PDF 병합 작업이 올바른 출력을 생성하는지 테스트하십시오.
  • 새로운 구현에서 모든 기존 기능이 작동하는지 확인하십시오.

IronPDF로 마이그레이션할 때의 주요 이점

ZetPDF에서 IronPDF로 전환하는 것은 여러 중요한 이점을 제공합니다:

최신 Chromium 렌더링 엔진: IronPDF는 HTML-to-PDF 변환을 위해 Chromium을 사용하여 전체 CSS3 및 ES2024 JavaScript 지원을 보장합니다. 최신 프레임워크와 반응형 디자인이 올바르게 렌더링됩니다.

HTML 기반 컨텐츠 생성: 웹 개발자는 기존의 HTML 및 CSS 기술을 활용할 수 있습니다. 좌표 기반의 그리기 API를 배우거나 글꼴 객체를 관리할 필요가 없습니다.

자동 레이아웃 및 페이지 나누기: 텍스트 줄 바꿈, 페이지 나누기 및 흐름 레이아웃이 자동으로 이루어집니다. 요소 위치의 수동 계산이 필요하지 않습니다.

간소화된 API: 일반 작업을 위한 단일 메소드 호출. PdfDocument.Merge()는 복잡한 파일 경로 처리 패턴을 대체합니다.

활발한 개발: .NET 10 및 C# 14의 채택이 2026년까지 증가함에 따라 IronPDF의 정기 업데이트는 현재 및 미래의 .NET 버전과의 호환성을 보장합니다.

포괄적인 기능 세트: 内蔵된 워터마크, 디지털 서명, PDF/A 준수 및 ZetPDF가 부족한 고급 PDF 변조 기능을 포함합니다.

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

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

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

아이언 서포트 팀

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