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

C#에서 XFINIUM.PDF에서 IronPDF로 마이그레이션하는 방법

XFINIUM.PDF는 C#에서 PDF를 프로그래밍적으로 생성 및 편집하기 위한 포괄적인 도구를 제공하는 크로스 플랫폼 PDF 라이브러리입니다. 두 가지 에디션—Generator와 Viewer—을 제공하지만, 좌표 기반의 그래픽 프로그래밍에 의존하는 라이브러리의 특성상 문서 중심의 애플리케이션을 개발하는 팀에게 상당한 도전 과제를 안겨줍니다. 모든 요소는 픽셀 좌표를 사용하여 수동으로 배치해야 하며, 간단해야 할 문서를 복잡한 드로잉 연습으로 만듭니다.

이 가이드는 XFINIUM.PDF에서 IronPDF로의 완전한 전환 경로를 제공하며, 단계별 지침, 코드 비교 및 이 전환을 평가하는 전문 .NET 개발자를 위한 실제 사례를 포함합니다.

XFINIUM.PDF에서 마이그레이션해야 하는 이유

XFINIUM.PDF는 좌표 기반의 그래픽 프로그래밍에 의존하는 저수준 PDF 라이브러리로, 개발자가 페이지의 모든 요소를 수동으로 배치하도록 강요합니다. 이 접근 방식은 요구 사항이 변경됨에 따라 유지 관리 악몽이 됩니다. 개발 팀이 마이그레이션을 고려하는 주요 이유는 다음과 같습니다:

HTML 지원 없음: XFINIUM.PDF는 HTML/CSS를 직접 PDF로 변환할 수 없습니다. 낮은 수준의 도형 원시로 프로그래밍적으로 PDF를 생성하는 데 중점을 두고 있으며, 광범위한 HTML-to-PDF 기능이 필요한 프로젝트에는 부족할 수 있습니다.

좌표 기반 API: 페이지의 모든 요소에 대해 DrawString("text", font, brush, 50, 100)와 같은 픽셀 좌표로 수동 위치 설정이 필요합니다.

수동 글꼴 관리: PdfStandardFontPdfBrush과 같은 클래스를 사용하여 글꼴 객체를 명시적으로 생성 및 관리해야 합니다.

CSS 스타일링 없음: 모던 웹 스타일링을 지원하지 않습니다. 색상, 폰트, 레이아웃은 프로그래밍적 메서드 호출을 통해 수동으로 처리해야 합니다.

JavaScript 렌더링 없음: 정적 콘텐츠만 가능합니다. XFINIUM.PDF는 동적 웹 콘텐츠를 렌더링하거나 JavaScript를 실행할 수 없습니다.

복잡한 텍스트 레이아웃: 간단한 단일 라인 텍스트를 초과하는 모든 경우에 대한 수동 텍스트 측정 및 래핑 계산이 필요합니다.

제한된 커뮤니티 리소스: 주류 솔루션과 비교하여 예제 및 튜토리얼 같은 커뮤니티 제공 리소스가 부족하여 신규 사용자가 시작하는 데 어려움을 겪을 수 있습니다.

핵심 문제: 그래픽 API vs HTML

XFINIUM.PDF는 문서 디자이너가 아닌 그래픽 프로그래머처럼 생각하도록 강요합니다:

// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
' XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50)
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80)
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80)
' ... hundreds of lines for a simple document
$vbLabelText   $csharpLabel

IronPDF는 익숙한 HTML/CSS를 사용합니다:

// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML
Dim html As String = "<h1>Invoice</h1><p><b>Customer:</b> " & customer.Name & "</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

IronPDFvs XFINIUM.PDF: 기능 비교

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

