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

C#에서 Gnostice PDFOne에서 IronPDF로 마이그레이션하는 방법

Gnostice PDFOne에서 IronPDF로의 이전은 .NET PDF 워크플로를 좌표 기반, 플랫폼 조각화된 접근 방식에서 현대 웹 표준 전체를 지원하는 통합된 HTML/CSS 기반의 솔루션으로 변환합니다. 이 가이드는 CSS, JavaScript, 메모리 안정성에 대한 문서화된 제한을 제거하는 종합적이고 단계별로 구성된 마이그레이션 경로를 제공합니다.

Gnostice PDFOne에서 IronPDF로 마이그레이션해야 하는 이유

Gnostice PDFOne의 도전 과제

Gnostice PDFOne 및 Document Studio .NET은 문서화된 제약 조건이 있어 생산용 애플리케이션에 영향을 줍니다:

  1. 외부 CSS 지원 없음: Gnostice PDFOne의 문서는 외부 CSS 스타일시트를 지원하지 않는다고 명시하고 있으며, 이는 현대 웹에서 PDF로 변환하기 위한 기본 요구 사항입니다.

  2. JavaScript 실행 불가: JavaScript를 필요로 하는 동적인 콘텐츠는 렌더링할 수 없어 현대 웹 애플리케이션의 정확한 변환이 불가능합니다.

  3. 직접적인HTML-to-PDF없음: Gnostice PDFOne은 직접 HTML에서 PDF로의 변환 기능이 없습니다. HTML 변환을 위해 Document Studio를 사용하거나 수동으로 HTML 요소를 파싱하고 렌더링 해야 하는데, 이는 큰 개발 부담을 초래합니다.

  4. 플랫폼 단편화: WinForms, WPF, ASP.NET, Xamarin에 대해 각각의 제품이 제공되며, 각기 다른 기능 세트와 API를 가지고 있습니다. 여러 라이선스와 코드베이스가 필요할 수 있습니다.

  5. 메모리 누수와 안정성: 사용자 포럼과 Stack Overflow에서는 이미지 처리 시 지속적인 메모리 누수, JPEG 오류 #53, StackOverflow 예외가 보고되고 있습니다.

  6. RTL 유니코드 미지원: 아랍어, 히브리어 및 기타 RTL 언어는 명시적으로 지원되지 않아 국제 애플리케이션에 큰 제약이 됩니다.

  7. 제한적인 디지털 서명 지원: 디지털 서명이 과거에는 누락되거나 신뢰할 수 없었습니다.

  8. 좌표 기반 API: 많은 작업이 수동적인 X/Y 위치 결정을 요구하며, 이는 모든 요소의 배치를 위한 정밀한 계산이 필요합니다.

Gnostice PDFOne과IronPDF비교

측면 Gnostice PDFOne IronPDF
외부 CSS 지원되지 않음 지원됨
JavaScript 실행 지원되지 않음 전체 Chromium 엔진
RTL 언어 지원되지 않음 완전한 유니코드 지원
디지털 서명 제한적/누락 완전한 X509 지원
플랫폼 단편화된 제품 단일 통합 라이브러리
메모리 안정성 보고된 문제 안정적이고 잘 관리된
HTML-to-PDF 기본적이고, 대체 방법 필요 Chrome 품질의 렌더링
학습 곡선 복잡한 API 간단하고 직관적인 API
현대적 CSS (플렉스박스, 그리드) 지원되지 않음 전체 CSS3 지원
이미지 처리 알려진 문제들 신뢰성 있음

.NET 10 및 C# 14 채택을 2025년 및 2026년까지 계획하는 팀에게 IronPDF는 모든 .NET 플랫폼에서 일관되게 작동하는 통합 라이브러리로 미래 가능성을 제공합니다.


마이그레이션 복잡성 평가

기능별 예상 노력

기능 마이그레이션 복잡성
로딩/저장 PDF 매우 낮음
PDF 병합 매우 낮음
PDF 분할 낮음
텍스트 추출 낮음
워터마크 낮음
헤더/푸터 낮음
HTML to PDF 낮음
암호화 중간
양식 필드 중간
디지털 서명 낮음

