최고의 C# PDF 라이브러리를 선택하기 위한 최고의 가이드
오직 가격에 대한 Enterprise 구매와 자체 서비스를 통해 공공 가격 영구와 견적: Foxit PDF SDK for .NET과 Iron Suite는 그 선의 반대쪽에 위치합니다. Foxit은 개발자 SDK를 오직 견적 가격으로 판매하며, 공공 USD 가격은 공개되지 않았고, OCR, 변환, 제거 및 비교가 각각 독립적으로 라이센스된 라인 항목으로 코어에 추가되며 활성화됩니다. Iron Suite는 모든 10개의 Iron 제품을 하나의 라이선스로 커버하며, 해당 좌석 라이선스에 대해 로열티가 없으며, SaaS 또는 OEM 시나리오를 위한 별도의 재배포 애드온과 함께 $2,998부터 발표된 영구 가격으로 제공됩니다.
이 기사는 실제로 구매 주도 결정에 따라 취해야 하는 것에 대해 시작합니다: 각 스위트가 어떻게 가격이 책정되는지, 라이센스가 실제로 무엇을 커버하는지, 별도 협상이 필요한 추가 기능이 무엇인지를 확실하게 확인합니다. 능력별 개발자 세부 사항은 이를 통합할 엔지니어를 위해 아래에 나열됩니다.
간단한 비교
| 차원 | Foxit PDF SDK | Iron Suite |
|---|---|---|
| 가격 위치 | 개발자 SDK에 대한 오직 견적만으로; 서버 제품 PDF Compressor 연 $375/yr 12,000 페이지용 | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom). 10개 제품의 가격으로 2개 제품 모두, 75% 절약 |
| 라이선스 모델 | 개발자 + 배포당 로열티에 따른 상업적 견적 기반; modular add-on licensing | 영구 개발자당; 기본 로열티 무료 + SaaS/OEM을 위한 배포 추가 기능 |
| 번들 내 구성 요소 | 핵심 PDF SDK + 변환, OCR, 제거, 비교 추가 기능; PDF Compressor는 별도로 판매됨 | 10 products (PDF, Word, Excel, PPT, OCR, Barcode, QR, Print, ZIP, WebScraper) |
| 포맷/기능 커버리지 | PDF 중심의; Conversion 추가를 통해 Office 처리; 네이티브 Word/Excel/PPT 조작 없음, 바코드/QR 없음, 웹 스크래핑 없음 | PDF + 네이티브 워드 + 엑셀 + PPT + OCR + 바코드 + QR + 인쇄 + ZIP + 웹 스크래핑 |
| 크로스 플랫폼 / 클라우드 | Windows 주로; Core SDK를 통해 Linux/macOS; iOS/Android/MAUI/Web은 별도의 SDK 패밀리로 | 윈도우, 리눅스, macOS, Docker, Azure, AWS Lambda |
| .NET 런타임 지원 | .NET Framework 4.0, .NET Core 2.1, .NET 6.0; .NET 8+는 코어 SDK 에디션을 통해 | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| 타겟 시장 | 네이티브 엔진 처리량을 필요한 Enterprise/ISV PDF 스택 | 하나의 독립 문서 + 인식 번들을 원하는 .NET 개발자 및 ISV |
| 공급업체 | Foxit Software Inc. | Iron Software |
Foxit PDF SDK는 개발자 좌석당 + 배포당 로열티 + 별도로 라이선스된 추가 기능(변환, OCR, 제거, 비교)을 활성화하여 구조화된 견적 기반 상업적 구매입니다.Iron SuiteLite는 전체 10개 제품 번들을 위한 영구 및 로열티 없는 개발자 한 명당 $2,998입니다. Foxit의 PDF 사양 커버 범위 깊이와 긴 ISV/OEM 기록이 평면적인 공공 가격과 더 광범위한 형식 및 인식 표면을 커버하는 구매 경로를 정당화하는지 여부에 따라 결정이 기울어집니다.
가격 및 라이선스
Foxit PDF SDK는 견적 기반 상업 모델을 사용합니다. 개발자 SDK에는 공공 USD 가격 계층이 없습니다; Foxit의 자체 지식 기반은 가격이 판매를 통해 협상된다고 확인하며, 이 모델은 일반적으로 개발자 좌석당 수수료와 배포 또는 런타임 로열티로 구성됩니다. 모듈식 추가 구성은 OCR, 변환, 제거 및 비교가 각각의 독립 라이센스 라인 항목으로서 베이스 SDK에 포함되지 않았음을 의미합니다. 인접 서버 제품 PDF Compressor는 개발자 SDK와 별도로 판매되며, 12,000 페이지의 처리를 위해 대략 $375/년에서 시작됩니다. 정확한 개발자 계층 가격은 '영업 부서에 문의하십시오'를 벗어나 확인되지 않았습니다.
Iron Suite는 10개 구성 요소를 단일 구매로 포장하여 $2,998부터 제공하는 영구 개발자별 라이선스로 판매됩니다. 마케팅 위치, '10개의 제품을 2개의 가격으로 구매하고, 75%를 저축하십시오'는 Iron의 개별 제품을 개별적으로 구매하는 것과 대비되는 번들 할인을 반영합니다. 기본 라이센스는 라이센스된 좌석에 대해 로열티가 없습니다; 기본 라이센스를 넘어서 SaaS, OEM 및 배포 재배포 시나리오는 별도로 SaaS/OEM을 위한 배포 추가 애드온으로 다룰 수 있습니다.
Foxit's 구매 사슬은 감싸진 형태: 개발자 좌석 수수료 + 배포당 로열티 + 별로 라이선스된 추가 활성화 (OCR, 변환, 제거, 비교), 모두 판매 대화를 통해 접근합니다. Iron Suite의 구매는 자체 서비스로 제공되며, 각 계층당 공공 USD 가격에서 영구적이며, 기본 라이센스를 넘어서 SaaS 및 OEM 재배포를 위한 유일한 별도 가격 항목으로 배포 추가 기능을 포함합니다.
Foxit PDF SDKfor .NET이란 무엇인가
Foxit PDF SDK for .NET은 .NET 응용 프로그램에 PDF 기능을 삽입하기 위한 Foxit Software의 개발자 도구입니다. 핵심 SDK는 NuGet의 Foxit.SDK.Dotnet로 제공합니다; 버전 11.1.0.1 (2026년 4월)은 .NET Framework 4.0, .NET Core 2.1 및 .NET 6.0을 대상으로 하며, .NET 8+는 .NET Core SDK 에디션을 통해 커버합니다. 제품은 Enterprise 및 ISV PDF 작업 부하를 위한 Adobe PDF Library 및 Apryse (이전 명칭 PDFTron)와 비교되며; 개발자 친화성이나 번들 넓이보다는 네이티브 엔진의 원시 처리량 및 PDF 명세 커버 범위 깊이에서 경쟁합니다.
SDK는 모듈식입니다: 핵심은 보기, 렌더링, 편집, 주석, 서명, 양식을 다루며, 특화된 기능은 별도로 활성화된 추가 기능으로 라이센스됩니다.
번들 구성 요소 및 추가 기능:
- 핵심 PDF SDK: 보기, 렌더링, 편집, 주석, 서명, 양식 채우기
- 변환 추가 기능: Office (Word, Excel, PowerPoint) ↔ PDF
- OCR 추가 기능: 래스터 PDF 및 이미지에서의 텍스트 인식
- 제거 추가 기능: 생산 등급의 텍스트/영역 제거
- 비교 추가 기능: 구조적 및 시각적 PDF 비교
- PDF Compressor: SDK와 별도로 판매되는 독립 서버 제품
Iron Suite란
Iron Suite는 Iron Software의 IronPDF를 중심으로 한 10개 제품 .NET 번들입니다. PDF 생성, 서명, 제거 또는 래스터화를 위한 기본 요구 사항을 가진 모든 팀은 IronPDF에서 시작하며, 같은 라이센스 하에 나머지 번들을 물려받습니다. Lite, Plus, Professional, Unlimited, Enterprise의 다섯 단계로 $2,998에서 제공되는 단일 영구 개발자별 라이선스로 판매됩니다. 라이센스된 좌석에 대한 로열티 없음; 기본 라이센스 이외에는 SaaS 및 OEM 재배포를 별도의 배포 추가 애드온으로 다룹니다.
PDF 주도의 워크플로우와 관련된 10개의 구성 요소 그룹입니다:
- IronPDF (PDF 앵커): 번들된 Chromium으로 HTML-to-PDF 및 URL-to-PDF 렌더링;
PdfDocument.Merge를 통한 네이티브 병합 및 분할; 정규 표현식을 사용한RedactTextOnAllPages을 통한 진정한 텍스트 삭제; PKCS#12, HSM (PKCS#11), TSA 타임스탬프, eIDAS 및 ESIGN에 맞춘 다중 당사자 서명; AES 암호화 및 세분화된 권한; PDF/A-1 부터 PDF/A-4 (4E/4F 포함); PDF/UA-1 및 PDF/UA-2; AcroForm 채우기 및 평면화; 완전한 폰트 관리 (사용자 정의 임베딩, 웹폰트 및 TrueType 컬렉션 지원); DPI 제어와 함께RasterizeToImageFiles을 PNG/JPEG/TIFF로 변환; 빠른 웹 뷰를 위한CompressAndSaveAs및SaveAsLinearized; 텍스트 추출. - Office: IronWord (단락/텍스트 실행 개체 그래프를 가진 DOCX), IronXL (공식 재계산과 함께하는 XLSX), IronPPT (PPTX 생성).
- 인식: IronOCR (Tesseract 5, 125개 이상의 언어, 영어 필기 ~90%), IronBarcode (30개 이상의 심볼), IronQR (배치
ReadPdfs를 통한 ML 기반 읽기). - 유틸리티: IronPrint (무음 및 대화 상자 인쇄), IronZIP (AES와 함께하는 ZIP/TAR/GZIP/BZIP2), IronWebScraper (프로세스 내 스크래핑).
기능 비교
PDF 렌더링
PDF 렌더링 (기존 PDF 문서를 디스플레이, 썸네일링 또는 하위 이미지 기반 프로세싱을 위해 픽셀로 변환하는 것)은 Foxit의 주요 기능 중 하나입니다. Foxit의 네이티브 엔진은 외부 브라우저 엔진에 대한 의존 없이 다중 스레드로 비트맵에 직접 페이지를 렌더링합니다.
//Foxit PDF SDK— render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());
Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();//Foxit PDF SDK— render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());
Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();Imports foxit
Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim page As PDFPage = doc.GetPage(0)
page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)
Dim width As Integer = CInt(page.GetWidth())
Dim height As Integer = CInt(page.GetHeight())
Dim matrix As Matrix2D = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation())
Dim bitmap As New Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0)
bitmap.FillRect(&HFFFFFFFF, Nothing)
Dim renderer As New Renderer(bitmap, False)
renderer.StartRender(page, matrix, Nothing)
End Using
Library.Release()//Iron Suite— IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");//Iron Suite— IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>"
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
End UsingFoxit의 API 표면은 고유한 C++ 기원을 반영합니다: 명시적 Library.Initialize / Library.Release, 수동 행렬 및 비트맵 할당, 다단계 렌더링 호출. IronPDF의 경로는 반대입니다; HTML/CSS를 번들 된 Chromium 엔진을 통해 PDF로 생성 한 후 결과 문서에서 작업합니다. 대규모 기존 PDF의 충실도 렌더링은 Foxit의 네이티브 엔진이 설계된 경우이며, IronPDF는 다른 메커니즘을 사용하여 웹 스타일 입력으로부터 새 PDF를 생성합니다. IronPDF가 번들로 제공하는 Chromium은 단일 NuGet 패키지로 제공되며 (IronPdf.Linux은 전체 Chrome 브라우저를 포함하여 약 280 MB 크기이며, 별도의 Chromium 설치 파이프라인 없이, 실행중인 BrowserFetcher 다운로드가 없습니다), 이는 Linux 컨테이너 및 AWS Lambda 배포에서 호스트의 Chromium 또는 Puppeteer/Playwright 런타임 다운로드를 다루는 것보다 운영적으로 간단합니다.
PDF 편집 (페이지 조작)
페이지 삽입, 제거 및 재정렬은 모든 PDF 워크플로우에서 일상적인 작업입니다, 보고서를 여러 출처에서 조합하거나, 발행 전에 초안 페이지를 제거하거나, 기존 문서에 표지 시트를 추가합니다.
//Foxit PDF SDK— insert / remove pages
using foxit.common;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);
doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();//Foxit PDF SDK— insert / remove pages
using foxit.common;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);
doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();Imports foxit.common
Imports foxit.pdf
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim inserted As PDFPage = doc.InsertPage(1, 612.0F, 792.0F)
Dim lastIndex As Integer = doc.GetPageCount() - 1
doc.RemovePage(lastIndex)
doc.SaveAs("edited.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
End Using
Library.Release()// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// PdfDocument.Merge accepts an array or params list of PdfDocument objects.
// Order is preserved, and metadata, bookmarks, and annotations are retained.
string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };
List<PdfDocument> parts = new List<PdfDocument>();
foreach (string path in inputs)
parts.Add(PdfDocument.FromFile(path));
PdfDocument merged = PdfDocument.Merge(parts.ToArray());
merged.SaveAs("contract-package.pdf");
}
}// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// PdfDocument.Merge accepts an array or params list of PdfDocument objects.
// Order is preserved, and metadata, bookmarks, and annotations are retained.
string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };
List<PdfDocument> parts = new List<PdfDocument>();
foreach (string path in inputs)
parts.Add(PdfDocument.FromFile(path));
PdfDocument merged = PdfDocument.Merge(parts.ToArray());
merged.SaveAs("contract-package.pdf");
}
}Imports IronPdf
Imports System.Collections.Generic
Module Program
Sub Main()
' PdfDocument.Merge accepts an array or params list of PdfDocument objects.
' Order is preserved, and metadata, bookmarks, and annotations are retained.
Dim inputs As String() = {"invoice.pdf", "terms.pdf", "appendix.pdf"}
Dim parts As New List(Of PdfDocument)()
For Each path As String In inputs
parts.Add(PdfDocument.FromFile(path))
Next
Dim merged As PdfDocument = PdfDocument.Merge(parts.ToArray())
merged.SaveAs("contract-package.pdf")
End Sub
End ModuleIronPDF는 통합 PdfDocument 객체 모델을 통해 페이지 수준의 동등한 작업을 노출합니다: PdfDocument.FromFile(...)을 통해 로드하고, 정적 PdfDocument.Merge(...)으로 조립하며, 페이지 범위 복사 및 제거, 그리고 SaveAs(...). 편집은 직접적으로 PDF 객체 모델에 영향을 미칩니다; HTML 왕복은 HTML에서 PDF를 생성할 때만 발생하며, 조작 중에는 발생하지 않습니다. 대조는 구조적입니다: Foxit의 작업당 API는 내장된 네이티브 엔진 배관을 노출합니다 (명시적 Initialize/Release, 저장 플래그 열거형); IronPDF는 using을 통해 암시적 라이프사이클 관리를 제공하는 단일 관리 객체 모델 하에 생성 및 편집을 통합합니다.
Office-to-PDF 변환
서버에 Microsoft Office가 설치되지 않은 상태에서 Word, Excel, PowerPoint 문서를 PDF로 변환하는 것은 서버 측에서 자주 요구되는 사항입니다. Foxit은 별도로 라이선스가 필요한 Conversion 부가 기능을 통해 이를 처리합니다.
//Foxit PDF SDK— Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;
Library.Initialize(sn, key);
using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);
Library.Release();//Foxit PDF SDK— Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;
Library.Initialize(sn, key);
using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);
Library.Release();Imports foxit.common
Imports foxit.addon.conversion
Library.Initialize(sn, key)
Using settings As New Word2PDFSettingData()
Convert.FromWord("input.docx", String.Empty, "output.pdf", settings)
End Using
Library.Release()Iron Suite는 DOCX에서 PDF로 전환하는 전용 API를 제공하지 않습니다; 대신, IronWord(모든 DOCX 조작을 위해)와 IronPDF를 조합하거나 IronPDF의 HTML-to-PDF 경로를 통해 소스 콘텐츠를 직접 제공하여 동일한 결과를 얻을 수 있습니다. 주요 워크플로로서의 Office 소스 문서 변환은 Foxit의 Conversion 부가 기능이 판매되는 경우인데, Iron Suite는 IronWord와 IronPDF를 조합하여(또는 IronPDF의 HTML-to-PDF 경로를 통해 소스 콘텐츠를 제공하여) 별도의 추가 라이선스가 필요 없는 동일한 결과를 제공합니다.
OCR
OCR, 스캔된 PDF 및 래스터 이미지에서 기계 판독이 가능한 텍스트를 추출하는 것은 순수한 생성 이상의 PDF SDK를 선택하는 가장 일반적인 이유 중 하나입니다.
//Foxit PDF SDK— OCR add-on
using foxit.common;
using foxit.addon.ocr;
Library.Initialize(sn, key);
if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;
OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...
OCREngine.Release();
Library.Release();//Foxit PDF SDK— OCR add-on
using foxit.common;
using foxit.addon.ocr;
Library.Initialize(sn, key);
if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;
OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...
OCREngine.Release();
Library.Release();Imports foxit.common
Imports foxit.addon.ocr
Library.Initialize(sn, key)
If OCREngine.Initialize("./ocr_resource") <> ErrorCode.e_ErrSuccess Then Return
OCREngine.SetLanguages("English")
' Configure OCRCallback to consume recognized content...
OCREngine.Release()
Library.Release()//Iron Suite— IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");//Iron Suite— IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput("scanned-document.png")
input.Deskew()
input.DeNoise()
Dim result = ocr.Read(input)
Console.WriteLine($"Confidence: {result.Confidence}")
Console.WriteLine($"Extracted text: {result.Text}")
End UsingFoxit의 OCR 엔진은 별도로 분배된 리소스 파일과 OCR 모듈에 활성화된 라이선스 키로 초기화, SetLanguages, 콜백 기반 소비, Release와 같은 명시적인 라이프사이클을 사용합니다. IronOCR의 API는 내장된 전처리 도우미(Deskew, DeNoise)와 단일 Read 호출로 직접 결과를 제공합니다. 이는 광범위한 엔진 대 스위트 프레임을 반영합니다: Foxit은 OCR 파이프라인에 대한 더 많은 제어를 제공합니다; IronOCR은 작동하는 결과에 더 빨리 도달합니다.
적출
프로덕션급 목차, 민감한 내용을 PDF에서 영구적으로 제거하는 작업은 Foxit이 Enterprise 홍보에 사용하는 작업 중 하나입니다. 이는 법률, 의료, 정부 워크플로에서 사용되며, 삭제된 출력물이 법의학적 복구 시도를 견뎌야 하는 경우에 사용됩니다.
//Foxit PDF SDK— Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);
if (redaction.Apply())
{
doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();//Foxit PDF SDK— Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);
if (redaction.Apply())
{
doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf
Imports foxit.addon
Imports foxit.pdf.annots
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim page As PDFPage = doc.GetPage(0)
page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)
Dim redaction As New Redaction(doc)
Dim rects As New RectFArray()
rects.Add(New RectF(100, 100, 300, 130))
Dim redact As Redact = redaction.MarkRedactAnnot(page, rects)
If redaction.Apply() Then
doc.SaveAs("redacted.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
End If
End Using
Library.Release()// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;
class Program
{
static void Main()
{
PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");
// RedactTextOnAllPages performs true redaction:
// the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe");
pdf.RedactTextOnAllPages("123-45-6789");
pdf.RedactTextOnAllPages("EMP-44213");
pdf.SaveAs("employee-record-redacted.pdf");
}
}// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;
class Program
{
static void Main()
{
PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");
// RedactTextOnAllPages performs true redaction:
// the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe");
pdf.RedactTextOnAllPages("123-45-6789");
pdf.RedactTextOnAllPages("EMP-44213");
pdf.SaveAs("employee-record-redacted.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim pdf As PdfDocument = PdfDocument.FromFile("employee-record.pdf")
' RedactTextOnAllPages performs true redaction:
' the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe")
pdf.RedactTextOnAllPages("123-45-6789")
pdf.RedactTextOnAllPages("EMP-44213")
pdf.SaveAs("employee-record-redacted.pdf")
End Sub
End ClassIronPDF는 정규 표현식 패턴 변형 및 페이지별 오버로드를 통해 RedactTextOnAllPages을 사용하여 텍스트 수준 삭제를 지원하며, 시각적으로 가리기만 하는 것이 아니라 PDF 스트림에서 매칭된 콘텐츠를 제거합니다. Foxit의 Redaction.MarkRedactAnnot은 영역 기반 삭제 가장자리를 유지합니다: RectF 페이지 위에 영역을 표시 및 redaction.Apply()을 사용하여 적용하며, 서명 블록, 헤더바, 삭제된 이미지 등 삭제 대상이 알려진 시각적 영역일 때 적합한 작업 흐름에 적합합니다. 문자열 기반 및 영역 기반 삭제를 동일한 엔진에서 결합하는 법적 탐색 및 규제 준수 워크플로우의 경우, Foxit의 Redaction.MarkRedactAnnot은 해당 사용 사례에 맞춰진 API이며, PII, 식별자, 계정 번호의 문자열 기반 삭제를 위한 경우에는 IronPDF의 RedactTextOnAllPages이 더 직접적인 경로입니다.
단일 공급업체 PDF + OCR + 바코드 워크플로우를 위한Iron Suite선택 이유
.NET 문서 워크로드가 PDF 생성, OCR, 바코드 판독, Office 형식 조작을 포괄하는 경우, Iron Suite를 선택하십시오. 여기서 모든 사항은 공개적으로 게시된 가격으로 관리됩니다. Foxit은 PDF 분야에서 깊이가 있습니다; 바코드 판독 및 쓰기 및 PowerPoint 생성은 Foxit 카탈로그 외부에 있으며, 각 부가 기능(전환, OCR, 삭제, 비교)은 자체 라이선스 활성화를 필요로 합니다.
Iron Suite의 구조적 장점:
- 단일 번들 구매: 하나의 라이선스로 열 가지 제품; OCR이나 바코드를 위한 개별 SKU가 필요 없습니다
- 네이티브 바코드, QR, PPT: 포함되어 있습니다; Foxit은 바코드나 PowerPoint 모듈을 제공하지 않습니다
- 자가 서비스 조달: 공개된 미국 달러 가격, 영구 라이선스; Foxit은 모든 개발자에게 견적이 필요합니다
- 로열티-프리 기본 라이선스: 배포마다 런타임 로열티 없음; SaaS/OEM을 위한 재배포 부가 기능은 별도로 예측 가능한 항목으로 제공됩니다
- 코드 우선 DOCX/XLSX/PPTX: Iron Word, IronXL, IronPPT는 Office 형식을 직접 처리하며, PDF로의 변환 계층을 필요로 하지 않습니다
Iron Suite와 Foxit PDF SDK의 차이점
- PDF 핵심 외에 별도로 라이선스가 필요한 전환, OCR, 삭제, 비교 부가 기능: 이는 Foxit PDF SDK의 영역이며, 바코드, QR, 인쇄, 스크래핑은 카탈로그에 완전히 포함되어 있지 않습니다. Iron Suite는 하나의 라이선스 하에 PDF, Office, 인식, 인쇄, ZIP, 스크래핑을 아우르는 10개 제품 스위트입니다.
- 가격 투명성. Iron Suite는 웹사이트에 미국 달러 계층을 게시합니다.; Foxit의 개발자 SDK는 견적 전용이며 공개적인 가격 카드가 없습니다.
- 라이선스 모델. Iron Suite는 영구적입니다; Foxit은 개발자별 좌석과 배포별 로열티에 기반하며, 각 부가 기능은 따로 라이선스가 부여됩니다.
- API 표면. Iron Suite는 관용적인 .NET (
new ChromePdfRenderer().RenderHtmlAsPdf(...))을 사용합니다; Foxit의 .NET 바인딩 표면은 네이티브 배선 (Library.Initialize,StartParse, 수동 행렬 및 비트맵 할당, 명시적 릴리즈)을 드러냅니다. - Foxit의 Enterprise 제안, 그것은 무엇인가. Raw PDF 사양 구석 (PDF/A 선형화, 임베디드 폰트, 고급 AcroForm/XFA)과 영역 기반 삭제 (
Redaction.MarkRedactAnnot)는 Foxit의 제안을 지지하는 작업이며, 일당의 Office 변환 애드온 및 오랜 ISV 만족도 기록을 포함합니다. IronPDF는PdfAVersions열거형을 통해 전체 PDF/A 적합성 계열 (A-1a, A-1b, A-2a, A-2b, A-3a, A-3b, ISO 19005-4:2020에 따른 PDF/A-4/4E/4F 계열)을 지원하고, 기본 번들 내에 텍스트 수준 삭제 (RedactTextOnAllPages과 정규 표현식 지원 포함)를 제공하며, 완전한 폰트 관리 (Fonts.Add().Embed(),WaitFor.AllFontsLoaded()을 통한 웹 폰트 지원, TrueType Collection 지원)를 제공하므로 어느 것도 PDF/A, 문자열 기반 삭제 또는 폰트 처리가 Foxit에 독점적이지 않습니다. IronPDF 또한 전용 PDF/UA 접근성 지원을 제공하며,RenderHtmlAsPdfUA(html)은 한 번의 호출로 태그가 포함된 접근 가능한 PDF를 생성합니다 (기본 PDF/UA-1, PDF/UA-2도 지원), 상자 밖에서 Section 508 및 WCAG 2.0 AA를 충족하는 것으로 문서화되어 있습니다. - 크로스 플랫폼 스택 형태. Foxit은 한 공급자로부터 데스크탑, 모바일(iOS/Android/MAUI), 웹에 대해 별도의 SDK 패밀리를 제공합니다; Iron Suite는 .NET 서버, 데스크탑, 클라우드에 중점을 둡니다 (다른 배포 형태).
결론
Foxit과 Iron Suite는 다른 질문에 답합니다. Foxit은 장기 ISV/OEM 기록을 가진 견적 주도, 모듈식 네이티브 PDF 엔진, OCR, 전환, 영역 기반 삭제를 위한 부가 기능을 원하는 구매자를 위한 것입니다. Iron Suite는 PDF(위에 나열 된 표준 등급 기능) 및 Office 인식 및 인접 유틸리티를 발표된 미국 달러 가격으로 커버하는 단일 영구 번들을 원하는 구매자에게 응대합니다. 베이스 라이센스 하에 로열티 프리 배포가 가능합니다. .NET 팀에게는 문서 작업 부하가 PDF, 바코드, Office 및 OCR을 포함할 때,Iron Suite번들은 $2,998에서 시작하며 ironsoftware.com/csharp/suite에서 사용할 수 있습니다.
