C#에서 PDFBolt에서 IronPDF로 마이그레이션하는 방법
PDFBolt에서 IronPDF로의 이전은 외부 문서 처리를 사용하는 클라우드 전용 SaaS 서비스에서 완전한 데이터 개인 정보 보호와 무제한 로컬 생성을 제공하는 자체 호스팅 라이브러리로 .NET PDF 워크플로를 이동합니다. 이 가이드는 네트워크 종속성, 사용 제한 및 외부 데이터 전송을 제거하는 포괄적이고 단계별 이동 경로를 제공하며 PDFBolt에서 제공할 수 없는 PDF 조작 기능에 액세스할 수 있습니다.
PDFBolt에서 IronPDF로 이전하는 이유
클라우드 전용 문제
PDFBolt는 문서를 외부 서버에서 처리하는 클라우드 전용 SaaS 플랫폼입니다. 빠른 프로토타이핑에는 편리하지만, 이 아키텍처는 프로덕션 애플리케이션에 상당한 문제를 만듭니다:
-
클라우드 전용 처리: 모든 문서가 외부 서버를 통과합니다. 자체 호스팅 옵션이 없으며 이로 인해 데이터와 프로세스에 대한 더 많은 통제를 필요로 하는 기업을 저해할 수 있습니다.
-
데이터 개인정보 침해 위험: 민감한 문서(계약서, 의무 기록, 금융 데이터)가 외부로 전송되어야 합니다. 민감한 정보를 다루는 회사는 정당한 우려를 가질 것입니다.
-
사용 제한: 무료 요금제는 월 100개의 문서로 제한되며, 더 큰 기업에게는 충분하지 않을 수 있습니다. 문서별 과금은 프로덕션 작업에 대해 빠르게 발생할 수 있습니다.
-
네트워크 종속성: 인터넷이 끊기거나 PDFBolt가 중단되면 PDF 생성이 완전히 멈춥니다.
-
지연 시간: 네트워크 왕복으로 인해 로컬 처리에 비해 변환 시 몇 초가 추가됩니다.
-
컴플라이언스 문제: GDPR, HIPAA 및 SOC2 감사는 외부 문서 처리로 인해 복잡해집니다.
-
API 키 보안: 유출된 API 키는 계정에 요금 부과를 초래할 수 있습니다.
- 벤더 종속: PDFBolt가 약관을 변경하거나 중단되면 애플리케이션이 실패합니다.
PDFBolt대IronPDF비교
| 문제 | PDFBolt | IronPDF |
|---|---|---|
| 데이터 위치 | 외부 서버 | 귀하의 서버만 |
| 사용 제한 | 100개 무료, 이후 문서당 과금 | 무제한 |
| 인터넷 필수 | 항상 필요 | 아니요 |
| 지연 시간 | 네트워크 왕복 | 밀리초 |
| 규정 준수 | 복잡함 (외부 처리) | 간단함 (로컬 처리) |
| 비용 모델 | 문서당 | 일회성 또는 연간 |
| 오프라인 작동 | 불가능 | 완전히 지원 |
| API 키 위험 | 유출됨 = 요금 부과 | 라이선스 키, 요금 부과 위험 없음 |
2025년과 2026년에 걸쳐 .NET 10과 C# 14 도입을 계획하는 팀들에게 IronPDF는 완전한 데이터 프라이버시를 보장하고 외부 클라우드 서비스에 대한 종속성을 제거하는 자체 호스팅 기반을 제공합니다.
시작하기 전에
필수 조건
- .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
- IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요
NuGet 패키지 변경 사항
# Remove PDFBolt
dotnet remove package PDFBolt
# Install IronPDF
dotnet add package IronPdf
# Remove PDFBolt
dotnet remove package PDFBolt
# Install IronPDF
dotnet add package IronPdf
라이선스 구성
// 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"
PDFBolt사용 알아보기
# Find allPDFBoltreferences
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
# Find allPDFBoltreferences
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
완전한 API 참조
핵심 클래스 매핑
| PDFBolt | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
PageSize |
PdfPaperSize |
| (바이트 배열 반환) | PdfDocument |
변환 방법 매핑
| PDFBolt | IronPDF |
|---|---|
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
출력 방법 매핑
| PDFBolt | IronPDF |
|---|---|
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(path) |
| (pdf는 바이트 배열) | pdf.BinaryData |
| (수동 스트림) | pdf.Stream |
페이지 구성 매핑
| PDFBolt | IronPDF |
|---|---|
converter.PageSize = PageSize.A4 |
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 |
converter.MarginTop = 20 |
renderer.RenderingOptions.MarginTop = 20 |
converter.MarginBottom = 20 |
renderer.RenderingOptions.MarginBottom = 20 |
converter.MarginLeft = 15 |
renderer.RenderingOptions.MarginLeft = 15 |
converter.MarginRight = 15 |
renderer.RenderingOptions.MarginRight = 15 |
헤더/푸터 플레이스홀더 매핑
| PDFBolt | IronPDF |
|---|---|
{pageNumber} |
{page} |
{totalPages} |
{total-pages} |
{date} |
{date} |
{title} |
{html-title} |
코드 마이그레이션 예제
예제 1: 기본 HTML에서 PDF로
이전 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
이후 (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
여기서의 근본적인 차이는 반환 유형과 저장 방식입니다. PDFBolt의 HtmlToPdfConverter.ConvertHtmlString()는 byte[]를 반환하며, 이는 File.WriteAllBytes()를 사용하여 수동으로 디스크에 작성해야 합니다. 이는 System.IO을(를) 가져오고 파일 작업을 직접 처리해야 합니다.
IronPDF의 ChromePdfRenderer.RenderHtmlAsPdf()는 내장된 SaveAs() 메서드를 가진 PdfDocument 객체를 반환합니다. 이 객체 지향 접근 방식은 추가적인 이점을 제공합니다: 저장 전에 PDF를 조작(워터마크 추가, 문서 병합, 보안 추가)할 수 있습니다. 기존 코드와의 호환성을 위한 원시 바이트가 필요한 경우 pdf.BinaryData을(를) 사용하세요. HTML to PDF 문서에서 추가 렌더링 옵션을 참조하십시오.
예제 2: URL에서 PDF로 변환
이전 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim pdf = converter.ConvertUrl("https://www.example.com")
File.WriteAllBytes("webpage.pdf", pdf)
End Sub
End Class
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
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;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
URL 변환을 위한PDFBolt패턴은 HTML 변환과 동일한 접근 방식을 따릅니다: ConvertUrl()는 byte[]를 반환하며, 저장을 위해 File.WriteAllBytes()이(가) 필요합니다. PDFBolt는 이미 URL에서 가져온 경우에도 서버로의 네트워크 왕복이 여전히 필요하다는 점에 주목하세요.
IronPDF의 RenderUrlAsPdf() 메서드는 내장된 SaveAs() 메서드를 가진 PdfDocument을(를) 반환합니다. 여기서 주요 장점은 IronPDF가 URL 가져오기 및 PDF 렌더링을 로컬에서 수행한다는 것입니다. 데이터가 인프라를 떠나지 않습니다. IronPDF 버전은 이 간단한 경우에 using System.IO;가 필요하지 않습니다. URL에서 PDF로 변환에 대해 더 알아보세요.
예제 3: 사용자 정의 페이지 설정이 있는 HTML 파일
이전 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.PageSize = PageSize.A4
converter.MarginTop = 20
converter.MarginBottom = 20
Dim html As String = File.ReadAllText("input.html")
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim html = File.ReadAllText("input.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
이 예제는 페이지 구성 차이점을 보여줍니다. PDFBolt는 변환기 객체에 직접 속성을 설정합니다 (converter.PageSize, converter.MarginTop). IronPDF는 렌더러에 RenderingOptions 객체를 사용합니다 (renderer.RenderingOptions.PaperSize, renderer.RenderingOptions.MarginTop).
주요 매핑:
PageSize.A4→PdfPaperSize.A4(다른 열거형 이름)MarginTop = 20→RenderingOptions.MarginTop = 20(RenderingOptions 통해서)
둘 다 여백 값에 밀리미터를 사용하므로 기존 여백 값이 직접 전송될 수 있습니다. IronPdf.Rendering 네임스페이스는 PdfPaperSize 열거형에 접근하기 위해 필요합니다. 추가 페이지 구성 옵션은 렌더링 옵션 문서를 참조하십시오.
중요한 마이그레이션 노트
반환 타입 변경
PDFBolt는 byte[]를 직접 반환합니다; IronPDF는 PdfDocument를 반환합니다:
//PDFBoltpattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
//PDFBoltpattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
'PDFBoltpattern:
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
'IronPDFpattern:
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Or if you need bytes:
Dim pdfBytes As Byte() = renderer.RenderHtmlAsPdf(html).BinaryData
클래스 이름 변경
주요 클래스 이름이 변환기 중심에서 렌더러 중심으로 변경됩니다:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
구성 패턴 변경
PDFBolt는 직접 속성을 사용합니다; IronPDF는 RenderingOptions를 사용합니다:
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
' PDFBolt: Direct properties
converter.PageSize = PageSize.A4
converter.MarginTop = 20
' IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
API 키 제거
PDFBolt는 요청당 API 키 관리가 필요합니다; IronPDF는 일회성 라이선스 키를 사용합니다:
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
' PDFBolt: API key per client (security risk if leaked)
Dim apiKey = config("PDFBolt:ApiKey")
Dim client = New Client(apiKey)
' IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()
네트워크 오류 처리 제거
로컬 처리는 처리할 네트워크 오류가 없음을 의미합니다:
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
새로운 기능 제공
IronPDF로 마이그레이션 후에는 PDFBolt에서 제공할 수 없는 기능을 제공합니다:
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
' PDF Merging (not available in PDFBolt)
Dim merged = PdfDocument.Merge(pdf1, pdf2)
' Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>")
' Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret"
' Text Extraction (not available in PDFBolt)
Dim text As String = pdf.ExtractAllText()
' PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png")
문제 해결
이슈 1: HtmlToPdfConverter를 찾을 수 없음
문제: HtmlToPdfConverter 클래스는 IronPDF에 존재하지 않습니다.
해결책: ChromePdfRenderer를 사용하세요:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
문제 2: ConvertHtmlString을 찾을 수 없음
문제: ConvertHtmlString() 메서드는 존재하지 않습니다.
해결책: RenderHtmlAsPdf()를 사용하세요:
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
' PDFBolt
Dim pdf = converter.ConvertHtmlString(html)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
문제 3: ConvertUrl을 찾을 수 없음
문제: ConvertUrl() 메서드는 존재하지 않습니다.
해결책: RenderUrlAsPdf()를 사용하세요:
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
' PDFBolt
Dim pdf = converter.ConvertUrl(url)
' IronPDF
Dim pdf = renderer.RenderUrlAsPdf(url)
문제 4: PageSize 열거형을 찾을 수 없음
문제: PageSize 열거형은 존재하지 않습니다.
해결책: IronPdf.Rendering로부터 PdfPaperSize를 사용하세요:
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDFBolt
converter.PageSize = PageSize.A4
' IronPDF
Imports IronPdf.Rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
문제 5: 첫 번째 PDF 생성이 느림
문제: 초기 렌더링이 예상보다 오래 걸립니다.
해결책: Chromium 엔진은 처음 사용할 때 초기화됩니다. 필요시 사전 가열:
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
' Warm up during application startup
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf("<html><body></body></html>")
마이그레이션 체크리스트
사전 마이그레이션
- 코드 기반 내 모든PDFBolt사용 조사
- 현재 페이지 구성 설정 문서화 (PageSize, 여백)
- 제거할 API 키 관리 코드 식별
- 삭제할 요금 제한 또는 네트워크 오류 처리 나열 -IronPDF라이센스 키를 받으세요
패키지 변경 사항
PDFBoltNuGet 패키지 제거IronPdfNuGet Install-Package:dotnet add package IronPdfusing IronPdf;네임스페이스 추가- 용지 크기 열거형을 위해
using IronPdf.Rendering;추가
코드 변경 사항
- 시작 시 라이선스 키 구성 추가
HtmlToPdfConverter을ChromePdfRenderer로 대체ConvertHtmlString()을RenderHtmlAsPdf()로 대체ConvertUrl()을RenderUrlAsPdf()로 대체File.WriteAllBytes()을pdf.SaveAs()로 대체PageSize을RenderingOptions.PaperSize로 업데이트- 여백 속성을
RenderingOptions.MarginTop등으로 업데이트 - API 키 관리 코드 제거
- 요금 제한 처리 코드 제거
- 네트워크 오류 처리 제거
마이그레이션 이후
- 구성 파일에서 API 키 삭제
- 비밀 관리자에서 API 키 제거
- PDF 출력 비교 모든 테스트 실행
- 페이지 크기와 여백이 정확하게 렌더링 되는지 확인
- 새로운 기능 추가 고려 (워터마크, 보안, 병합)