얻을 수 있는 기능들

Gnostice PDFOne에서 IronPDF로 마이그레이션 할 때, 이러한 불가능했던 기능들이 가능해집니다:

  • 외부 CSS 스타일시트
  • JavaScript 실행
  • RTL 언어 지원 (아랍어, 히브리어)
  • CSS 그리드 및 플렉스박스
  • 신뢰할 수 있는 디지털 서명
  • 개선된 메모리 관리
  • 단일 코드베이스로 크로스 플랫폼 지원

시작하기 전에

필수 조건

  1. .NET 버전: IronPDF는 .NET Framework 4.6.2+ 및 .NET Core 2.0+ / .NET 5/6/7/8/9+를 지원합니다.
  2. 라이선스 키: ironpdf.com에서IronPDF라이선스 키를 얻으세요.
  3. 백업: 마이그레이션 작업을 위한 분기를 생성하세요.

모든Gnostice PDFOne사용 식별

# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .

# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .

# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
SHELL

NuGet 패키지 변경 사항

# RemoveGnostice PDFOnepackages
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.NET
dotnet remove package Gnostice.PDFOne.NET
dotnet remove package Gnostice.XtremeDocumentStudio.NET

# Install IronPDF
dotnet add package IronPdf
# RemoveGnostice PDFOnepackages
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.NET
dotnet remove package Gnostice.PDFOne.NET
dotnet remove package Gnostice.XtremeDocumentStudio.NET

# Install IronPDF
dotnet add package IronPdf
SHELL

빠른 시작 마이그레이션

1단계: 라이선스 구성 업데이트

이전 (Gnostice PDFOne):

// Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE";
// Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE";
' Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE"
$vbLabelText   $csharpLabel

이후 (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"

' Or in appsettings.json:
' { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
$vbLabelText   $csharpLabel

2단계: 네임스페이스 가져오기 업데이트

// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
Imports IronPdf
Imports IronPdf.Editing
$vbLabelText   $csharpLabel

완전한 API 참조

핵심 클래스 매핑

Gnostice PDFOne IronPDF 설명
PDFDocument PdfDocument 주요 PDF 문서 클래스
PDFPage PdfDocument.Pages[i] 페이지 표현
PDFFont CSS 스타일링 글꼴 사양
PDFTextElement HTML 콘텐츠 텍스트 내용
PDFImageElement HTML <img> 태그 이미지 내용
DocExporter ChromePdfRenderer HTML/URL을 PDF로 변환

문서 작업

Gnostice PDFOne IronPDF
new PDFDocument() new PdfDocument()
doc.Load(path) PdfDocument.FromFile(path)
doc.Open() 해당 없음 (자동)
doc.Save(path) pdf.SaveAs(path)
doc.Close() pdf.Dispose()
doc.Pages.Count pdf.PageCount
doc.Pages.Add() HTML 렌더링 또는 병합

병합 작업

Gnostice PDFOne IronPDF
doc.Append(otherDoc) PdfDocument.Merge(pdf1, pdf2)
여러 Append() 호출 PdfDocument.Merge(list)

코드 마이그레이션 예제

예제 1: HTML에서 PDF로 변환

이전 (Gnostice PDFOne):

// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Open();

        PDFPage page = doc.Pages.Add();

        // PDFOne doesn't have directHTML to PDFconversion
        // You need to use Document Studio for HTML conversion
        // Or manually parse and render HTML elements

        PDFTextElement textElement = new PDFTextElement();
        textElement.Text = "Simple text conversion instead of HTML";
        textElement.Draw(page, 10, 10);

        doc.Save("output.pdf");
        doc.Close();
    }
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Open();

        PDFPage page = doc.Pages.Add();

        // PDFOne doesn't have directHTML to PDFconversion
        // You need to use Document Studio for HTML conversion
        // Or manually parse and render HTML elements

        PDFTextElement textElement = new PDFTextElement();
        textElement.Text = "Simple text conversion instead of HTML";
        textElement.Draw(page, 10, 10);

        doc.Save("output.pdf");
        doc.Close();
    }
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System

