Sumatra PDF에서 IronPDF로의 마이그레이션 방법 (C#)
Sumatra PDF에서 IronPDF로의 마이그레이션은 데스크톱 뷰어 응용 프로그램을 통한 외부 프로세스 관리에서 완전한 PDF 생성, 조작 및 추출 기능을 갖춘 네이티브 .NET 라이브러리 통합으로 PDF 워크플로를 변환합니다. 이 가이드는 외부 종속성,GPL라이선스 제한 사항을 제거하고 Sumatra PDF가 개발 라이브러리가 아닌 뷰어라는 본질적인 제한을 제거하는 완전한 단계별 마이그레이션 경로를 제공합니다.
왜 Sumatra PDF에서 IronPDF로 마이그레이션해야 하는가
Sumatra PDF이해하기
Sumatra PDF는 주로 그 단순함과 속도로 유명한 경량 오픈 소스 PDF 리더입니다. 그러나 Sumatra PDF는 PDF 파일을 보는 것 외에 생성하거나 조작하는 데 필요한 기능을 제공하지 않습니다. 무료이면서도 다재다능한 PDF 읽기 옵션으로, 불필요한 기능 없이 직관적인 경험을 원하는 많은 사용자가 좋아합니다. 하지만, 개발자가 응용 프로그램 내에서 생성과 라이브러리 통합과 같은 보다 포괄적인 PDF 기능이 필요할 때, Sumatra PDF는 그 본질적인 설계 제한 때문에 부족합니다.
Sumatra PDF는 데스크톱 PDF 뷰어 응용 프로그램이지, 개발 라이브러리가 아닙니다. .NET 응용 프로그램에서 Sumatra PDF를 사용하고 있다면, 다음 스스로 일 것이 분명합니다:
- PDF을 표시하기 위해 외부 프로세스로 런칭
- 명령줄을 통해 PDF 인쇄에 사용
- 사용자가 설치해야 하는 종속성으로 의존
Sumatra PDF통합의 주요 문제
| 문제 | 영향 |
|---|---|
| 라이브러리가 아님 | 프로그래밍 방식으로 PDF를 생성하거나 편집할 수 없음 |
| 외부 프로세스 | 별도 프로세스를 생성해야 함 |
| GPL 라이선스 | 상업 소프트웨어에 제한적임 |
| 사용자 의존성 | 사용자가 Sumatra를 별도로 설치해야 함 |
| API 없음 | 명령 줄 인수에 제한됨 |
| 보기 전용 | PDF를 생성, 편집, 조작할 수 없음 |
| 웹 지원 없음 | 데스크톱 전용 애플리케이션 |
Sumatra PDFvsIronPDF비교
| 기능 | Sumatra PDF | IronPDF |
|---|---|---|
| 유형 | 애플리케이션 | 라이브러리 |
| PDF 읽기 | 예 | 예 |
| PDF 생성 | 아니요 | 예 |
| PDF 편집 | 아니요 | 예 |
| 통합 | 제한됨 (독립 실행형) | 애플리케이션 내 완전한 통합 |
| 라이선스 | GPL | 상업적 |
| PDF 생성 | 아니요 | 예 |
| PDF 편집 | 아니요 | 예 |
| HTML to PDF | 아니요 | 예 |
| 병합/분할 | 아니요 | 예 |
| 워터마크 | 아니요 | 예 |
| 디지털 서명 | 아니요 | 예 |
| 양식 채우기 | 아니요 | 예 |
| 텍스트 추출 | 아니요 | 예 |
| .NET 통합 | 없음 | 내부 지원 |
| 웹 애플리케이션 | 아니요 | 예 |
IronPDF는 Sumatra PDF와 달리 특정 데스크톱 응용 프로그램이나 외부 프로세스에 구속되지 않습니다. 개발자가 C#에서 PDF 문서를 동적으로 생성, 편집 및 조작할 수 있는 유연한 라이브러리를 제공합니다. 외부 프로세스에서 분리됨으로써 눈에 띄는 이점을 제공합니다—단순하고 적응성이 뛰어나며, 단지 보기만 사용하는 것 이상의 다양한 응용 프로그램에 적합합니다.
.NET 10 및 C# 14 채택을 2025년 및 2026년까지 계획하는 팀에게 IronPDF는 Sumatra PDF의 외부 프로세스 오버헤드 및GPL라이선스 제한을 제거하는 네이티브 라이브러리 통합을 제공합니다.
시작하기 전에
필수 조건
- .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
- IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요
설치
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
라이선스 구성
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
완전한 API 참조
네임스페이스 변경
// Before:Sumatra PDF(external process)
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;
// Before:Sumatra PDF(external process)
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;
Imports System.Diagnostics
Imports System.IO
Imports IronPdf
핵심 기능 매핑
| Sumatra PDF 접근 방식 | IronPDF 동등 | 노트 |
|---|---|---|
Process.Start("SumatraPDF.exe", pdfPath) |
PdfDocument.FromFile() |
PDF 로드 |
| 명령줄 인수 | 네이티브 API 메서드 | CLI 필요 없음 |
외부 pdftotext.exe |
pdf.ExtractAllText() |
텍스트 추출 |
외부 wkhtmltopdf.exe |
renderer.RenderHtmlAsPdf() |
HTML to PDF |
-print-to-default 인수 |
pdf.Print() |
인쇄 |
| 불가능 | PdfDocument.Merge() |
PDF 병합 |
| 불가능 | pdf.ApplyWatermark() |
워터마크 |
| 불가능 | pdf.SecuritySettings |
암호 보호 |
코드 마이그레이션 예제
예제 1: HTML에서 PDF로 변환
이전 (Sumatra PDF):
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
//Sumatra PDFdoesn't have direct C# integration forHTML to PDFconversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//Sumatra PDFcannot directly convert HTML to PDF
// You'd need to use wkhtmltopdf or similar, then view in Sumatra
string htmlFile = "input.html";
string pdfFile = "output.pdf";
// Using wkhtmltopdf as intermediary
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "wkhtmltopdf.exe",
Arguments = $"{htmlFile} {pdfFile}",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
// Then open with Sumatra
Process.Start("SumatraPDF.exe", pdfFile);
}
}
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
//Sumatra PDFdoesn't have direct C# integration forHTML to PDFconversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//Sumatra PDFcannot directly convert HTML to PDF
// You'd need to use wkhtmltopdf or similar, then view in Sumatra
string htmlFile = "input.html";
string pdfFile = "output.pdf";
// Using wkhtmltopdf as intermediary
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "wkhtmltopdf.exe",
Arguments = $"{htmlFile} {pdfFile}",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
// Then open with Sumatra
Process.Start("SumatraPDF.exe", pdfFile);
}
}
Imports System.Diagnostics
Imports System.IO
Module Program
Sub Main()
' Sumatra PDF cannot directly convert HTML to PDF
' You'd need to use wkhtmltopdf or similar, then view in Sumatra
Dim htmlFile As String = "input.html"
Dim pdfFile As String = "output.pdf"
' Using wkhtmltopdf as intermediary
Dim psi As New ProcessStartInfo With {
.FileName = "wkhtmltopdf.exe",
.Arguments = $"{htmlFile} {pdfFile}",
.UseShellExecute = False
}
Process.Start(psi)?.WaitForExit()
' Then open with Sumatra
Process.Start("SumatraPDF.exe", pdfFile)
End Sub
End Module
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1><p>This isHTML to PDFconversion.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1><p>This isHTML to PDFconversion.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent As String = "<h1>Hello World</h1><p>This isHTML to PDFconversion.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
이 예제는 근본적인 아키텍처 차이를 보여줍니다. Sumatra PDF는 HTML을 직접 PDF로 변환할 수 없습니다—중간자로 wkhtmltopdf 같은 외부 도구를 사용한 다음, Sumatra를 별도의 프로세스로 실행해야 결과를 볼 수 있습니다. 여기에는 두 개의 외부 실행 파일과 여러 프로세스 실행이 필요합니다.
IronPDF는 코드의 세 줄만으로 ChromePdfRenderer과 RenderHtmlAsPdf()를 사용합니다. 외부 도구 없음, 프로세스 관리 없음, 중간 파일 없음. PDF는 메모리에 직접 생성되며 SaveAs()로 저장됩니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.
예제 2: PDF 열기 및 표시
이전 (Sumatra PDF):
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
//Sumatra PDFexcels at viewing PDFs
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "SumatraPDF.exe",
Arguments = $"\"{pdfPath}\"",
UseShellExecute = true
};
Process.Start(startInfo);
// Optional: Open specific page
// Arguments = $"-page 5 \"{pdfPath}\""
}
}
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
//Sumatra PDFexcels at viewing PDFs
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "SumatraPDF.exe",
Arguments = $"\"{pdfPath}\"",
UseShellExecute = true
};
Process.Start(startInfo);
// Optional: Open specific page
// Arguments = $"-page 5 \"{pdfPath}\""
}
}
Imports System.Diagnostics
Imports System.IO
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
' Sumatra PDF excels at viewing PDFs
Dim startInfo As New ProcessStartInfo With {
.FileName = "SumatraPDF.exe",
.Arguments = $"""{pdfPath}""",
.UseShellExecute = True
}
Process.Start(startInfo)
' Optional: Open specific page
' .Arguments = $"-page 5 ""{pdfPath}"""
End Sub
End Module
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract information
Console.WriteLine($"Page Count: {pdf.PageCount}");
//IronPDFcan manipulate and save, then open with default viewer
pdf.SaveAs("modified.pdf");
// Open with default PDF viewer
Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract information
Console.WriteLine($"Page Count: {pdf.PageCount}");
//IronPDFcan manipulate and save, then open with default viewer
pdf.SaveAs("modified.pdf");
// Open with default PDF viewer
Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
}
}
Imports IronPdf
Imports System
Imports System.Diagnostics
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("document.pdf")
' Extract information
Console.WriteLine($"Page Count: {pdf.PageCount}")
' IronPDF can manipulate and save, then open with default viewer
pdf.SaveAs("modified.pdf")
' Open with default PDF viewer
Process.Start(New ProcessStartInfo("modified.pdf") With {.UseShellExecute = True})
End Sub
End Class
Sumatra PDF는 PDF 보기에서 우수하지만, 명령줄 인수를 사용한 외부 프로세스 실행에 제한되어 있습니다. 프로그램적으로 PDF 내용을 액세스할 수 없습니다—단지 표시할 수 있을 뿐입니다.
IronPDF는 PdfDocument.FromFile()을 사용하여 PDF를 로드하여 완전한 프로그래밍 접근을 제공합니다. PageCount와 같은 속성을 읽고, 문서를 조작하고, 변경 사항을 저장한 후 시스템의 기본 PDF 뷰어로 엽니다. 핵심 차이점은 IronPDF가 단순한 프로세스 인수만이 아니라 실제 API를 제공한다는 것입니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요.
예제 3: PDF에서 텍스트 추출하기
이전 (Sumatra PDF):
//Sumatra PDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//Sumatra PDFis a viewer, not a text extraction library
// You'd need to use PDFBox, iTextSharp, or similar for extraction
string pdfFile = "document.pdf";
// This would require external tools like pdftotext
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "pdftotext.exe",
Arguments = $"{pdfFile} output.txt",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
string extractedText = File.ReadAllText("output.txt");
Console.WriteLine(extractedText);
}
}
//Sumatra PDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//Sumatra PDFis a viewer, not a text extraction library
// You'd need to use PDFBox, iTextSharp, or similar for extraction
string pdfFile = "document.pdf";
// This would require external tools like pdftotext
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "pdftotext.exe",
Arguments = $"{pdfFile} output.txt",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
string extractedText = File.ReadAllText("output.txt");
Console.WriteLine(extractedText);
}
}
Imports System.Diagnostics
Imports System.IO
Module Program
Sub Main()
' Sumatra PDF is a viewer, not a text extraction library
' You'd need to use PDFBox, iTextSharp, or similar for extraction
Dim pdfFile As String = "document.pdf"
' This would require external tools like pdftotext
Dim psi As New ProcessStartInfo With {
.FileName = "pdftotext.exe",
.Arguments = $"{pdfFile} output.txt",
.UseShellExecute = False
}
Process.Start(psi)?.WaitForExit()
Dim extractedText As String = File.ReadAllText("output.txt")
Console.WriteLine(extractedText)
End Sub
End Module
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst Page Text:\n{pageText}");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst Page Text:\n{pageText}");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("document.pdf")
' Extract text from all pages
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine("Extracted Text:")
Console.WriteLine(allText)
' Extract text from specific page
Dim pageText As String = pdf.ExtractTextFromPage(0)
Console.WriteLine(vbCrLf & "First Page Text:" & vbCrLf & pageText)
End Sub
End Class
Sumatra PDF는 텍스트 추출 라이브러리가 아닌 뷰어입니다. 텍스트를 추출하려면 pdftotext.exe와 같은 외부 명령줄 도구를 사용하고, 프로세스를 시작하고, 완료를 기다리고, 출력 파일을 읽고, 관련된 파일 입/출력 및 정리를 처리해야 합니다.
IronPDF는 전체 문서에 대한 ExtractAllText() 또는 특정 페이지에 대한 ExtractTextFromPage(0)의 네이티브 텍스트 추출 기능을 제공합니다. 외부 프로세스 없음, 임시 파일 없음, 정리 필요 없음.
기능 비교
| 기능 | Sumatra PDF | IronPDF | |||
|---|---|---|---|---|---|
| :생성: | HTML to PDF | 아니요 | 예 | ||
| URL을 PDF로 변환 | 아니요 | 예 | |||
| 텍스트에서 PDF로 | 아니요 | 예 | |||
| 이미지에서 PDF로 | 아니요 | 예 | |||
| :조작: | PDF 병합 | 아니요 | 예 | ||
| PDF 분할 | 아니요 | 예 | |||
| 페이지 회전 | 아니요 | 예 | |||
| 페이지 삭제 | 아니요 | 예 | |||
| 페이지 재정렬 | 아니요 | 예 | |||
| :콘텐츠: | 워터마크 추가 | 아니요 | 예 | ||
| 머리글/바닥글 추가 | 아니요 | 예 | |||
| 텍스트 스탬프 | 아니요 | 예 | |||
| 이미지 스탬프 | 아니요 | 예 | |||
| :보안: | 비밀번호 보호 | 아니요 | 예 | ||
| 디지털 서명 | 아니요 | 예 | |||
| 암호화 | 아니요 | 예 | |||
| 권한 설정 | 아니요 | 예 | |||
| :추출: | 텍스트 추출 | 아니요 | 예 | ||
| 이미지 추출 | 아니요 | 예 | |||
| :플랫폼: | Windows | 예 | 예 | ||
| Linux | 아니요 | 예 | |||
| macOS | 아니요 | 예 | |||
| 웹 앱 | 아니요 | 예 | |||
| Azure/AWS | 아니요 | 예 |
이동 후 새로운 기능
IronPDF로 마이그레이션 후, Sumatra PDF가 제공할 수 없는 기능을 얻습니다:
HTML로부터 PDF 생성
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head><style>body { font-family: Arial; }</style></head>
<body>
<h1>Invoice #12345</h1>
<p>Thank you for your purchase.</p>
</body>
</html>");
pdf.SaveAs("invoice.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head><style>body { font-family: Arial; }</style></head>
<body>
<h1>Invoice #12345</h1>
<p>Thank you for your purchase.</p>
</body>
</html>");
pdf.SaveAs("invoice.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("
<html>
<head><style>body { font-family: Arial; }</style></head>
<body>
<h1>Invoice #12345</h1>
<p>Thank you for your purchase.</p>
</body>
</html>")
pdf.SaveAs("invoice.pdf")
PDF 병합
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");
var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");
var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim pdf3 = PdfDocument.FromFile("chapter3.pdf")
Dim book = PdfDocument.Merge(pdf1, pdf2, pdf3)
book.SaveAs("complete_book.pdf")
워터마크
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 60pt;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 60pt;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
<div style='
font-size: 60pt;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>")
pdf.SaveAs("watermarked.pdf")
비밀번호 보호
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
pdf.SaveAs("protected.pdf")
마이그레이션 체크리스트
사전 마이그레이션
- 모든 Sumatra 프로세스 실행 식별 (
Process.Start("SumatraPDF.exe", ...)) - 문서 인쇄 워크플로 (
-print-to-default인수) - 사용된 Sumatra 명령줄 인수 주석 달기
- ironpdf.com에서IronPDF라이선스 키 획득
코드 업데이트
IronPdfNuGet Install-Package- Sumatra 프로세스 코드 제거
Process.Start("SumatraPDF.exe", pdfPath)을(를)PdfDocument.FromFile(pdfPath)(으)로 교체- 외부
wkhtmltopdf.exe호출을ChromePdfRenderer.RenderHtmlAsPdf()(으)로 교체 - 외부
pdftotext.exe호출을pdf.ExtractAllText()(으)로 교체 -print-to-default프로세스 호출을pdf.Print()(으)로 교체- 애플리케이션 시작 시 라이선스 초기화 추가
테스트
- PDF 생성 품질 테스트
- 출력 기능 확인
- 모든 대상 플랫폼에서 테스트
- Sumatra 종속성이 남아 있지 않음 확인
정리
- 설치자에서 Sumatra 제거
- 문서 업데이트
- 시스템 요구 사항에서 Sumatra 제거

