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

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

Kaizen.io HTML-to-PDF에서 IronPDF로의 마이그레이션은 네트워크 지연 및 데이터 개인정보 보호 문제를 해결하는 클라우드 의존성을 가진 서비스에서 데이터를 인프라 내에서 유지하는 로컬 프로세스 라이브러리로 .NET PDF 워크플로를 변환합니다. 이 가이드는 외부 API 종속성과 요청당 가격 책정을 제거하는 전문적인 .NET 개발자를 위한 포괄적인 단계별 마이그레이션 경로를 제공합니다.

Kaizen.io에서 IronPDF로 마이그레이션하는 이유

클라우드 기반 API의 문제점

Kaizen.io HTML-to-PDF는 다른 클라우드 기반 PDF 서비스처럼 생산 응용 프로그램에 영향을 미치는 제한사항을 도입합니다:

  1. 클라우드 의존성: 지속적인 인터넷 연결과 외부 서비스 가용성을 요구합니다. Kaizen.io 서비스가 중단되면 애플리케이션의 PDF 생성이 중지됩니다.

  2. 데이터 개인정보 문제: 고객 데이터, 재무 보고서, 기밀 문서를 포함한 민감한 HTML 콘텐츠는 처리를 위해 타사 서버로 전송되어야 합니다.

  3. 네트워크 지연: 모든 PDF 생성에는 100-500ms 이상의 네트워크 왕복 지연이 발생하여 애플리케이션의 응답 시간에 상당한 오버헤드를 추가합니다.

  4. 요청당 가격: 비용은 사용량에 따라 직접적으로 증가하여 대량의 PDF 생성이 점점 더 비싸집니다.

  5. 속도 제한: 높은 트래픽 기간 동안 API가 제한되면 PDF 생성 실패 또는 지연이 발생하여 필요한 시점에 사용할 수 없게 될 수 있습니다.

  6. 벤더 락인: API 변경 또는 서비스 중단 위험으로 인해 애플리케이션이 외부 비즈니스 결정에 취약해질 수 있습니다.

Kaizen.io vsIronPDF비교

기능 Kaizen.io IronPDF
처리 클라우드 (외부 서버) 로컬 (인프로세스)
데이터 프라이버시 데이터가 외부로 전송됨 데이터가 인프라를 떠나지 않음
지연 네트워크 왕복 시간(100-500ms+) 로컬 처리(50-200ms)
가용성 외부 서비스에 의존 100% 귀하의 통제 하에
가격 요청당 또는 구독 기준 1회 또는 연간 라이선스
오프라인 모드 불가능 전체 기능
속도 제한 API 스로틀링 제한 없음
JavaScript 제한적 지원 전체 Chromium 실행

.NET 10 및 C# 14 도입을 2025년과 2026년까지 계획하는 팀을 위해 IronPDF는 외부 서비스에 의존하지 않는 로컬 프로세싱으로 미래를 대비한 기반을 제공합니다.


마이그레이션 복잡성 평가

기능별 예상 노력

기능 마이그레이션 복잡성
기본 HTML을 PDF로 매우 낮음
HTML 파일을 PDF로 매우 낮음
URL을 PDF로 변환 매우 낮음
헤더/푸터 낮음
페이지 설정 매우 낮음
API 키 관리 낮음

패러다임 전환

이번 Kaizen.io 마이그레이션의 근본적인 변화는 클라우드 API 호출에서 로컬 인프로세스 렌더링으로의 전환입니다:

Kaizen.io:  HtmlToPdfConverter → Convert(html) → byte[] (네트워크를 통해)
IronPDF:    ChromePdfRenderer → RenderHtmlAsPdf(html) → PdfDocument (로컬)

시작하기 전에

필수 조건

  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 Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
# Remove Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
SHELL

라이선스 구성

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kaizen.io 사용 식별

# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
SHELL

완전한 API 참조

클래스 매핑

Kaizen.io 클래스 IronPDF 동등
HtmlToPdfConverter ChromePdfRenderer
ConversionOptions ChromePdfRenderOptions
HeaderOptions HtmlHeaderFooter 또는 TextHeaderFooter
FooterOptions HtmlHeaderFooter 또는 TextHeaderFooter
PageSize PdfPaperSize
Orientation PdfPaperOrientation

메서드 매핑

Kaizen.io 메서드 IronPDF 동등
converter.Convert(html) renderer.RenderHtmlAsPdf(html)
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url)
File.WriteAllBytes(path, bytes) pdf.SaveAs(path)

ConversionOptions 속성 매핑