기능 XFINIUM.PDF IronPDF
HTML to PDF 제한된 HTML 지원으로 프로그램 기반 PDF 생성에 중점을 둡니다. 포괄적인 지원을 받는 전체 HTML-to-PDF 변환
커뮤니티 및 지원 작은 커뮤니티로 온라인 리소스가 적습니다. 방대한 문서 및 튜토리얼이 있는 대규모 커뮤니티
라이선스 개발자 기반 라이선스를 통한 상업적 제공 상업적
Cross-Platform Support 강력한 크로스 플랫폼 기능 크로스 플랫폼 운영도 지원
CSS 지원 아니요 전체 CSS3
JavaScript 아니요 전체 ES2024
플렉스박스/그리드 아니요
자동 레이아웃 아니요
자동 페이지 매김 아니요
수동 배치 필요함 선택적 (CSS 위치)
학습 곡선 높음 (좌표 시스템) 낮음 (HTML/CSS)
코드 다양성 매우 높음 낮음

빠른 시작: XFINIUM.PDF에서 IronPDF로 마이그레이션

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

1단계: NuGet 패키지 교체

XFINIUM.PDF 제거:

# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf
SHELL

IronPDF 설치하세요:

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

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

XFINIUM.PDF 네임스페이스를 IronPdf 네임스페이스로 교체:

// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;

// After (IronPDF)
using IronPdf;
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;

// 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로 변환

가장 기본적인 작업은 이러한 .NET PDF 라이브러리 간의 복잡성 차이를 나타냅니다.

XFINIUM.PDF 접근법:

// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Actions;
using Xfinium.Pdf.FlowDocument;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfFlowDocument flowDocument = new PdfFlowDocument();

        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

        PdfFlowContent content = new PdfFlowContent();
        content.AppendHtml(html);
        flowDocument.AddContent(content);

        flowDocument.RenderDocument(document);
        document.Save("output.pdf");
    }
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Actions;
using Xfinium.Pdf.FlowDocument;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfFlowDocument flowDocument = new PdfFlowDocument();

        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

        PdfFlowContent content = new PdfFlowContent();
        content.AppendHtml(html);
        flowDocument.AddContent(content);

        flowDocument.RenderDocument(document);
        document.Save("output.pdf");
    }
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Actions
Imports Xfinium.Pdf.FlowDocument
Imports System.IO

Module Program
    Sub Main()
        Dim document As New PdfFixedDocument()
        Dim flowDocument As New PdfFlowDocument()

        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

        Dim content As New PdfFlowContent()
        content.AppendHtml(html)
        flowDocument.AddContent(content)

        flowDocument.RenderDocument(document)
        document.Save("output.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF는 PdfFixedDocument, PdfFlowDocument, PdfFlowContent 객체를 생성하고, AppendHtml()을 호출하며, 흐름 문서에 콘텐츠를 추가하고, 고정 문서로 렌더링한 후 저장해야 합니다. IronPDF는 이를 세 줄로 단순화합니다: 렌더러 생성, HTML 렌더링, 저장.

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

여러 PDF 병합

PDF 병합은 API 복잡성의 차이를 명확히 보여줍니다.

XFINIUM.PDF 접근법:

// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument output = new PdfFixedDocument();

        FileStream file1 = File.OpenRead("document1.pdf");
        PdfFixedDocument pdf1 = new PdfFixedDocument(file1);

        FileStream file2 = File.OpenRead("document2.pdf");
        PdfFixedDocument pdf2 = new PdfFixedDocument(file2);

        for (int i = 0; i < pdf1.Pages.Count; i++)
        {
            output.Pages.Add(pdf1.Pages[i]);
        }

        for (int i = 0; i < pdf2.Pages.Count; i++)
        {
            output.Pages.Add(pdf2.Pages[i]);
        }

        output.Save("merged.pdf");

        file1.Close();
        file2.Close();
    }
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument output = new PdfFixedDocument();

        FileStream file1 = File.OpenRead("document1.pdf");
        PdfFixedDocument pdf1 = new PdfFixedDocument(file1);

        FileStream file2 = File.OpenRead("document2.pdf");
        PdfFixedDocument pdf2 = new PdfFixedDocument(file2);

        for (int i = 0; i < pdf1.Pages.Count; i++)
        {
            output.Pages.Add(pdf1.Pages[i]);
        }

        for (int i = 0; i < pdf2.Pages.Count; i++)
        {
            output.Pages.Add(pdf2.Pages[i]);
        }

        output.Save("merged.pdf");

        file1.Close();
        file2.Close();
    }
}
Imports Xfinium.Pdf
Imports System.IO