Module Program
    Sub Main()
        Dim doc As New PDFDocument()
        doc.Open()

        Dim page As PDFPage = doc.Pages.Add()

        ' PDFOne doesn't have direct HTML to PDF conversion
        ' You need to use Document Studio for HTML conversion
        ' Or manually parse and render HTML elements

        Dim textElement As New PDFTextElement()
        textElement.Text = "Simple text conversion instead of HTML"
        textElement.Draw(page, 10, 10)

        doc.Save("output.pdf")
        doc.Close()
    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 html = "<h1>Hello World</h1><p>This is HTML content.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<h1>Hello World</h1><p>This is HTML content.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "<h1>Hello World</h1><p>This is HTML content.</p>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

차이는 큽니다: Gnostice PDFOne은 HTML을 PDF로 직접 변환할 수 없습니다 — 텍스트 요소를 수동으로 만들고 좌표로 위치를 지정해야 합니다. IronPDF의 ChromePdfRenderer은 전체 CSS3 및 JavaScript 지원과 함께 직접 HTML 렌더링을 제공합니다. HTML to PDF 문서를 통해 더 많은 렌더링 옵션을 확인하십시오.

예제 2: PDF 파일 병합

이전 (Gnostice PDFOne):

// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc1 = new PDFDocument();
        doc1.Load("document1.pdf");

        PDFDocument doc2 = new PDFDocument();
        doc2.Load("document2.pdf");

        PDFDocument mergedDoc = new PDFDocument();
        mergedDoc.Open();

        mergedDoc.Append(doc1);
        mergedDoc.Append(doc2);

        mergedDoc.Save("merged.pdf");

        doc1.Close();
        doc2.Close();
        mergedDoc.Close();
    }
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc1 = new PDFDocument();
        doc1.Load("document1.pdf");

        PDFDocument doc2 = new PDFDocument();
        doc2.Load("document2.pdf");

        PDFDocument mergedDoc = new PDFDocument();
        mergedDoc.Open();

        mergedDoc.Append(doc1);
        mergedDoc.Append(doc2);

        mergedDoc.Save("merged.pdf");

        doc1.Close();
        doc2.Close();
        mergedDoc.Close();
    }
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Document
Imports System

Module Program
    Sub Main()
        Dim doc1 As New PDFDocument()
        doc1.Load("document1.pdf")

        Dim doc2 As New PDFDocument()
        doc2.Load("document2.pdf")

        Dim mergedDoc As New PDFDocument()
        mergedDoc.Open()

        mergedDoc.Append(doc1)
        mergedDoc.Append(doc2)

        mergedDoc.Save("merged.pdf")

        doc1.Close()
        doc2.Close()
        mergedDoc.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

이후 (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        Dim merged = PdfDocument.Merge(pdf1, pdf2)
        merged.SaveAs("merged.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Gnostice PDFOne 접근 방식은 새 문서를 만들고, 열고, 원본 문서를 별도로 로딩하여 각각을 추가하고, 모든 세 문서를 수동으로 닫는 것을 요구합니다. IronPDF의 정적 Merge 메서드는 적절한 리소스 관리를 통해 세 줄로 이를 처리합니다. PDF 병합 및 분할에 대해 더 알아보세요.

예제 3: PDF에 워터마크 추가하기

이전 (Gnostice PDFOne):

// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Load("input.pdf");

        PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);

        foreach (PDFPage page in doc.Pages)
        {
            PDFTextElement watermark = new PDFTextElement();
            watermark.Text = "CONFIDENTIAL";
            watermark.Font = font;
            watermark.Color = Color.FromArgb(128, 255, 0, 0);
            watermark.RotationAngle = 45;

            watermark.Draw(page, 200, 400);
        }

        doc.Save("watermarked.pdf");
        doc.Close();
    }
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Load("input.pdf");

        PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);

        foreach (PDFPage page in doc.Pages)
        {
            PDFTextElement watermark = new PDFTextElement();
            watermark.Text = "CONFIDENTIAL";
            watermark.Font = font;
            watermark.Color = Color.FromArgb(128, 255, 0, 0);
            watermark.RotationAngle = 45;

            watermark.Draw(page, 200, 400);
        }

        doc.Save("watermarked.pdf");
        doc.Close();
    }
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System
Imports System.Drawing

