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

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를 사용하고 있다면, 다음 스스로 일 것이 분명합니다:

  1. PDF을 표시하기 위해 외부 프로세스로 런칭
  2. 명령줄을 통해 PDF 인쇄에 사용
  3. 사용자가 설치해야 하는 종속성으로 의존

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라이선스 제한을 제거하는 네이티브 라이브러리 통합을 제공합니다.


시작하기 전에

필수 조건

  1. .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
  3. IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요

설치

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

라이선스 구성

// 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"
$vbLabelText   $csharpLabel

완전한 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
$vbLabelText   $csharpLabel

핵심 기능 매핑

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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

이 예제는 근본적인 아키텍처 차이를 보여줍니다. Sumatra PDF는 HTML을 직접 PDF로 변환할 수 없습니다—중간자로 wkhtmltopdf 같은 외부 도구를 사용한 다음, Sumatra를 별도의 프로세스로 실행해야 결과를 볼 수 있습니다. 여기에는 두 개의 외부 실행 파일과 여러 프로세스 실행이 필요합니다.

IronPDF는 코드의 세 줄만으로 ChromePdfRendererRenderHtmlAsPdf()를 사용합니다. 외부 도구 없음, 프로세스 관리 없음, 중간 파일 없음. 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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

워터마크

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")
$vbLabelText   $csharpLabel

비밀번호 보호

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")
$vbLabelText   $csharpLabel

마이그레이션 체크리스트

사전 마이그레이션

  • 모든 Sumatra 프로세스 실행 식별 (Process.Start("SumatraPDF.exe", ...))
  • 문서 인쇄 워크플로 (-print-to-default 인수)
  • 사용된 Sumatra 명령줄 인수 주석 달기
  • ironpdf.com에서IronPDF라이선스 키 획득

코드 업데이트

  • IronPdf NuGet 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 제거

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

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

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

아이언 서포트 팀

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