Kaizen.io 속성 IronPDF 동등
PageSize RenderingOptions.PaperSize
Orientation RenderingOptions.PaperOrientation
MarginTop RenderingOptions.MarginTop
MarginBottom RenderingOptions.MarginBottom
Header.HtmlContent RenderingOptions.HtmlHeader.HtmlFragment
Footer.HtmlContent RenderingOptions.HtmlFooter.HtmlFragment

플레이스홀더 매핑

Kaizen.io 플레이스홀더 IronPDF 플레이스홀더
{page} {page}
{total} {total-pages}
{date} {date}
{title} {html-title}

코드 마이그레이션 예제

예제 1: 기본 HTML에서 PDF로

이전 (Kaizen.io):

using Kaizen.IO;
using System.IO;

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

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

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdfBytes = converter.Convert(html)
        File.WriteAllBytes("output.pdf", pdfBytes)
    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();
        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.IO;

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.IO

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

Kaizen.io 접근 방식은 HtmlToPdfConverter을(를) 생성하고, 바이트 배열을 가져오려면 Convert()을(를) 호출한 다음, 수동으로 File.WriteAllBytes()을(를) 사용하여 파일에 바이트를 씁니다. 이것은 Kaizen.io 클라우드 서비스에 대해 네트워크 왕복을 포함합니다.

IronPDF의 ChromePdfRenderer은 모든 것을 로컬에서 처리합니다. RenderHtmlAsPdf() 메서드는 편리한 SaveAs() 메서드와 함께 PdfDocument 객체를 반환합니다. 수동 바이트 배열 처리가 필요 없으며, 네트워크 지연도 없습니다. HTML to PDF 문서에서 추가 렌더링 옵션을 참조하십시오.

예제 2: 페이지 설정과 함께 HTML 파일을 PDF로

이전 (Kaizen.io):

using Kaizen.IO;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = File.ReadAllText("input.html");
        var options = new ConversionOptions
        {
            PageSize = PageSize.A4,
            Orientation = Orientation.Portrait
        };
        var pdfBytes = converter.Convert(htmlContent, options);
        File.WriteAllBytes("document.pdf", pdfBytes);
    }
}
using Kaizen.IO;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = File.ReadAllText("input.html");
        var options = new ConversionOptions
        {
            PageSize = PageSize.A4,
            Orientation = Orientation.Portrait
        };
        var pdfBytes = converter.Convert(htmlContent, options);
        File.WriteAllBytes("document.pdf", pdfBytes);
    }
}
Imports Kaizen.IO
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim htmlContent = File.ReadAllText("input.html")
        Dim options = New ConversionOptions With {
            .PageSize = PageSize.A4,
            .Orientation = Orientation.Portrait
        }
        Dim pdfBytes = converter.Convert(htmlContent, options)
        File.WriteAllBytes("document.pdf", pdfBytes)
    End Sub
End Class
$vbLabelText   $csharpLabel

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Kaizen.io 접근 방식은 File.ReadAllText()을(를) 사용하여 HTML 파일 내용을 수동으로 읽고, 별도의 ConversionOptions 객체를 생성하며, 둘 다 Convert() 메서드에 전달한 다음, 결과 바이트를 수동으로 파일에 씁니다.

IronPDF는 파일을 직접 읽는 전용 RenderHtmlFileAsPdf() 메서드를 제공하여 수동 파일 읽기가 필요하지 않습니다. 구성은 렌더러의 RenderingOptions 속성에서 설정되어 모든 설정을 한 곳에 유지합니다. PdfPaperSize.A4PdfPaperOrientation.Portrait 열거형은 Kaizen.io의 동일한 구성 요소에서 직접 매핑됩니다.

예제 3: 헤더와 푸터가 있는 URL을 PDF로 전환

이전 (Kaizen.io):