Module Program
    Sub Main()
        Dim doc As New PDFDocument()
        doc.Load("input.pdf")

        Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)

        For Each page As PDFPage In doc.Pages
            Dim watermark As New PDFTextElement()
            watermark.Text = "CONFIDENTIAL"
            watermark.Font = font
            watermark.Color = Color.FromArgb(128, 255, 0, 0)
            watermark.RotationAngle = 45

            watermark.Draw(page, 200, 400)
        Next

        doc.Save("watermarked.pdf")
        doc.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

이후 (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 48,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(watermark);
        pdf.SaveAs("watermarked.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 48,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(watermark);
        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing
Imports System

Module Program
    Sub Main()
        Dim pdf = PdfDocument.FromFile("input.pdf")

        Dim watermark = New TextStamper() With {
            .Text = "CONFIDENTIAL",
            .FontSize = 48,
            .Opacity = 50,
            .Rotation = 45,
            .VerticalAlignment = VerticalAlignment.Middle,
            .HorizontalAlignment = HorizontalAlignment.Center
        }

        pdf.ApplyStamp(watermark)
        pdf.SaveAs("watermarked.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Gnostice PDFOne 접근법은 PDFFont 객체를 만들고, 수동으로 페이지를 반복하며, 좌표 (200, 400)를 계산하고, PDFTextElement 객체에 속성을 설정해야 합니다. IronPDF의 TextStamper은 자동 중앙 정렬 및 페이지 적용을 포함한 선언적 구성을 제공하며, 좌표 계산이 필요 없습니다. 워터마크 문서에서 추가 옵션을 참조하세요.


중요한 마이그레이션 노트

좌표 기반에서 HTML/CSS 레이아웃으로

이Gnostice PDFOne마이그레이션에서 가장 중요한 패러다임 변환은 좌표 기반의 배치에서 HTML/CSS 레이아웃으로 이동하는 것입니다:

// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400);  // X=200, Y=400

// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400);  // X=200, Y=400

// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
' Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400)  ' X=200, Y=400

' IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle
watermark.HorizontalAlignment = HorizontalAlignment.Center
$vbLabelText   $csharpLabel

폰트 객체에서 CSS 스타일링으로

// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;

//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;

//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
Imports Gnostice.PDFOne

' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)
watermark.Font = font

' IronPDF- use CSS in HTML content
Dim html As String = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>"
$vbLabelText   $csharpLabel

페이지 색인화

Gnostice PDFOne은 종종 1기반의 페이지를 사용하는 반면 IronPDF는 0기반(.NET Standard 관례)를 사용합니다:

// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1];  // First page

// IronPDF: 0-indexed
var page = pdf.Pages[0];  // First page
// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1];  // First page

// IronPDF: 0-indexed
var page = pdf.Pages[0];  // First page
' Gnostice PDFOne: May use 1-indexed
Dim page = doc.Pages(1)  ' First page

' IronPDF: 0-indexed
Dim page = pdf.Pages(0)  ' First page
$vbLabelText   $csharpLabel

이제 작동하는 기능들

Gnostice PDFOne에서 IronPDF로 마이그레이션 후, 이전에는 문제나 불가능했던 기능들이 가능합니다:

  • 외부 CSS: Gnostice PDFOne에서 작동하지 않던 스타일시트가 이제 올바르게 렌더링됩니다
  • JavaScript 콘텐츠: 누락되었던 동적 콘텐츠가 이제 나타납니다
  • RTL 언어: 아랍어, 히브리어 등 다른 오른쪽에서 왼쪽으로 쓰는 언어도 제대로 작동합니다
  • CSS Grid 와 Flexbox: 최신 레이아웃 기술을 완전히 지원합니다
  • 디지털 서명: 신뢰할 수 있는 X509 인증서 서명

문제 해결

문제 1: PDFTextElement를 찾을 수 없음

문제: IronPDF에는 PDFTextElement이(가) 존재하지 않습니다.

해결책: HTML 콘텐츠 또는 TextStamper를 사용하세요:

// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");

// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");

// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
Imports IronPdf

' For new documents - render HTML
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>")

' For existing documents - use stampers
Dim stamper As New TextStamper() With {.Text = "Added Text"}
pdf.ApplyStamp(stamper)
$vbLabelText   $csharpLabel

문제 2: PDFFont 객체

문제: Gnostice PDFOne은 PDFFont 객체를 사용합니다; IronPDF는 CSS를 사용합니다.

해결책:

// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);

//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);

//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 12)

' IronPDF- use CSS
Dim html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>"
$vbLabelText   $csharpLabel

문제 3: DocExporter를 찾을 수 없음

문제: DocExporter 클래스가 IronPDF에 존재하지 않습니다.

해결책: ChromePdfRenderer 사용:

// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
' Gnostice PDFOne
Dim exporter As New DocExporter()
exporter.Export(doc, "output.pdf", DocumentFormat.PDF)

' IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

문제 4: 메모리 개선

문제: Gnostice PDFOne은 메모리 누수를 보고했습니다.

해결책: IronPDF는 안정적인 메모리 관리를 제공합니다. 적절한 삭제 패턴을 사용하세요:

using (var pdf = PdfDocument.FromFile("large.pdf"))
{
    // Process PDF
    pdf.SaveAs("output.pdf");
}  // Automatically disposed
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
    // Process PDF
    pdf.SaveAs("output.pdf");
}  // Automatically disposed
Imports PdfDocument

Using pdf = PdfDocument.FromFile("large.pdf")
    ' Process PDF
    pdf.SaveAs("output.pdf")
End Using
$vbLabelText   $csharpLabel

마이그레이션 체크리스트

사전 마이그레이션

  • 코드베이스에서 모든Gnostice PDFOne사용 여부를 인벤토리하세요
  • 작동하지 않았던 기능(CSS, JS, RTL)을 확인하세요—이제 작동합니다!
  • 비교 테스트를 위해 메모리 문제를 문서화하세요 -IronPDF라이센스 키를 받으세요
  • 버전 컨트롤에 마이그레이션 분기를 생성

코드 마이그레이션

-Gnostice PDFOneNuGet 패키지를 제거하세요

  • IronPdf NuGet Install-Package: dotnet add package IronPdf
  • 네임스페이스 가져오기 업데이트
  • 라이센스 키 설정을 교체하세요
  • PDFDocument를(을) PdfDocument(으)로 변환
  • DocExporter를(을) ChromePdfRenderer(으)로 변환
  • 좌표 기반 드로잉을 HTML 스탬핑으로 교체하세요
  • PDFFont를 CSS 스타일로 업데이트
  • doc.Append()를(을) PdfDocument.Merge()(으)로 변환

테스트

  • HTML을 PDF로 변환 테스트
  • 외부 CSS가 이제 작동하는지 확인하세요
  • JavaScript 의존 콘텐츠를 테스트하세요
  • RTL 언어를 테스트하세요(필요한 경우)
  • 디지털 서명을 테스트하세요(이제 가능!)
  • PDF 병합 테스트
  • 워터마킹을 테스트하세요
  • 메모리 사용량을 비교하세요

마이그레이션 이후

-Gnostice PDFOne라이센스를 제거하세요

  • 문서 업데이트
  • Gnostice PDFOne의 제한 사항을 위한 우회 방법을 제거하세요 -IronPDFAPI에 대한 팀 교육

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

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

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

아이언 서포트 팀

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