Module Program
    Sub Main()
        Dim output As New PdfFixedDocument()

        Dim file1 As FileStream = File.OpenRead("document1.pdf")
        Dim pdf1 As New PdfFixedDocument(file1)

        Dim file2 As FileStream = File.OpenRead("document2.pdf")
        Dim pdf2 As New PdfFixedDocument(file2)

        For i As Integer = 0 To pdf1.Pages.Count - 1
            output.Pages.Add(pdf1.Pages(i))
        Next

        For i As Integer = 0 To pdf2.Pages.Count - 1
            output.Pages.Add(pdf2.Pages(i))
        Next

        output.Save("merged.pdf")

        file1.Close()
        file2.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 접근법:

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class Program
    Shared Sub Main()
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        Dim merged = PdfDocument.Merge(pdf1, pdf2)
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF는 출력 문서 생성, 파일 스트림 열기, 각 문서 로드, 페이지를 하나씩 수동으로 순회 및 추가, 저장, 그리고 스트림 닫기를 필요로 합니다. IronPDF는 모든 복잡성을 내부에서 처리하는 단일 PdfDocument.Merge() 메서드를 제공합니다.

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

텍스트 및 이미지로 PDF 생성하기

혼합 콘텐츠가 포함된 문서는 기본 패러다임의 차이를 보여줍니다.

XFINIUM.PDF 접근법:

// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Core;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfPage page = document.Pages.Add();

        PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
        PdfBrush brush = new PdfBrush(PdfRgbColor.Black);

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);

        FileStream imageStream = File.OpenRead("image.jpg");
        PdfJpegImage image = new PdfJpegImage(imageStream);
        page.Graphics.DrawImage(image, 50, 100, 200, 150);
        imageStream.Close();

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Core;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfPage page = document.Pages.Add();

        PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
        PdfBrush brush = new PdfBrush(PdfRgbColor.Black);

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);

        FileStream imageStream = File.OpenRead("image.jpg");
        PdfJpegImage image = new PdfJpegImage(imageStream);
        page.Graphics.DrawImage(image, 50, 100, 200, 150);
        imageStream.Close();

        document.Save("output.pdf");
    }
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Graphics
Imports Xfinium.Pdf.Core
Imports System.IO

