IRONSOFTWAREHOME
동영상

IronPDF로 ASP.NET Core MVC에서 CSHTML을 PDF로 변환

Curtis Chau
Curtis Chau
Updated: 2026년 7월 19일

PDFView4NET에서 IronPDF로 마이그레이션하면 PDF 워크플로가 WinForms/WPF 뷰 컴포넌트에서 서버에 최적화된 PDF 생성 및 조작 라이브러리로 전환됩니다. 이 가이드는 PDFView4NET의 보기/렌더/인쇄 범위를 넘어 서버 쪽 처리, 웹 애플리케이션 지원 및 보다 넓은 PDF 라이프사이클 관리가 가능하도록 단계별 마이그레이션 경로를 제공합니다.

왜 PDFView4NET에서 IronPDF로 마이그레이션해야 하는지

###PDFView4NET이해하기

PDFView4NET (O2 솔루션, o2sol.com)은WinForms및WPF애플리케이션을 위한 보기 / 렌더링 / 인쇄 도구 키트입니다. 두 개의 NuGet 패키지인 O2S.Components.PDFView4NET.WinO2S.Components.PDFView4NET.WPF로 제공되며, 자체 PDF 렌더링 엔진을 포함합니다. O2 Solutions는 프로그래밍에 의한 생성/조작을 위한 별도의 라이브러리인 PDF4NET을 판매합니다; 이 가이드는 PDFView4NET에만 해당됩니다.

PDF 생성, HTML-to-PDF 렌더링, 또는 서버측 워크플로가 필요한 팀은 종종 PDFView4NET을 다른 라이브러리와 조합하여 사용하거나 IronPDF와 같은 툴킷으로 전환하여 생성과 조작, 헤드리스 배포 시나리오를 모두 지원합니다.

보기 / 렌더 / 인쇄 범위

PDFView4NET는 PDF 표시, 렌더링 및 인쇄에 중점을 두며 주석 및 양식 채우기를 포함합니다. 마이그레이션을 고려하는 일반적인 이유:

  1. 보기 / 렌더 / 인쇄의 중점: PDFView4NET은 기존 PDF를 로드하여 표시, 인쇄 또는 이미지 렌더링합니다. HTML 또는 URL로부터 PDF를 생성하지 않습니다.

  2. **UI 프레임워크 종속성:**WinForms및WPF에디션으로 배포됩니다; 둘 다 Windows 데스크톱을 타겟으로 하므로 콘솔 작업자 또는 서버측 호스트에서의 사용에 제한적입니다.

  3. HTML을 PDF로 변환할 수 없음: HtmlToPdfConverter 또는 O2S.Components.PDFView4NET에 HTML 렌더링 API가 없습니다.

  4. 제한된 조작: 조작은 전체 콘텐츠 저작보다는 주석 및 양식 필드에 중점을 둡니다.

  5. Linux / Docker/ 서버 경로 없음: 도구 키트는 WinForms/WPF를 통해 Windows 전용이며, Linux 또는 컨테이너 작업에 대한 ASP.NET 호스트에 대해 설계되지 않았습니다.

  6. 활성화되었지만 범위가 좁음: O2 솔루션은 아직 릴리스를 제공합니다; 제품이 유지 관리되지만 의도적으로 범위가 좁습니다.

###PDFView4NET대IronPDF비교

기능PDFView4NETIronPDF
주요 초점PDF 보기완전한 PDF 솔루션 (생성, 보기, 편집)
필요한 UI 프레임워크WinForms, WPFNone
PDF 생성아니요
PDF 조작제한적 지원 (주석)
서버-사이드지원되지 않음풀 서포트
웹 애플리케이션아니요
콘솔 앱제한적풀 서포트
Azure/Docker아니요
HTML to PDF아니요
크로스-플랫폼 컨텍스트아니요
통합 용이성중간높음

IronPDF는 보기와 관련된 워크플로 위에 PDF 생성, 조작 및 렌더링을 포함하여 PDFView4NET의 보기/렌더/인쇄 범위를 넘어서는 사용 사례에 대응합니다.

