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

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

GrabzIt에서 IronPDF로의 마이그레이션은 클라우드 기반의 스크린샷 캡처 서비스 및 콜백 복잡성에서 선택 가능하고 검색 가능한 텍스트가 포함된 실제 벡터 PDF를 생성하는 인프로세스 라이브러리로 .NET PDF 워크플로우를 변환합니다. 이 가이드는 외부 서버 종속성, 콜백 핸들러 및 캡처당 가격을 제거하는 포괄적이고 단계적인 마이그레이션 경로를 제공합니다.

GrabzIt에서 IronPDF로의 마이그레이션 이유

GrabzIt의 아키텍처 문제

GrabzIt은 클라우드 기반의 스크린샷 및 PDF 캡처 서비스입니다. 빠른 통합에는 편리하지만, 근본적인 아키텍처적 한계가 있습니다:

  1. 이미지 기반 PDF: GrabzIt은 선택할 수 없는 텍스트인 스크린샷 기반 PDF를 생성합니다—기본적으로 PDF 형식으로 감싸진 이미지입니다. 텍스트 조작이나 접근성이 필요한 사용 사례에 있어 근본적인 한계입니다.

  2. 외부 처리: 모든 콘텐츠가 GrabzIt's 서버로 전송되어 처리됩니다—민감한 데이터에 대한 프라이버시 및 규정 준수 우려가 발생합니다. 귀하의 HTML 콘텐츠가 귀하의 인프라에서 벗어납니다.

  3. 콜백 복잡성: GrabzIt은 웹훅 처리 인프라를 요구하는 비동기 콜백 모델을 사용합니다. 결과를 수신하기 위한 엔드포인트를 설정해야 하며, 아키텍처적 복잡성이 증가합니다.

  4. 캡처당 가격: 사용량에 비례한 요금 모델은 규모에 따라 비쌀 수 있습니다. 매 PDF 생성 시 비용이 발생합니다.

  5. 텍스트 검색 불가: PDF가 이미지 기반이기 때문에 텍스트 검색 및 추출이 OCR 없이는 작동하지 않습니다—추가 단계와 비용이 듭니다.

  6. 더 큰 파일 크기: 이미지 기반 PDF는 벡터 기반 PDF보다 상당히 크며, 종종 5-10배에 달합니다.

  7. 네트워크 종속성: 인터넷 연결 없이 PDF를 생성할 수 없으며, 오프라인 시나리오가 불가능합니다.

  8. 지연: 매 PDF 생성 시 외부 서버로의 네트워크 왕복이 필요하며, 500ms에서 5s의 지연이 추가됩니다.

GrabzItvsIronPDF비교

측면 GrabzIt IronPDF
PDF 유형 이미지 기반 (스크린샷) 진정한 벡터 PDF
텍스트 선택 불가능 전체 텍스트 선택
텍스트 검색 OCR 필요 네이티브 검색 가능
처리 위치 외부 서버 로컬/인프로세스
프라이버시 외부로 전송된 데이터 데이터가 로컬에 남아 있음
지연 네트워크 왕복 (500ms-5s) 로컬 처리 (~100ms)
가격 모델 캡처당 개발자별 라이센스
오프라인 기능 아니요
파일 크기 큼 (이미지 데이터) 작음 (벡터 데이터)
콜백 필요 여부 예 (비동기) 아니요 (동기/비동기)
CSS/JS 지원 제한적 전체 Chromium 엔진

.NET 10 및 C# 14 채택을 2025년과 2026년까지 계획 중인 팀을 위해, IronPDF는 현행 .NET 패턴과 자연스럽게 통합되는 로컬 처리를 제공하여 미래를 대비한 기초를 제공합니다.


마이그레이션 복잡성 평가

기능별 예상 노력

기능 마이그레이션 복잡성
HTML to PDF 매우 낮음
URL을 PDF로 변환 매우 낮음
HTML에서 이미지로 낮음
페이지 크기/여백 낮음
콜백 핸들러 낮음
워터마크 낮음
헤더/푸터 중간
인증 키 매우 낮음

패러다임 전환

