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

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

Apryse가 TallComponents를 인수하면서, .NET PDF 시장은 크게 변화했습니다. TallComponents는 이제 새로운 라이센스를 사용할 수 없고 기존 사용자는 iText SDK로 리디렉션되고 있기 때문에, TallPDF 및 PDFKit을 사용하는 개발자는 이제 마이그레이션하거나 2026년 이후까지 알려진 렌더링 버그와 함께 지원되지 않는 소프트웨어를 실행하는 위험을 감수해야 합니다.

이 가이드는 TallComponents에서 IronPDF로의 완전한 마이그레이션 경로를 제공하며, .NET 전문 개발자가 효율적으로 전환할 수 있도록 단계별 지침, API 매핑 및 실제 코드 예제를 포함하고 있습니다.

왜TallComponents마이그레이션이 현재 필수인가?

TallComponents는 한때 C# PDF 생성에서 존경받는 이름이었습니다. 도서관은 XML 기반의 문서 워크플로우와 프로그래매틱 PDF 조작을 제공했습니다. 그러나 Apryse에 인수됨에 따라 새로운 라이선스 판매가 종료되었고, 개발 팀을 위한 계산법이 근본적으로 변화했습니다.

중대한TallComponents제한 사항

이전을 결정하는 것은 단지 공급업체 지원에 관한 것이 아닙니다 — TallComponents는 상당한 기술 부채를 지니고 있습니다:

제품 중단: Apryse 인수 이후로는 새로운 라이선스를 이용할 수 없습니다. 공식TallComponents웹사이트는 새로운 라이선스 판매가 종료되었음을 명시하고, 잠재적인 사용자가 iText SDK를 채택하도록 지시합니다.

HTML-에서-PDF 지원 불가: 최신 PDF 라이브러리와 달리, TallComponents는 직접 HTML을 PDF로 변환하는 기능을 지원하지 않습니다. 지원 플랫폼의 개발자들은 이 제한 사항을 확인했고, 대안으로 Pechkin과 같은 써드파티 솔루션을 지목했습니다.

문서화된 렌더링 버그: 변경로그에는 광범위한 렌더링 문제들이 포착되어 있으며, 빈 페이지 렌더링, 그래픽 누락, 신뢰할 수 없는 JPEG 이미지 처리, 잘못된 폰트 표시 등이 포함됩니다. 이 버그들은 중단 이전에 해결되지 않았습니다.

지원 또는 업데이트 없음: 활성 유지는 물론 .NET 10 및 C# 14와의 보안 취약점이나 호환성 문제는 해결되지 않을 것입니다.

IronPDF: 현대적TallComponents대안

IronPDF는 현대 개발 워크플로우에 있어 TallComponents를 문제로 만들었던 주요 제한 사항을 해결합니다:

기능 TallComponents IronPDF
현재 판매 상태 신규 판매용으로 단종 적극적으로 개발 및 판매 중
HTML에서 PDF로 변환 지원 아니요 예 (Chromium과 함께하는 HTML5/CSS3)
렌더링 충실도 알려진 버그 및 문제 입증된 신뢰성
설치 복잡하고 수동적 NuGet과 간단함
고객 지원 iText SDK로 전환 활성 지원 및 커뮤니티
미래 사용 가능성 수명 종료 장기적 실행 가능성

대조는 분명합니다: TallComponents는 .NET 개발의 다른 시대로부터의 XML 기반 접근을 제공하는 반면, IronPDF는 Chrome 기반의 HTML 렌더링을 제공하여 오늘날 개발자들이 애플리케이션을 구축하는 방식과 일치합니다.

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

단계 1: NuGet 패키지 교체

프로젝트에서 모든TallComponents패키지를 제거하세요:

# RemoveTallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
# RemoveTallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
SHELL

IronPDF 설치하세요:

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

특수화된 프레임워크의 경우, IronPDF는 전용 확장 패키지를 제공합니다:

Blazor 서버:

PM > Install-Package IronPdf.Extensions.Blazor
PM > Install-Package IronPdf.Extensions.Blazor
SHELL

MAUI:

PM > Install-Package IronPdf.Extensions.Maui
PM > Install-Package IronPdf.Extensions.Maui
SHELL

MVC Framework:

PM > Install-Package IronPdf.Extensions.Mvc.Framework
PM > Install-Package IronPdf.Extensions.Mvc.Framework
SHELL

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

TallComponents 네임스페이스를 IronPdf 네임스페이스로 대체하세요:

// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;