Class Program
    Shared Sub Main()
        Dim document As New PdfFixedDocument()
        Dim page As PdfPage = document.Pages.Add()

        Dim font As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
        Dim brush As New PdfBrush(PdfRgbColor.Black)

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50)

        Dim imageStream As FileStream = File.OpenRead("image.jpg")
        Dim image As New PdfJpegImage(imageStream)
        page.Graphics.DrawImage(image, 50, 100, 200, 150)
        imageStream.Close()

        document.Save("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 접근법:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
        string html = $@"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
        string html = $@"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim imageBase64 As String = Convert.ToBase64String(File.ReadAllBytes("image.jpg"))
        Dim html As String = $"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF는 문서를 생성하고, 페이지를 추가하고, 글꼴 및 브러시 객체를 생성하며, 특정 좌표에 텍스트를 그린 후 이미지 스트림을 열고, PdfJpegImage을 생성하여 이미지의 좌표와 크기로 이미지를 그린 후 스트림을 닫고 저장해야 합니다. IronPDF는 내장된 base64 이미지를 포함한 표준 HTML을 사용하며, 이는 웹 개발자가 매일 사용하는 방식입니다.

XFINIUM.PDF API를 IronPDF로 매핑한 참고자료

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

XFINIUM.PDF IronPDF
PdfFixedDocument ChromePdfRenderer
PdfPage 자동
page.Graphics.DrawString() HTML 텍스트 요소
page.Graphics.DrawImage() <img> 태그
page.Graphics.DrawLine() CSS border 또는 <hr>
page.Graphics.DrawRectangle() CSS border on <div>
PdfStandardFont CSS font-family
PdfRgbColor CSS color
PdfBrush CSS 속성
PdfJpegImage <img> 태그 with base64
document.Save(stream) pdf.SaveAs() 또는 pdf.BinaryData
PdfFlowDocument RenderHtmlAsPdf()
PdfFlowContent.AppendHtml() RenderHtmlAsPdf()

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

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

XFINIUM.PDF: 모든 것은 수동 위치 지정으로 정확한 X,Y 좌표를 요구합니다.

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

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

문제 2: 폰트 객체 관리

XFINIUM.PDF: 각 글꼴에 대해 PdfStandardFont 또는 PdfUnicodeTrueTypeFont 객체를 생성합니다.

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

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

문제 3: 색상 처리

XFINIUM.PDF: 색상에 대해 PdfRgbColorPdfBrush 객체를 생성합니다.

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

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

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

XFINIUM.PDF: Y 위치를 추적하고 컨텐츠가 넘치면 새 페이지를 수동으로 만듭니다.

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

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

문제 5: 이미지 로딩

XFINIUM.PDF: 파일 스트림을 열고, PdfJpegImage 객체를 생성하여 좌표에 그린 후 스트림을 닫습니다.

해결책: HTML <img> 태그를 파일 경로나 base64 데이터로 사용합니다:

<img src="image.jpg" width="200" height="150" />

<img src="data:image/jpeg;base64,..." />
<img src="image.jpg" width="200" height="150" />

<img src="data:image/jpeg;base64,..." />
HTML

XFINIUM.PDF 마이그레이션 체크리스트

이동 전 작업

XFINIUM.PDF 사용을 식별하기 위해 코드베이스를 감사하세요:

grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
SHELL

좌표 기반 레이아웃을 문서화하고 모든 X,Y 위치 값을 기록하세요. 글꼴 및 색상 객체 확인 (PdfStandardFont, PdfRgbColor, PdfBrush). 병합된 PDF 워크플로를 PdfFixedDocument.Pages.Add()을 사용하여 매핑합니다.

코드 업데이트 작업

  1. Xfinium.Pdf NuGet 패키지를 제거하세요
  2. IronPdf NuGet 패키지를 설치하세요
  3. 네임스페이스 가져오기를 Xfinium.Pdf에서 IronPdf로 업데이트
  4. DrawString() 호출을 HTML 텍스트 요소로 변환
  5. DrawImage() 호출을 HTML <img> 태그로 변환
  6. DrawRectangle()DrawLine()을 CSS 테두리로 변환
  7. PdfStandardFont을 CSS font-family로 교체
  8. PdfRgbColorPdfBrush을 CSS 색상으로 교체
  9. 페이지 루프 병합을 PdfDocument.Merge()로 교체
  10. 시작 시IronPDF라이선스 초기화를 추가하십시오

마이그레이션 후 테스트

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

  • 시각적 출력이 예상과 일치하는지 비교하세요
  • 새 HTML/CSS 접근 방식으로 텍스트 렌더링을 확인하세요
  • CSS를 사용하여 이미지 위치를 확인하세요
  • 페이지 나누기가 예상대로 발생하는지 테스트하세요
  • PDF 보안 설정이 올바르게 적용되었는지 확인하세요
  • 모든 대상 플랫폼에서 테스트

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

XFINIUM.PDF에서 IronPDF로 이동하면 몇 가지 중요한 이점을 제공합니다:

HTML 기반 컨텐츠 생성: 웹 개발자는 기존의 HTML 및 CSS 기술을 활용할 수 있습니다. 좌표 기반 드로잉 API를 배우거나 폰트와 브러시 객체를 관리할 필요가 없습니다.

자동 레이아웃: 텍스트 감싸기, 페이지 화, 플로우 레이아웃은 자동으로 수행됩니다. 요소 위치나 페이지 나누기의 수동 계산이 필요하지 않습니다.

현대적인 CSS 지원: Flexbox와 Grid 레이아웃을 포함한 전체 CSS3 지원. 반응형 디자인은 PDF로 직접 변환됩니다.

단순화된 PDF 작업: 일반 작업에 대한 단일 메서드 호출이 PdfDocument.Merge()와 같은 복잡한 페이지 반복 루프를 대체합니다.

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

풍부한 문서화: XFINIUM.PDF의 소규모 생태계와 비교하여 종합적인 문서화, 튜토리얼, 지원 리소스를 갖춘 대규모 커뮤니티.

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

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

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

아이언 서포트 팀

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