이GrabzIt마이그레이션의 근본적인 변화는 비동기 콜백 기반 클라우드 처리에서 동기 인프로세스 생성으로의 전환:

GrabzIt: HTML 전송 → 콜백 대기 → 서버에서 결과 수신
IronPDF: HTML 렌더링 → 즉시 PDF 얻기

시작하기 전에

필수 조건

  1. .NET 버전: IronPDF는 .NET Framework 4.6.2+ 및 .NET Core 3.1+ / .NET 5/6/7/8/9+를 지원합니다.
  2. 라이선스 키: ironpdf.com에서IronPDF라이선스 키를 얻으세요.
  3. 인프라 제거 계획: 중단을 위한 콜백 핸들러 및 웹훅 엔드포인트 문서화

GrabzIt사용을 모두 식별

# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .

# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .

# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .

# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .

# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
SHELL

NuGet 패키지 변경 사항

# Remove GrabzIt
dotnet remove package GrabzIt

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

# Install IronPDF
dotnet add package IronPdf
SHELL

빠른 시작 마이그레이션

1단계: 라이선스 구성 업데이트

이전 (GrabzIt):

GrabzIt은 클라이언트 인스턴스화 시마다 응용 프로그램 키와 비밀을 요구합니다:

var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
$vbLabelText   $csharpLabel

이후 (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Then create renderer without credentials
var renderer = new ChromePdfRenderer();
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Then create renderer without credentials
var renderer = new ChromePdfRenderer();
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"

' Then create renderer without credentials
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

2단계: 네임스페이스 가져오기 업데이트

// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;

// After (IronPDF)
using IronPdf;
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;

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

완전한 API 참조

GrabzItClient에서 IronPDF로의 맵핑

GrabzIt메소드 IronPDF 동등
new GrabzItClient(key, secret) new ChromePdfRenderer()
HTMLToPDF(html) renderer.RenderHtmlAsPdf(html)
URLToPDF(url) renderer.RenderUrlAsPdf(url)
HTMLToImage(html) pdf.ToBitmap()
Save(callbackUrl) pdf.SaveAs(path)
SaveTo(filePath) pdf.SaveAs(filePath)
GetResult(id) 해당 없음
GetStatus(id) 해당 없음

PDFOptions에서 RenderingOptions로의 매핑

GrabzIt PDFOptions IronPDF 속성
PageSize (A4, Letter) RenderingOptions.PaperSize
CustomId 해당 없음
MarginTop RenderingOptions.MarginTop
MarginBottom RenderingOptions.MarginBottom

ImageOptions에서 IronPDF로의 매핑

GrabzIt ImageOptions IronPDF 동등
Format (png, jpg) bitmap.Save(path, ImageFormat.Png)
Width RenderingOptions.ViewPortWidth
Height RenderingOptions.ViewPortHeight

코드 마이그레이션 예제

예제 1: HTML에서 PDF로 변환

이전 (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.CustomId = "my-pdf";

        grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.pdf");
    }
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.CustomId = "my-pdf";

        grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.pdf");
    }
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System

Module Program
    Sub Main()
        Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
        Dim options As New PDFOptions()
        options.CustomId = "my-pdf"

        grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options)
        grabzIt.SaveTo("output.pdf")
    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 pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

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

차이점은 큽니다: GrabzIt은 API 자격 증명(YOUR_APPLICATION_KEY, YOUR_APPLICATION_SECRET)이 필요하고, 사용자 지정 ID로 PDFOptions 객체를 생성하며, 결과는 외부 서버를 통해 전송되는 이미지 기반 PDF입니다. IronPDF의 ChromePdfRenderer는 선택 가능한 텍스트로 로컬에서 진정한 벡터 PDF를 생성합니다—자격 증명도, 네트워크 호출도, 콜백도 필요 없습니다. HTML to PDF 문서에서 추가 렌더링 옵션을 참조하십시오.

예제 2: URL에서 PDF로 변환

이전 (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.PageSize = PageSize.A4;

        grabzIt.URLToPDF("https://www.example.com", options);
        grabzIt.SaveTo("webpage.pdf");
    }
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.PageSize = PageSize.A4;

        grabzIt.URLToPDF("https://www.example.com", options);
        grabzIt.SaveTo("webpage.pdf");
    }
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System