// After (IronPDF)
using IronPdf;
// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;

// 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

TallComponents에서IronPDFAPI 매핑 참조

TallComponents 개념이 IronPDF에 어떻게 매핑되는지 이해하면 마이그레이션 과정을 가속화할 수 있습니다:

TallComponents IronPDF 노트
Document ChromePdfRenderer PDF 생성을 위한 렌더러 생성
Section 자동 HTML 구조에서 파생된 섹션
TextParagraph HTML 텍스트 요소 <p>, <h1>, <div> 등을 사용하세요.
ImageParagraph <img> 태그 표준 HTML 이미지
TableParagraph HTML <table> 표준 HTML 테이블
Font CSS font-family 웹 폰트를 완전히 지원
document.Write() pdf.SaveAs() 파일에 저장
document.Write(stream) pdf.BinaryData 또는 pdf.Stream 스트림 출력
Page.Canvas HTML/CSS렌더링 수동 캔버스 조작이 필요하지 않습니다
XmlDocument.Generate() RenderHtmlAsPdf() HTML이 XML을 대체합니다
PdfKit.Merger.Merge() PdfDocument.Merge() 여러 PDF 병합
Document.Security pdf.SecuritySettings PDF 보안 구성
PageLayout RenderingOptions 페이지 설정 및 여백

코드 마이그레이션 예제

HTML을 PDF로 변환

TallComponents는 네이티브 HTML에서 PDF로의 지원이 부족합니다. 해결책은 텍스트에서 프래그먼트를 만들도록 하고, 실제로 HTML을 렌더하지 않습니다:

TallComponents 접근 방식:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

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

            // Create HTML fragment
            Fragment fragment = Fragment.FromText(html);

            // Add to document
            Section section = document.Sections.Add();
            section.Fragments.Add(fragment);

            // Save to file
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                document.Write(fs);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

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

            // Create HTML fragment
            Fragment fragment = Fragment.FromText(html);

            // Add to document
            Section section = document.Sections.Add();
            section.Fragments.Add(fragment);

            // Save to file
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                document.Write(fs);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create a new document
        Using document As New Document()
            Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

            ' Create HTML fragment
            Dim fragment As Fragment = Fragment.FromText(html)

            ' Add to document
            Dim section As Section = document.Sections.Add()
            section.Fragments.Add(fragment)

            ' Save to file
            Using fs As New FileStream("output.pdf", FileMode.Create)
                document.Write(fs)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        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()
    {
        // Create a PDF from HTML string
        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()
        ' Create a PDF from HTML string
        Dim renderer As 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

IronPDF의 ChromePdfRenderer은 진정한 Chromium 엔진을 사용하여 전체 HTML5 및 CSS3 지원을 제공합니다. 즉, PDF가 현대 브라우저에서 나타나는 것과 정확히 똑같이 렌더됩니다. HTML to PDF 튜토리얼에서 더 알아보세요.

여러 PDF 병합

PDF 병합은 TallComponents와IronPDF사이의 장황함 차이를 보여줍니다.

TallComponents 접근 방식:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create output document
        using (Document outputDoc = new Document())
        {
            // Load first PDF
            using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
            using (Document doc1 = new Document(fs1))
            {
                foreach (Page page in doc1.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Load second PDF
            using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
            using (Document doc2 = new Document(fs2))
            {
                foreach (Page page in doc2.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Save merged document
            using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
            {
                outputDoc.Write(output);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create output document
        using (Document outputDoc = new Document())
        {
            // Load first PDF
            using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
            using (Document doc1 = new Document(fs1))
            {
                foreach (Page page in doc1.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Load second PDF
            using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
            using (Document doc2 = new Document(fs2))
            {
                foreach (Page page in doc2.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Save merged document
            using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
            {
                outputDoc.Write(output);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create output document
        Using outputDoc As New Document()
            ' Load first PDF
            Using fs1 As New FileStream("document1.pdf", FileMode.Open)
                Using doc1 As New Document(fs1)
                    For Each page As Page In doc1.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Load second PDF
            Using fs2 As New FileStream("document2.pdf", FileMode.Open)
                Using doc2 As New Document(fs2)
                    For Each page As Page In doc2.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Save merged document
            Using output As New FileStream("merged.pdf", FileMode.Create)
                outputDoc.Write(output)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;

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

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);

        // Save merged document
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

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

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);

        // Save merged document
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf

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

        ' Merge PDFs
        Dim merged = PdfDocument.Merge(pdf1, pdf2)

        ' Save merged document
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

TallComponents 버전은 수동 페이지 반복 및 복제를 요구합니다. IronPDF는 이를 단일 PdfDocument.Merge() 호출로 줄입니다. 고급 병합 시나리오에 대해서는 PDF 병합 문서를 참조하세요.

워터마크 추가

PDF에 워터마킹을 추가하는 것은 개발자 경험의 또 다른 중요한 차이를 나타냅니다.

TallComponents 접근 방식:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
        using (Document document = new Document(fs))
        {
            // Iterate through pages
            foreach (Page page in document.Pages)
            {
                // Create watermark text
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
                watermark.X = 200;
                watermark.Y = 400;
                watermark.Rotate = 45;

                // Add to page
                page.Overlay.Shapes.Add(watermark);
            }

            // Save document
            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
        using (Document document = new Document(fs))
        {
            // Iterate through pages
            foreach (Page page in document.Pages)
            {
                // Create watermark text
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
                watermark.X = 200;
                watermark.Y = 400;
                watermark.Rotate = 45;

                // Add to page
                page.Overlay.Shapes.Add(watermark);
            }

            // Save document
            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Layout
Imports System.IO
Imports System.Drawing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Using fs As New FileStream("input.pdf", FileMode.Open)
            Using document As New Document(fs)
                ' Iterate through pages
                For Each page As Page In document.Pages
                    ' Create watermark text
                    Dim watermark As New TextShape()
                    watermark.Text = "CONFIDENTIAL"
                    watermark.Font = New Font("Arial", 60)
                    watermark.PenColor = Color.FromArgb(128, 255, 0, 0)
                    watermark.X = 200
                    watermark.Y = 400
                    watermark.Rotate = 45

                    ' Add to page
                    page.Overlay.Shapes.Add(watermark)
                Next

                ' Save document
                Using output As New FileStream("watermarked.pdf", FileMode.Create)
                    document.Write(output)
                End Using
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 접근법:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        var pdf = PdfDocument.FromFile("input.pdf");

        // Create watermark
        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 60,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        // Apply watermark to all pages
        pdf.ApplyStamp(watermark);

        // Save watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        var pdf = PdfDocument.FromFile("input.pdf");

        // Create watermark
        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 60,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        // Apply watermark to all pages
        pdf.ApplyStamp(watermark);

        // Save watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Dim pdf = PdfDocument.FromFile("input.pdf")

        ' Create watermark
        Dim watermark = New TextStamper() With {
            .Text = "CONFIDENTIAL",
            .FontSize = 60,
            .Opacity = 50,
            .Rotation = 45,
            .VerticalAlignment = VerticalAlignment.Middle,
            .HorizontalAlignment = HorizontalAlignment.Center
        }

        ' Apply watermark to all pages
        pdf.ApplyStamp(watermark)

        ' Save watermarked PDF
        pdf.SaveAs("watermarked.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF의 TextStamper 클래스는 직관적인 정렬 옵션과 자동 페이지 반복을 제공합니다. 도장 및 워터마킹 가이드는 추가 사용자 정의 옵션을 다룹니다.

디지털 서명

문서 서명은 기업용 애플리케이션에서 매우 중요합니다.

TallComponents 접근 방식:

using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;

Document document = new Document("unsigned.pdf");

// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");

// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);

document.Write("signed.pdf");
using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;

Document document = new Document("unsigned.pdf");

// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");

// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);

document.Write("signed.pdf");
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Kit.Signing
Imports System.Security.Cryptography.X509Certificates

Dim document As New Document("unsigned.pdf")

' Load certificate
Dim cert As New X509Certificate2("certificate.pfx", "password")

' Create signature
Dim handler As New SignatureHandler(cert)
document.Sign(handler)

document.Write("signed.pdf")
$vbLabelText   $csharpLabel

IronPDF 접근법:

using IronPdf;
using IronPdf.Signing;

var pdf = PdfDocument.FromFile("unsigned.pdf");

// Sign with certificate
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningLocation = "New York",
    SigningReason = "Document Approval"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;

var pdf = PdfDocument.FromFile("unsigned.pdf");

// Sign with certificate
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningLocation = "New York",
    SigningReason = "Document Approval"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing

Dim pdf = PdfDocument.FromFile("unsigned.pdf")

' Sign with certificate
Dim signature = New PdfSignature("certificate.pfx", "password") With {
    .SigningContact = "support@company.com",
    .SigningLocation = "New York",
    .SigningReason = "Document Approval"
}

pdf.Sign(signature)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

IronPDF의 서명 API는 감사 추적에 중요한 연락처 정보, 위치 및 서명 이유에 대한 추가 메타데이터 속성을 포함합니다. 완전한 구현 세부 정보를 보려면 디지털 서명 문서를 탐색하십시오.

기능 비교:TallComponents대 IronPDF

기능 TallComponents IronPDF
상태 ❌ 중단됨 ✅ 활성
지원 ❌ 없음 ✅ 전체
업데이트 ❌ 없음 ✅ 정기적
:콘텐츠 생성: HTML to PDF 아니요 전체 Chromium
URL을 PDF로 변환 아니요
CSS 지원 아니요 전체 CSS3
JavaScript 아니요 전체 ES2024
XML 템플릿 필요 없음
:PDF 작업: PDF 병합
PDF 분할
워터마크 수동 내장형
헤더/푸터 XML 기반 HTML/CSS
:보안: 비밀번호 보호
디지털 서명
암호화
PDF/A 제한적
:알려진 문제: 빈 페이지 ⚠️ 문서화된 버그 없음
누락된 그래픽 ⚠️ 문서화된 버그 없음
글꼴 문제 ⚠️ 문서화된 버그 없음
:개발: 학습 곡선 높음 (XML) 낮음 (HTML)
문서화 구식 광범위함
Community 없음 활성

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

이동 전 작업

코드 베이스를 감사하여 모든TallComponents사용을 식별하십시오:

grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
SHELL

기존 XML 템플릿과 레이아웃을 문서화하십시오—이를 HTML로 변환할 예정입니다. 현재 사용 중인 보안 설정을 파악하고 비밀번호 구성 및 디지털 서명 구현을 기록하십시오.

코드 업데이트 작업

  1. NuGet를 통해TallComponents패키지 제거
  2. IronPdf Install-Package
  3. XML 레이아웃을 HTML 템플릿으로 변환
  4. Section/Paragraph 모델을 HTML 요소로 교체
  5. 표 코드를 표준 HTML 테이블로 업데이트
  6. 헤더/푸터를 HTML로 변환하여 HtmlHeaderFooter을 사용하세요.
  7. 보안 설정을 업데이트하여 pdf.SecuritySettings을 사용하세요.
  8. 시작 시 라이선스 초기화를 추가

헤더 및 푸터 마이그레이션

TallComponents는 XML 기반 헤더를 사용합니다. IronPDF는 동적 플레이스홀더가 포함된 HTML 기반 헤더를 제공합니다:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    .MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

IronPDF의 헤더 및 푸터에 대해 자세히 알아보기.

테스트 단계

1.TallComponents버전과IronPDF버전 간의 시각적 출력을 비교

  1. 빈 페이지 문제 해결 여부 확인
  2. 모든 문서 템플릿 테스트
  3. PDF 병합 기능 유효성 검사
  4. 디지털 서명 테스트
  5. 보안 설정이 제대로 적용되는지 확인

권장 마이그레이션 일정

TallComponents가 지원 없이 중단된 상태이므로 마이그레이션을 긴급히 진행해야 합니다:

1주 차: 코드 베이스 감사 및 모든TallComponents사용 식별
2주 차: 문서 템플릿을 XML에서 HTML로 변환
3주 차: 보안, 병합 및 서명 코드 업데이트
4주 차: 테스트 및 프로덕션 배포

지연하면 문서화된 렌더링 버그가 있는 지원되지 않는 소프트웨어를 실행하게 되며, 이는 2026년을 앞두고 전문 개발 팀이 수용해서는 안 될 위험입니다.

주요 마이그레이션 혜택

TallComponents에서 IronPDF로 이동하면 즉시 장점이 있습니다:

최신 Chromium 렌더링 엔진: 전체 CSS 및JavaScript지원은 PDF가 기대한 대로 정확히 렌더되도록 하여, TallComponents에서 문서화된 빈 페이지 및 그래픽 누락 버그를 제거합니다.

활성 유지보수 및 보안 업데이트: IronPDF는 정기적으로 업데이트를 받아 현재 및 미래의 .NET 버전, .NET 10을 포함하여 호환성을 보장합니다.

향상된 .NET 통합: 네이티브 async/await 지원 및 현대식 API 패턴은 현대 C# 개발 관행과 일치합니다.

포괄적인 문서화: 철저한 자습서API 참조는 빠른 구현을 지원합니다.

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

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

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

아이언 서포트 팀

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