IronPDF는 또한 컨텍스트에 독립적이며 — Windows, Linux, macOS, Docker및 Azure에서 웹 애플리케이션, 서비스 및 콘솔 애플리케이션을 실행하여 크로스 플랫폼 지원이나 서버 호스팅이 필요한 프로젝트에 중요할 수 있습니다.


시작하기 전에

필수 조건

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

NuGet 패키지 변경 사항

<!-- RemovePDFView4NET(the actual NuGet IDs are split by UI framework) -->
<PackageReference Include="O2S.Components.PDFView4NET.Win" Version="*" Remove />
<!-- or for WPF: O2S.Components.PDFView4NET.WPF -->

<!-- Add IronPDF-->
<PackageReference Include="IronPdf" Version="*" />
XML

또는 CLI를 통해:

dotnet remove package O2S.Components.PDFView4NET.Win
# (use O2S.Components.PDFView4NET.WPF for theWPFedition)
dotnet add package IronPdf
SHELL

라이선스 구성

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

완전한 API 참조

네임스페이스 변경

// Before: PDFView4NET
using O2S.Components.PDFView4NET;

// After: IronPDF
using IronPdf;

핵심 API 매핑

PDFView4NETIronPDF
new PDFDocument(); doc.Load(path)PdfDocument.FromFile(path)
new PDFDocument(); doc.Load(stream)PdfDocument.FromStream(stream)
document.Pages[index]pdf.Pages[index]
document.PageCountpdf.PageCount
document.Print(...)pdf.Print()
document.Close()pdf.Dispose()
PDFView4NET에서 사용하지 않음ChromePdfRenderer (HTML을 PDF로)
PDFView4NET에서 사용하지 않음PdfDocument.Merge()
PDFView4NET에서 사용하지 않음pdf.ApplyWatermark()
document.SecurityManagerpdf.SecuritySettings

코드 마이그레이션 예제

예제 1:URL을 PDF로 변환변환

이전 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        //PDFView4NETcannot fetch a URL and emit a PDF; it can only consume one.
        PDFDocument document = new PDFDocument();
        document.Load("input.pdf");
        Console.WriteLine($"Loaded {document.PageCount} page(s) for view/print.");
        document.Close();
    }
}
C#

이후 (IronPDF):

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

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

PDFView4NET에는 HTML/URL 렌더링 표면이 없으므로, O2S.Components.PDFView4NETHtmlToPdfConverter가 없으므로 URL을 다른 도구로 먼저 PDF로 렌더링한 다음 보거나 인쇄하기 위해 로드해야 합니다. IronPDF는 ChromePdfRenderer.RenderUrlAsPdf() 호출 하나로 전체 변환을 처리하고, SaveAs()로 저장할 수 있는 PdfDocument을 반환합니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.

예제 2: HTML 문자열을 PDF로 변환

이전 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        // The HTML string cannot be rendered by PDFView4NET. Assume an upstream
        // tool produced "document.pdf";PDFView4NETcan then display or print it.
        PDFDocument document = new PDFDocument();
        document.Load("document.pdf");
        Console.WriteLine($"Document ready for viewing — {document.PageCount} page(s).");
        document.Close();
    }
}
C#

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}

HtmlContent 속성이나 HTML 렌더링 API가 O2S.Components.PDFView4NET에 없으므로 HTML 문자열은 다른 곳에서 PDF로 생성된 다음 뷰어에 로드해야 합니다. IronPDF는 HTML 문자열을 RenderHtmlAsPdf()로 직접 수용하고 PdfDocument을 반환합니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요.

예제 3: PDF에서 텍스트 추출

이전 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument();
            document.Load(fs);
            string text = "";
            for (int i = 0; i < document.PageCount; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
            document.Close();
        }
    }
}

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}

이 예제는 중요한 API 차이를 강조합니다. PDFView4NET는 FileStream을 생성하고 PDFDocument을 인스턴스화하며 Load(fs)을 호출한 후, document.PageCount을 반복하여 페이지마다 Pages[i].ExtractText()을 연결해야 합니다.