Module Program
    Sub Main()
        Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
        Dim options As New PDFOptions()
        options.PageSize = PageSize.A4

        grabzIt.URLToPDF("https://www.example.com", options)
        grabzIt.SaveTo("webpage.pdf")
    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 pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

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

GrabzIt은 옵션 객체를 통해 PageSize.A4를 구성하고 외부 서버에 인증해야 합니다. IronPDF의 RenderUrlAsPdf() 방법은 URL을 직접 허용하고 완전한 CSS 및 JavaScript 지원이 있는 전체 Chromium 엔진을 사용하여 로컬로 렌더링합니다. URL을 PDF로 변환에 대해 더 알아보세요.

예제 3: HTML에서 이미지로 변환

이전 (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new ImageOptions();
        options.Format = ImageFormat.png;
        options.Width = 800;
        options.Height = 600;

        grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.png");
    }
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new ImageOptions();
        options.Format = ImageFormat.png;
        options.Width = 800;
        options.Height = 600;

        grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.png");
    }
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System

Module Program
    Sub Main()
        Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
        Dim options As New ImageOptions()
        options.Format = ImageFormat.png
        options.Width = 800
        options.Height = 600

        grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options)
        grabzIt.SaveTo("output.png")
    End Sub
End Module
$vbLabelText   $csharpLabel

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        var images = pdf.ToBitmap();
        images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        var images = pdf.ToBitmap();
        images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
    }
}
Imports IronPdf
Imports System
Imports System.Drawing

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>")
        Dim images = pdf.ToBitmap()
        images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
    End Sub
End Class
$vbLabelText   $csharpLabel

GrabzIt은 형식, 너비, 높이 구성을 위한 ImageOptions가 있는 전용 HTMLToImage() 방법을 제공합니다. IronPDF는 먼저 HTML을 PDF로 렌더링하는 RenderHtmlAsPdf()을 사용한 다음 ToBitmap()로 비트맵으로 변환하여 동일한 결과를 얻습니다. 이 접근 방식은 단일 렌더링 작업에서 PDF 및 이미지 출력을 모두 제공합니다.


중요한 마이그레이션 노트

콜백 필요 없음

가장 중요한 아키텍처 변경 사항은 콜백 핸들러를 완전히 제거하는 것입니다:

// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback");  // Wait for callback...

// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string id = context.Request.QueryString["id"];
        GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
        GrabzItFile file = grabzIt.GetResult(id);
        file.Save("output.pdf");
    }
}

// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");  // Done! 아니요 callback needed.
// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback");  // Wait for callback...

// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string id = context.Request.QueryString["id"];
        GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
        GrabzItFile file = grabzIt.GetResult(id);
        file.Save("output.pdf");
    }
}

// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");  // Done! 아니요 callback needed.
Imports System.Web

' GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options)
grabzIt.Save("https://myserver.com/grabzit-callback")  ' Wait for callback...

' Callback handler (separate endpoint)
Public Class GrabzItHandler
    Implements IHttpHandler

    Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim id As String = context.Request.QueryString("id")
        Dim grabzIt As New GrabzItClient("APP_KEY", "APP_SECRET")
        Dim file As GrabzItFile = grabzIt.GetResult(id)
        file.Save("output.pdf")
    End Sub

    Public ReadOnly Property IsReusable As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property
End Class

' IronPDF: Synchronous - result immediately available
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")  ' Done! No callback needed.
$vbLabelText   $csharpLabel

모든GrabzIt콜백 핸들러 삭제 (.ashx 파일, 핸들러 엔드포인트, 웹훅 구성) 후 마이그레이션.

진정한 벡터 PDF

GrabzIt은 선택할 수 없는 텍스트가 포함된 이미지 기반 PDF를 만듭니다. IronPDF는 진정한 벡터 PDF를 생성합니다:

// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();  // Works without OCR!
// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();  // Works without OCR!
Imports IronPdf

' With IronPDF, text extraction works natively
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()  ' Works without OCR!
$vbLabelText   $csharpLabel

