C#에서 GrabzIt에서 IronPDF로 마이그레이션하는 방법
GrabzIt에서 IronPDF로의 마이그레이션은 클라우드 기반의 스크린샷 캡처 서비스 및 콜백 복잡성에서 선택 가능하고 검색 가능한 텍스트가 포함된 실제 벡터 PDF를 생성하는 인프로세스 라이브러리로 .NET PDF 워크플로우를 변환합니다. 이 가이드는 외부 서버 종속성, 콜백 핸들러 및 캡처당 가격을 제거하는 포괄적이고 단계적인 마이그레이션 경로를 제공합니다.
GrabzIt에서 IronPDF로의 마이그레이션 이유
GrabzIt의 아키텍처 문제
GrabzIt은 클라우드 기반의 스크린샷 및 PDF 캡처 서비스입니다. 빠른 통합에는 편리하지만, 근본적인 아키텍처적 한계가 있습니다:
-
이미지 기반 PDF: GrabzIt은 선택할 수 없는 텍스트인 스크린샷 기반 PDF를 생성합니다—기본적으로 PDF 형식으로 감싸진 이미지입니다. 텍스트 조작이나 접근성이 필요한 사용 사례에 있어 근본적인 한계입니다.
-
외부 처리: 모든 콘텐츠가 GrabzIt's 서버로 전송되어 처리됩니다—민감한 데이터에 대한 프라이버시 및 규정 준수 우려가 발생합니다. 귀하의 HTML 콘텐츠가 귀하의 인프라에서 벗어납니다.
-
콜백 복잡성: GrabzIt은 웹훅 처리 인프라를 요구하는 비동기 콜백 모델을 사용합니다. 결과를 수신하기 위한 엔드포인트를 설정해야 하며, 아키텍처적 복잡성이 증가합니다.
-
캡처당 가격: 사용량에 비례한 요금 모델은 규모에 따라 비쌀 수 있습니다. 매 PDF 생성 시 비용이 발생합니다.
-
텍스트 검색 불가: PDF가 이미지 기반이기 때문에 텍스트 검색 및 추출이 OCR 없이는 작동하지 않습니다—추가 단계와 비용이 듭니다.
-
더 큰 파일 크기: 이미지 기반 PDF는 벡터 기반 PDF보다 상당히 크며, 종종 5-10배에 달합니다.
-
네트워크 종속성: 인터넷 연결 없이 PDF를 생성할 수 없으며, 오프라인 시나리오가 불가능합니다.
- 지연: 매 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 얻기
시작하기 전에
필수 조건
- .NET 버전: IronPDF는 .NET Framework 4.6.2+ 및 .NET Core 3.1+ / .NET 5/6/7/8/9+를 지원합니다.
- 라이선스 키: ironpdf.com에서IronPDF라이선스 키를 얻으세요.
- 인프라 제거 계획: 중단을 위한 콜백 핸들러 및 웹훅 엔드포인트 문서화
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" .
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
빠른 시작 마이그레이션
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")
이후 (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()
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
완전한 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
이후 (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
차이점은 큽니다: 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
이후 (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
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
이후 (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
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.
모든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!
텍스트 추출 문서를 참조하여 더 많은 정보를 확인하세요.
작은 파일 크기
벡터 기반 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
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()
문제 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
문제 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)
마이그레이션 체크리스트
사전 마이그레이션
- 코드베이스에서 모든GrabzItAPI 호출 목록 작성
- 콜백 핸들러 및 웹훅 엔드포인트 식별
- 현재GrabzIt옵션 및 템플릿 문서화 -IronPDF라이센스 키를 받으세요
- 콜백 핸들러 폐지 계획 작성
코드 마이그레이션
- IronPdf NuGet Install-Package:
dotnet add package IronPdf-GrabzItNuGet 패키지 제거:dotnet remove package GrabzIt GrabzItClient을ChromePdfRenderer로 대체HTMLToPDF()을RenderHtmlAsPdf()로 변환URLToPDF()을RenderUrlAsPdf()로 변환Save(callback)을SaveAs(path)로 대체- 옵션을
PDFOptions에서RenderingOptions로 업데이트
인프라 마이그레이션
- 콜백 핸들러 파일 삭제 (
.ashx등) - 구성에서GrabzItAPI 키 제거
- 웹훅 URL 구성 제거 -IronPDF라이선스 키 구성 추가
- 폴링/상태 확인 코드 제거
테스트
- HTML을 PDF로 변환 테스트
- URL을 PDF로 변환 테스트
- 출력 PDF에서 텍스트가 선택 가능한지 확인
- 텍스트 추출이 작동하는지 테스트 (OCR 없이)
- 파일 크기가 작은지 확인
- 네트워크 지연 없는 성능 테스트
마이그레이션 이후
-GrabzIt구독 취소
- 콜백 핸들러 코드 보관
- 문서 업데이트 GrabzIt 관련 오류 모니터링