IronPDF는 이를 극적으로 단순화합니다: PdfDocument.FromFile()은 경로에서 PDF를 직접 로드하고, ExtractAllText()은 모든 페이지에서 텍스트를 추출합니다. 수동 스트림 관리, 루프, 문자열 연결 없음 - 단 두 줄의 코드.


중요한 마이그레이션 노트

HTML 렌더링 표면

PDFView4NET은 HTML-to-PDF API가 없습니다. IronPDF는 HTML/URL 입력을 위한 ChromePdfRenderer을 도입합니다:

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// or: renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");

문서 로딩 변경

// PDFView4NET: instantiate then Load(path) or Load(stream)
PDFDocument document = new PDFDocument();
document.Load("document.pdf");

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");

페이지 접근 방식 변경

// PDFView4NET: document.PageCount and document.Pages[i]
for (int i = 0; i < document.PageCount; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);

저장 방법 변경

//PDFView4NEThas no save-from-HTML path; saving applies after edits on a loaded document.
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
C#

이동 후 새로운 기능

IronPDF로 마이그레이션 한 후 PDFView4NET가 제공할 수 없는 기능을 사용할 수 있습니다.

PDF 병합

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");

HTML을 사용한 워터마크

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");

비밀번호 보호

var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");

양식 채우기

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.FindFormField("FirstName").Value = "John";
pdf.Form.FindFormField("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");

서버 측 처리

PDFView4NET은 서버 환경에서 실행할 수 없습니다. IronPDF는 여기에서 뛰어납니다:

// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}

기능 비교 요약

기능PDFView4NETIronPDF
PDF 보기예 (UI)아니오 (뷰어 사용)
PDF 불러오기
PDF 저장제한적
HTML to PDF아니요
URL을 PDF로 변환아니요
PDF 병합아니요
PDF 분할제한적
워터마크아니요
헤더/푸터아니요
비밀번호 보호아니요
디지털 서명아니요
텍스트 추출제한적
양식 채우기제한적
WinForms
WPF
콘솔제한적
ASP.NET아니요
Azure아니요
Docker아니요

마이그레이션 체크리스트

사전 마이그레이션

  • 보기 요구 사항 식별 (IronPDF의 기능으로 UI 기반 PDF 보기를 대체할 수 있는지 확인)
  • 문서 인쇄 워크플로우
  • PDF 조작 필요 목록
  • 필요한 경우 뷰어 대체 계획 (IronPDF는 생성/조작에 중점을 둠)
  • ironpdf.com에서IronPDF라이선스 키 획득

패키지 변경 사항

  • O2S.Components.PDFView4NET.Win (또는 .WPF) NuGet 패키지를 제거합니다
  • dotnet add package IronPdf라는 IronPdf NuGet 패키지를 설치합니다:

코드 변경 사항

  • 네임스페이스 가져오기를 업데이트합니다 (using O2S.Components.PDFView4NET;using IronPdf;)
  • HTML 또는 URL 입력을 위한 ChromePdfRenderer을 도입합니다 (PDFView4NET에 해당 없음) -new PDFDocument(); document.Load(path) with PdfDocument.FromFile(path) -new PDFDocument(); document.Load(stream) with PdfDocument.FromStream(stream)
  • 수동 for (int i = 0; i < document.PageCount; i++) (or pdf.ExtractTextFromPage(i))
  • document.Close()pdf.Dispose() (또는 using 블록)으로 대체합니다
  • 애플리케이션 시작 시 라이선스 초기화 추가

마이그레이션 이후

  • PDF 로딩 및 저장 테스트
  • 텍스트 추출 기능 확인
  • HTML을 PDF로 변환 테스트
  • 서버 배포 작동 확인 (새로운 기능)
  • 필요 시 교차 플랫폼 테스트 (새로운 기능)
  • 서버 전용인 경우 UI 특정 PDF 코드 제거

참고해 주세요: PDFView4NET는 그 해당 소유자의 등록 상표입니다. 이 사이트는 O2 솔루션과 관련이 없으며 그에 의해 승인 또는 후원되지 않습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.
Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.