using Kaizen.IO;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var options = new ConversionOptions
        {
            Header = new HeaderOptions { HtmlContent = "<div style='text-align:center'>Company Header</div>" },
            Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
            MarginTop = 20,
            MarginBottom = 20
        };
        var pdfBytes = converter.ConvertUrl("https://example.com", options);
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
using Kaizen.IO;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var options = new ConversionOptions
        {
            Header = new HeaderOptions { HtmlContent = "<div style='text-align:center'>Company Header</div>" },
            Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
            MarginTop = 20,
            MarginBottom = 20
        };
        var pdfBytes = converter.ConvertUrl("https://example.com", options);
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
Imports Kaizen.IO
Imports System
Imports System.IO

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        Dim options As New ConversionOptions With {
            .Header = New HeaderOptions With {.HtmlContent = "<div style='text-align:center'>Company Header</div>"},
            .Footer = New FooterOptions With {.HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>"},
            .MarginTop = 20,
            .MarginBottom = 20
        }
        Dim pdfBytes = converter.ConvertUrl("https://example.com", options)
        File.WriteAllBytes("webpage.pdf", pdfBytes)
    End Sub
End Module
$vbLabelText   $csharpLabel

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader.CenterText = "Company Header";
        renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader.CenterText = "Company Header";
        renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf
Imports System
Imports System.IO

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.TextHeader.CenterText = "Company Header"
        renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

이 예제는 여러 주요 마이그레이션 차이점을 보여줍니다. Kaizen.io는 ConversionOptions 내에 중첩된 HeaderOptionsFooterOptions 객체를 요구하며, 각각 HtmlContent 속성을 가집니다. IronPDF는 전용 CenterText, LeftText, RightText 속성을 갖춘 더 깔끔한 TextHeaderTextFooter 구성을 제공합니다.

중요 참고: 플레이스홀더 구문이 다릅니다! Kaizen.io는 총 페이지 수를 위해 {total}을 사용하고, IronPDF는 {total-pages}을 사용합니다. 이것이 가장 흔한 마이그레이션 문제입니다—코드베이스에서 {total}을(를) 검색하고 {total-pages}로 대체하십시오.

IronPDF의 RenderUrlAsPdf() 메서드는 Chrome 엔진을 통해 전체JavaScript실행을 사용하여 모든 URL을 직접 렌더링합니다—우회로가 필요하지 않습니다. URL을 PDF로 변환하기헤더 및 푸터에 대해 더 알아보십시오.


중요한 마이그레이션 노트

플레이스홀더 구문 변경

헤더 및 푸터 마이그레이션에서 가장 중요한 변화는 플레이스홀더 구문입니다:

// Kaizen.io placeholders:
"Page {page} of {total}"

//IronPDFplaceholders:
"Page {page} of {total-pages}"
// Kaizen.io placeholders:
"Page {page} of {total}"

//IronPDFplaceholders:
"Page {page} of {total-pages}"
' Kaizen.io placeholders:
"Page {page} of {total}"

' IronPDF placeholders:
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

완전한 플레이스홀더 매핑:

  • {page}{page} (동일)
  • {total}{total-pages} (다름!)
  • {title}{html-title} (다름!)
  • {date}{date} (동일)
  • {time}{time} (동일)

반환 타입 변경

Kaizen.io는 byte[]을 직접 반환합니다. IronPDF는 PdfDocument 객체를 반환합니다:

// Kaizen.io returns byte[]
byte[] pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);

//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Or get bytes if needed
// Kaizen.io returns byte[]
byte[] pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);

//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Or get bytes if needed
' Kaizen.io returns byte()
Dim pdfBytes As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdfBytes)

' IronPDF returns PdfDocument
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")           ' Direct save
Dim bytes As Byte() = pdf.BinaryData ' Or get bytes if needed
$vbLabelText   $csharpLabel

API 키 관리 제거

Kaizen.io는 요청마다 API 키 인증을 필요로 합니다. IronPDF는 애플리케이션 시작 시 한 번 라이선스 키를 설정합니다:

// DELETE this Kaizen.io pattern:
var converter = new HtmlToPdfConverter("YOUR_API_KEY");

// IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();  // No API key needed
// DELETE this Kaizen.io pattern:
var converter = new HtmlToPdfConverter("YOUR_API_KEY");

// IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();  // No API key needed
' DELETE this Kaizen.io pattern:
Dim converter = New HtmlToPdfConverter("YOUR_API_KEY")

' IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()  ' No API key needed
$vbLabelText   $csharpLabel

네트워크 오류 처리 삭제

재시도 로직, 속도 제한 처리 및 네트워크 타임아웃 코드를 제거하십시오—IronPDF는 로컬로 처리합니다:

// DELETE this Kaizen.io pattern:
int retries = 3;
while (retries > 0)
{
    try
    {
        return converter.Convert(html);
    }
    catch (RateLimitException)
    {
        retries--;
        Thread.Sleep(1000);
    }
}

// IronPDF: Just call the method
return renderer.RenderHtmlAsPdf(html).BinaryData;
// DELETE this Kaizen.io pattern:
int retries = 3;
while (retries > 0)
{
    try
    {
        return converter.Convert(html);
    }
    catch (RateLimitException)
    {
        retries--;
        Thread.Sleep(1000);
    }
}

// IronPDF: Just call the method
return renderer.RenderHtmlAsPdf(html).BinaryData;
' DELETE this Kaizen.io pattern:
Dim retries As Integer = 3
While retries > 0
    Try
        Return converter.Convert(html)
    Catch ex As RateLimitException
        retries -= 1
        Thread.Sleep(1000)
    End Try