텍스트 추출 문서를 참조하여 더 많은 정보를 확인하세요.

작은 파일 크기

벡터 기반 PDF는 일반적으로 GrabzIt의 이미지 기반 PDF보다 5-10배 더 작습니다. 이는 저장 비용, 다운로드 시간 및 이메일 첨부 가능성을 향상시킵니다.

API 자격 증명 제거

GrabzIt은 모든 작업에 대해 API 자격 증명이 필요합니다:

// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET
// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET
$vbLabelText   $csharpLabel

IronPDF는 애플리케이션 시작 시 한 번 설정되는 단일 라이선스 키를 사용합니다 - 요청 당 인증이 필요 없습니다.


문제 해결

문제 1: GrabzItClient를 찾을 수 없음

문제: GrabzIt을 제거한 후 GrabzItClient 참조로 컴파일 오류가 발생합니다.

해결책: ChromePdfRenderer로 대체하세요:

// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");

// Replace with:
var renderer = new ChromePdfRenderer();
// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");

// Replace with:
var renderer = new ChromePdfRenderer();
' Remove:
' Dim grabzIt = New GrabzItClient("KEY", "SECRET")

' Replace with:
Dim renderer = New ChromePdfRenderer()
$vbLabelText   $csharpLabel

문제 2: PDFOptions를 찾을 수 없음

문제: IronPDF에 PDFOptions 클래스가 없습니다.

해결책: RenderingOptions 속성을 사용하세요:

// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' GrabzIt
Dim options As New PDFOptions()
options.PageSize = PageSize.A4

' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
$vbLabelText   $csharpLabel

문제 3: 콜백 핸들러가 여전히 참조됨

문제: 애플리케이션이 콜백 엔드포인트를 예상합니다.

해결책: 콜백 인프라를 완전히 삭제하세요. IronPDF는 결과를 동기적으로 반환합니다 - 웹훅이 필요하지 않습니다.

문제 4: ImageOptions를 찾을 수 없음

문제: IronPDF에 ImageOptions 클래스가 없습니다.

해결책: 먼저 PDF로 렌더링한 후 변환하십시오:

// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
' GrabzIt
Dim options As New ImageOptions()
options.Format = ImageFormat.png
grabzIt.HTMLToImage(html, options)

' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim images = pdf.ToBitmap()
images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
$vbLabelText   $csharpLabel

마이그레이션 체크리스트

사전 마이그레이션

  • 코드베이스에서 모든GrabzItAPI 호출 목록 작성
  • 콜백 핸들러 및 웹훅 엔드포인트 식별
  • 현재GrabzIt옵션 및 템플릿 문서화 -IronPDF라이센스 키를 받으세요
  • 콜백 핸들러 폐지 계획 작성

코드 마이그레이션

  • IronPdf NuGet Install-Package: dotnet add package IronPdf -GrabzItNuGet 패키지 제거: dotnet remove package GrabzIt
  • GrabzItClientChromePdfRenderer로 대체
  • HTMLToPDF()RenderHtmlAsPdf()로 변환
  • URLToPDF()RenderUrlAsPdf()로 변환
  • Save(callback)SaveAs(path)로 대체
  • 옵션을 PDFOptions에서 RenderingOptions로 업데이트

인프라 마이그레이션

  • 콜백 핸들러 파일 삭제 (.ashx 등)
  • 구성에서GrabzItAPI 키 제거
  • 웹훅 URL 구성 제거 -IronPDF라이선스 키 구성 추가
  • 폴링/상태 확인 코드 제거

테스트

  • HTML을 PDF로 변환 테스트
  • URL을 PDF로 변환 테스트
  • 출력 PDF에서 텍스트가 선택 가능한지 확인
  • 텍스트 추출이 작동하는지 테스트 (OCR 없이)
  • 파일 크기가 작은지 확인
  • 네트워크 지연 없는 성능 테스트

마이그레이션 이후

-GrabzIt구독 취소

  • 콜백 핸들러 코드 보관
  • 문서 업데이트 GrabzIt 관련 오류 모니터링

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

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

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

아이언 서포트 팀

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