End While

' IronPDF: Just call the method
Return renderer.RenderHtmlAsPdf(html).BinaryData
$vbLabelText   $csharpLabel

문제 해결

이슈 1: HtmlToPdfConverter를 찾을 수 없음

문제: IronPDF에는 HtmlToPdfConverter 클래스가 존재하지 않습니다.

해결책: ChromePdfRenderer로 대체하십시오:

// Kaizen.io
var converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
// Kaizen.io
var converter = new HtmlToPdfConverter();

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

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

이슈 2: ConversionOptions를 찾을 수 없음

문제: IronPDF에는 ConversionOptions 클래스가 존재하지 않습니다.

해결책: 렌더러에서 RenderingOptions을 사용하십시오:

// Kaizen.io
var options = new ConversionOptions { PageSize = PageSize.A4 };
converter.Convert(html, options);

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
// Kaizen.io
var options = new ConversionOptions { PageSize = PageSize.A4 };
converter.Convert(html, options);

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
' Kaizen.io
Dim options As New ConversionOptions With {.PageSize = PageSize.A4}
converter.Convert(html, options)

' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

이슈 3: 페이지 번호 작동 안 함

문제: 푸터에서 페이지 번호 대신 문자 {total}가 표시됩니다.

해결책: 플레이스홀더 구문을 업데이트하십시오:

// Kaizen.io syntax (won't work)
"Page {page} of {total}"

//IronPDFsyntax
"Page {page} of {total-pages}"
// Kaizen.io syntax (won't work)
"Page {page} of {total}"

//IronPDFsyntax
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

이슈 4: Convert 메소드를 찾을 수 없음

문제: ChromePdfRenderer에는 Convert() 메서드가 존재하지 않습니다.

해결책: RenderHtmlAsPdf()을 사용하십시오:

// Kaizen.io
var pdfBytes = converter.Convert(html);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
// Kaizen.io
var pdfBytes = converter.Convert(html);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
' Kaizen.io
Dim pdfBytes = converter.Convert(html)

' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes = pdf.BinaryData
$vbLabelText   $csharpLabel

이슈 5: 초기 렌더링이 느림

문제: 첫 번째 PDF 생성이 1-3초가 소요됩니다.

해결책: IronPDF는 첫 사용 시 Chromium을 초기화합니다. 애플리케이션 시작 시 워밍업하세요:

// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
' In Program.vb or Startup.vb:
Call New ChromePdfRenderer().RenderHtmlAsPdf("<html></html>")
$vbLabelText   $csharpLabel

마이그레이션 체크리스트

사전 마이그레이션

  • 모든 Kaizen.io using 문을 식별하십시오
  • 사용된 ConversionOptions 설정을 문서화하십시오
  • 헤더/푸터 템플릿 및 플레이스홀더를 기록하십시오
  • API 키 위치 목록 작성 (제거할 것)
  • 재시도/속도 제한 로직 확인 (삭제할 것) -IronPDF라이센스 키를 받으세요

패키지 변경 사항

  • Kaizen.HtmlToPdf 패키지를 제거하십시오
  • IronPdf NuGet 패키지를 설치하십시오: dotnet add package IronPdf
  • 네임스페이스 가져오기 업데이트

코드 변경 사항

  • 시작 시 라이선스 키 구성 추가
  • HtmlToPdfConverterChromePdfRenderer로 대체하십시오
  • ConversionOptionsRenderingOptions로 변환하십시오
  • Convert()RenderHtmlAsPdf()로 업데이트하십시오
  • ConvertUrl()RenderUrlAsPdf()로 업데이트하십시오
  • 플레이스홀더 구문을 업데이트하십시오 ({total}{total-pages})
  • File.WriteAllBytes()pdf.SaveAs()로 대체하십시오
  • API 키 설정 제거
  • 재시도/속도 제한 로직 삭제
  • API 호출을 위한 네트워크 오류 처리 제거

테스트

  • 모든 PDF 생성 경로 테스트
  • 헤더/푸터 렌더링 검증
  • 플레이스홀더 렌더링 확인
  • 여백 및 페이지 크기 확인
  • 오프라인 기능 테스트 (새로운 기능!)
  • 성능 개선 벤치마크 측정

마이그레이션 이후

  • Kaizen.io API 키를 설정에서 제거하십시오
  • 환경 변수를 업데이트하십시오
  • 속도 제한 설정 제거
  • 모니터링/경보를 업데이트하십시오

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

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

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

아이언 서포트 팀

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