IronPDF vs PDFShift: C# HTML to PDF API 비교
IronPDF는 영구 라이선스를 시작으로 $749의 비용이 드는 신뢰할 수 있는 로컬 C# 라이브러리를 제공하며, PDFShift는 변환당 요금이 부과되는 클라우드 API를 제공합니다. 매월 500개 이상의 PDF를 처리하는 스타트업에게는 IronPDF가 더 비용 효율적이며, 더 나은 데이터 개인 정보 보호 및 오프라인 기능을 제공합니다.
Portable Document Format (PDF)는 텍스트, 링크, 그래픽 등을 단일 문서로 표현하는 표준입니다. C#에서 PDF를 조작하려면 .NET 응용 프로그램용 PDF 라이브러리가 필요합니다. 이 기사는 PDF 생성을 위한 두 가지 다른 API를 비교하여 성능, 기능 및 라이선스를 조사합니다. .NET 응용 프로그램을 개발할 때 개발자들은 복잡한 HTML 레이아웃, CSS 스타일링, JavaScript 렌더링을 처리하는 PDF 생성 기능이 필요합니다.
논의된 PDF API는 다음과 같습니다:
- IronPDF
- PDFShift
IronPDF 란 무엇인가요?
IronPDF는 .NET 및 .NET Core 개발을 위해 설계된 완전한 HTML-to-PDF 변환 API입니다. 라이브러리는 HTML 사이트를 변환하고 광범위한 PDF 조작 기능을 제공합니다. IronPDF는 개발자가 .NET 환경에서 PDF 문서를 생성, 수정, 내용을 추출할 수 있게 합니다. 라이브러리는 HTML 페이지에서 PDF를 생성하는 것을 간소화하고 MVC 응용 프로그램 및 Razor Pages의 CSHTML to PDF 변환을 지원합니다.
PDF는 편집, 스탬핑할 수 있으며, 헤더와 푸터로 개선할 수 있습니다. 라이브러리는 PDF 텍스트 읽기와 이미지 추출을 간소화합니다. IronPDF는 HTML-to-PDF 렌더링을 위해 .NET Chromium 엔진을 사용합니다. 이 엔진은 픽셀 완벽한 렌더링을 보장하며 JavaScript to PDF 변환을 포함한 최신 웹 기술을 지원합니다. Chrome 렌더링 엔진 마일스톤은 렌더링 정확도와 성능 최적화에서 중요한 발전을 표시했습니다.
IronPDF는 어떤 기능을 제공하나요?
어떤 PDF 변환 옵션이 있습니까?
HTML, HTML 문자열, MVC 보기, 웹 폼, URL에서 PDF를 생성합니다. Markdown, XML, RTF 변환도 지원합니다. 변환 기능에는 DOCX to PDF 및 이미지 to PDF 변환이 포함됩니다. 웹 응용 프로그램을 위해 IronPDF는 ASPX 페이지 변환을 처리하고 헤드리스 CSHTML 렌더링을 지원합니다.
PDF 이미징은 어떻게 작동합니까?
PDF에서 이미지를 생성하고 이미지에서 PDF를 생성합니다. 이미지 추출, 여러 형식, PDF 인쇄를 포함합니다. SVG 그래픽 및 Azure Blob Storage 이미지를 지원합니다. 라이브러리는 다중 프레임 TIFF 변환을 처리하고 고품질 PDF to 이미지 변환을 제공합니다. 메모리 효율적 처리를 위해 MemoryStream을 사용한 래스터화를 사용하세요.
어떤 파일 I/O 기능이 포함되어 있습니까?
IronPDF는 128비트 암호화, 암호 보호 및 디지털 서명을 제공합니다. HSM 서명과 PDF/A 준수를 포함합니다. PDF/A 마일스톤은 PDF/A-3 및 ZUGFeRD를 포함한 보관 포맷 지원을 확장했습니다. 추가 보안 기능에는 PDF 정화 및 개정 역사 관리가 포함됩니다.
PDF를 어떻게 편집할 수 있습니까?
IronPDF는 워터마크, 페이지 관리, 배경, 전경 및 완전한 PDF 조작을 제공합니다. 그리기, 주석, 양식 관리를 포함합니다. 고급 편집에는 텍스트 교체, 부분 삭제, PDF 페이지 변환이 포함됩니다. PDFium DOM 마일스톤은 복잡한 PDF 구조 처리 개선을 제공합니다.
PDF에서 내용을 어떻게 추출하나요?
내장된 텍스트를 PDF에서 직접 추출하세요. 이미지에 포함된 텍스트의 경우, IronOCR를 사용하세요. PDF DOM Object는 프로그래매틱한 PDF 구조 접근을 제공합니다. 고급 추출에는 PDF 텍스트 읽기와 폰트 관리가 포함됩니다. 텍스트 분석의 경우, 지능형 문서 처리를 위한 OpenAI 통합을 사용하세요.
헤더와 푸터는 어떻게 작동합니까?
헤더와 푸터는 생성 시 또는 기존 PDF에 추가할 수 있습니다. 동적 페이지 번호를 포함한 텍스트 및 HTML 헤더를 지원합니다. 고급 옵션으로는 특정 페이지에 헤더 추가 및 페이지 분할 관리 등이 있습니다. 렌더링 옵션은 레이아웃 및 용지 크기에 대한 세밀한 제어를 제공합니다.
어떤 플랫폼과 호환됩니까?
IronPDF는 C# 호환 운영 체제 및 프레임워크를 지원합니다:
- Windows 및 Windows Server
- Linux 배포판
- macOS Intel 및 Apple Silicon
- .NET Core 2.1+, .NET 6 & 5
- .NET Standard 2.0 준수
- Microsoft Azure 및 Azure Functions
- AWS 및 AWS Lambda
- Docker 컨테이너
- Android 및 Blazor
호환성 이정표는 플랫폼 지원을 확장했습니다. 배포 가이드는 IronPDF 및 IIS 및 배포 문제 해결을 참조하세요.
PDFShift란 무엇입니까?
PDFShift는 HTML을 PDF로 변환하는 API로, 클라우드 서비스를 통해 빠른 변환을 제공합니다. API는 병렬 변환, 비동기 쿼리, 원시 HTML 지원 등을 제공합니다. PDFShift는 Ruby, Python, JavaScript, Node 및 PHP를 지원합니다. VB.NET 또는 F# 개발자의 경우, IronPDF는 네이티브 지원을 제공하며, PDFShift는 HTTP 통합을 요구합니다. 다른 클라우드 서비스와의 비교는 Aspose vs IronPDF 및 Syncfusion vs IronPDF을 참조하세요.
PDFShift는 사용자 지정 헤더/푸터, CSS 적용, 파일 암호화를 가능하게 합니다. 그러나 서비스는 PDF 압축, 선형화 또는 PDF/UA 준수와 같은 고급 조작 기능이 부족합니다. 기업 요구사항의 경우, 보안 CVE 공개 및 Kerberos 인증을 검토하십시오.
PDFShift가 제공하는 기능은 무엇입니까?
병렬 변환은 어떻게 작동합니까?
PDFShift는 동시에 문서를 처리하기 위한 병렬 변환을 지원합니다. 비슷한 기능의 경우, IronPDF의 비동기 및 멀티스레드 가이드를 참조하세요. IronPDF는 병렬 PDF 생성 예제와 성능 벤치마크가 포함된 멀티스레드 생성을 제공합니다. 비동기 예제는 일괄 처리 최적화를 보여줍니다.
사용 가능한 헤더 및 푸터 옵션은 무엇입니까?
페이지 번호와 CSS/JavaScript를 사용하여 사용자 지정 헤더/푸터를 만드세요. IronPDF는 반복 테이블 헤더 및 사용자 지정 HTML 헤더와 같은 고급 옵션을 제공합니다. 클래식 텍스트 헤더는 간단한 구현을 제공하며, HTML 헤더는 복잡한 레이아웃을 가능하게 합니다. 동적인 콘텐츠의 경우, JavaScript 메시지 리스너를 사용하세요.
공개하지 않고 원시 HTML을 변환할 수 있습니까?
PDFShift는 공개 페이지 없이 원시 HTML을 변환합니다. IronPDF는 기본 URL 구성 및 DataURI 임베딩을 통한 유사한 기능을 제공합니다. 이미지 base64 임베드 예제는 자체 포함 HTML 변환을 보여줍니다. 안전한 변환을 위해 사용자 정의 로깅 및 HTTP 요청 헤더를 사용하세요.
PDF의 품질은 어떻습니까?
PDFShift는 고충실도의 PDF를 빠르게 생성합니다. IronPDF의 Chrome 렌더링 엔진은 브라우저 출력과 일치하는 픽셀 완벽한 PDF를 생성합니다. 픽셀 완벽한 튜토리얼은 품질 최적화를 설명합니다. 특정 요구 사항에 대해서는 뷰포트 설정과 렌더링 지연을 구성하세요.
비동기 요청은 어떻게 작동합니까?
간단한 통합으로 변환 완료에 대한 실시간 알림을 제공합니다. IronPDF는 배치 처리 예제를 포함한 완전한 비동기 지원을 제공합니다. 비동기 PDF 생성 예제는 성능 향상을 보여줍니다. 대규모 처리를 위해 메모리 관리와 성능 지원을 참조하세요.
Visual Studio에서 새 프로젝트를 어떻게 만드나요?
Visual Studio를 열고 파일 > 새 프로젝트 > 콘솔 애플리케이션을 선택하세요. 이 예제는 콘솔 애플리케이션을 사용합니다. 설치 지침은 설치 개요와 빠른 시작 가이드를 참조하세요. 추가 프로젝트 템플릿에는 Blazor 튜토리얼과 MAUI PDF 보기가 포함되어 있습니다. 설정 문제 해결에 대해서는 빠른 문제 해결 가이드를 참조하세요.
프로젝트 이름과 경로를 입력하세요. 생성 버튼을 클릭하세요. 필요한 .NET Framework를 선택하세요:
Visual Studio가 응용 프로그램 구조를 생성하고 program.cs를 열어 코드 입력을 허용합니다:
IronPDF 라이브러리를 설치하는 방법은?
IronPDF를 설치하는 네 가지 방법:
- Visual Studio NuGet 패키지 관리자
- Visual Studio 명령줄
- NuGet에서 직접 다운로드
- IronPDF에서 직접 다운로드
다른 방법에 대해서는 Windows 설치 가이드 또는 고급 NuGet 설치를 참조하세요. 플랫폼별 가이드에는 Linux 설정, macOS 설치 및 Docker 배포가 포함됩니다. 크기 제한 환경에서는 IronPDF Slim을 사용하세요.
Visual Studio NuGet 패키지 관리자를 어떻게 사용합니까?
Visual Studio는 직접 설치를 위한 NuGet 패키지 관리자를 제공합니다:
패키지 관리자에서 "IronPDF"를 검색하세요:
IronPDF를 선택하고 패키지를 설치하세요. 작은 배포에서는 IronPDF Slim을 고려하세요. 문제가 발생하면 NuGet 패키지 배포 실패 및 배포 예외를 참조하세요.
Visual Studio 명령줄을 어떻게 사용합니까?
도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔로 이동하세요:
콘솔에 입력하세요:
Install-Package IronPdf
패키지가 다운로드되고 설치됩니다. 플랫폼별 설치에 대해서는 Linux, macOS 또는 Docker 배포를 참조하세요. 의존성 오류에 대해서는 Chrome 의존성 및 Pdfium 의존성을 확인하세요.
NuGet 웹페이지에서 직접 다운로드할 수 있나요?
NuGet 패키지를 직접 다운로드하세요:
- NuGet IronPDF 페이지로 이동하세요
- 다운로드 패키지를 선택하세요
- 자동 설치를 위해 더블 클릭
- 솔루션을 다시 로드하세요
패키지 관리를 위해 IronPDF 런타임 폴더 가이드를 참조하세요. 버전 충돌이 발생하면 어셈블리 버전 불일치 및 ClickOnce 호환성을 검토하세요.
IronPDF 웹페이지에서 직접 다운로드할 수 있나요?
IronPDF 다운로드 페이지에서 다운로드하세요. 다운로드 후:
- 솔루션 창에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다
- 참조를 선택하고 파일로 이동합니다
- 확인 버튼을 클릭하세요
라이선스 설정에 대한 자세한 내용은 라이선스 키 사용 및 라이선스 적용하기를 참조하십시오. 추가 구성 옵션에는 Web.config에서 라이선스 설정 및 라이선스 확장 관리가 포함됩니다.
PDFShift는 어떻게 작동합니까?
PDFShift는 API를 통해 원격으로 작동합니다. API 키 인증을 사용하여 C# RestClient를 통해 POST 요청을 제출합니다. 서버는 요청을 처리하고 HTTP를 통해 PDF를 반환합니다. 로컬 처리의 경우 IronPDF의 네이티브 엔진이 성능과 보안을 향상시켜줍니다. 네이티브 대 원격 엔진 옵션과 비교합니다. API 대안에 대한 정보는 Apryse 대 IronPDF 및 iText 대 IronPDF를 검토하십시오.
HTML에서 PDF를 어떻게 만듭니까?
두 도구 모두 다른 접근 방식으로 HTML 변환을 제공합니다. IronPDF는 HTML ZIP 파일과 사용자 정의 렌더링을 포함한 광범위한 옵션을 제공합니다. PDF 만들기 튜토리얼은 전체 생성 방법을 다룹니다. 고급 시나리오의 경우 JavaScript 렌더링 및 반응형 CSS 처리를 탐색하십시오.
IronPDF를 사용하여 URL에서 PDF를 어떻게 만듭니까?
URL에서 PDF를 만드는 데는 세 줄이 필요합니다. 이 코드 예제는 IronPDF가 URL을 PDF로 변환할 수 있는 방법을 보여줍니다:
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
Dim Renderer = New IronPdf.ChromePdfRenderer()
' Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
Renderer.RenderingOptions.MarginTop = 25
Renderer.RenderingOptions.MarginBottom = 25
' Create a PDF from a URL or local file path
Using pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
End Using
인증된 페이지에 대한 정보는 TLS 웹사이트 로그인을 참조하십시오. JavaScript 사이트의 경우 WaitFor 지연과 사용자 정의 JavaScript를 사용하십시오. 고급 옵션에는 렌더 지연 및 JavaScript에서 PDF로 변환이 포함됩니다. 성능 최적화를 위해 초기 렌더링 느린 해결책을 참조하십시오.
출력:
IronPDF를 사용하여 HTML을 PDF로 어떻게 변환합니까?
HTML을 PDF로 변환하는 것이 간단합니다:
using IronPdf;
var pdf = new ChromePdfRenderer();
// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;
// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
using IronPdf;
var pdf = new ChromePdfRenderer();
// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;
// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
Imports IronPdf
Dim pdf = New ChromePdfRenderer()
' Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
pdf.RenderingOptions.EnableJavaScript = True
' Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded()
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
doc.SaveAs("FirstPDFDocument.pdf")
복잡한 HTML의 경우 상대 경로를 위한 기본 URL을 사용하십시오. 타이포그래피를 위해 웹 글꼴 및 아이콘을 추가하십시오. 추가 서식 옵션에는 사용자 정의 글꼴 및 국제 언어가 포함됩니다. 글꼴 문제 해결에 대한 정보는 글꼴 관리 및 글꼴 커닝 문제를 참조하십시오.
PDFShift를 사용하여 URL에서 PDF를 어떻게 만듭니까?
PDFShift로 URL을 변환하려면 POST 요청이 필요합니다:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_69___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_70___",
// Additional options
landscape = false,
use_print = false
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_69___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_70___",
// Additional options
landscape = false,
use_print = false
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO
Namespace PDFShiftExample
Module Program
Sub Main(args As String())
Dim client = New RestClient("___PROTECTED_URL_69___")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request = New RestRequest(Method.POST)
Dim json = New With {
.source = "___PROTECTED_URL_70___",
.landscape = False,
.use_print = False
}
request.AddJsonBody(json)
Dim response = client.Execute(request)
If Not response.IsSuccessful Then
' Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}")
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Module
End Namespace
PDFShift를 사용하여 HTML을 PDF로 어떻게 변환합니까?
PDFShift는 HTML에서 PDF로의 변환을 제공합니다:
using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_71___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent,
// Additional formatting options
margin = "20px",
format = "A4"
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_71___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent,
// Additional formatting options
margin = "20px",
format = "A4"
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports System.IO
Imports RestSharp
Imports RestSharp.Authenticators
Module PDFShiftExample
Sub Main()
Dim client = New RestClient("___PROTECTED_URL_71___")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request = New RestRequest(Method.POST)
Dim documentContent As String = File.ReadAllText("document.html")
Dim json = New With {
.source = documentContent,
.margin = "20px",
.format = "A4"
}
request.AddJsonBody(json)
Dim response = client.Execute(request)
If Not response.IsSuccessful Then
' Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode}")
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Module
사용자 정의 머리글과 바닥글을 어떻게 추가합니까?
머리글과 바닥글은 페이지 전체에 일관된 정보를 제공하여 PDF 문서를 개선합니다. IronPDF 및 PDFShift 모두 이 기능을 지원합니다. 고급 시나리오의 경우 페이지에 머리글 추가 및 페이지 나누기 제어를 참조하십시오. 페이지 번호 및 페이지 나누기 예제는 완전한 구현을 보여줍니다. 레이아웃 제어를 위해 사용자 정의 여백 및 PDF 페이지 방향을 탐색하십시오.
IronPDF를 사용하여 머리글과 바닥글을 어떻게 추가합니까?
IronPDF는 머리글 및 바닥글을 구현하기 위한 두 가지 방법을 제공합니다:
TextHeaderFooter: 이 방법은 동적 데이터가 포함된 텍스트 기반 헤더를 사용합니다.
HtmlHeaderFooter: 이 접근 방식은 템플릿을 사용하여 HTML로 렌더링된 머리글과 바닥글을 허용합니다.
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 25,
DrawDividerLine = true
};
// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;
var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 25,
DrawDividerLine = true
};
// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;
var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
Imports IronPdf
Dim Renderer = New IronPdf.ChromePdfRenderer()
' Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12
' Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = New IronPdf.HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
.Height = 25,
.DrawDividerLine = True
}
' Apply custom margins
Renderer.RenderingOptions.MarginTop = 40
Renderer.RenderingOptions.MarginBottom = 40
Dim pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>")
pdf.SaveAs("headers-footers.pdf")
복잡한 레이아웃의 경우 목차와 책갈피를 사용하는 것을 고려하십시오. 개요 및 책갈피 예제는 탐색 구조를 제공합니다. 정확한 위치 설정을 위해 사용자 정의 여백 예제와 PDF 페이지 변환을 사용하십시오.
PDFShift를 사용하여 머리글과 바닥글을 어떻게 추가합니까?
PDFShift는 식별 또는 브랜딩을 위한 헤더 및 푸터와 함께 문서 맞춤화를 허용합니다:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_72___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_73___",
footer = new {
source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>",
spacing = "50px"
},
header = new {
source = "<div>Company Name</div>",
spacing = "30px"
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_72___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_73___",
footer = new {
source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>",
spacing = "50px"
},
header = new {
source = "<div>Company Name</div>",
spacing = "30px"
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO
Namespace PDFShiftExample
Class Program
Shared Sub Main(ByVal args As String())
Dim client = New RestClient("___PROTECTED_URL_72___")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request = New RestRequest(Method.POST)
Dim json = New With {
.source = "___PROTECTED_URL_73___",
.footer = New With {
.source = "<div style=""font-size: 12px"">Page {{page}} of {{total}}</div>",
.spacing = "50px"
},
.header = New With {
.source = "<div>Company Name</div>",
.spacing = "30px"
}
}
request.AddJsonBody(json)
Dim response = client.Execute(request)
If Not response.IsSuccessful Then
' Handle the unsuccessful response
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
PDF에 워터마크를 추가하는 방법은?
PDF 워터마킹은 문서에 브랜딩과 보안을 추가합니다. IronPDF 및 PDFShift 모두 워터마킹을 지원합니다. 추가 옵션은 텍스트 및 이미지 스탬핑 및 새 콘텐츠 스탬핑을 참조하세요. PDF 워터마킹 예제는 고급 기술을 보여줍니다. 배치 처리의 경우, 효율적인 HTML 스탬핑을 사용하세요.
IronPDF를 사용하여 워터마크를 추가하려면 어떻게 해야 하나요?
IronPDF는 HTML을 사용하여 PDF에 워터마킹할 수 있게 합니다. 워터마크에는 불투명도, 회전, 하이퍼링크가 포함될 수 있습니다. 예시는 PDF 워터마킹 예제를 참조하세요. 다중 스탬프의 경우, 효율적인 HTML 스탬핑을 고려하세요. 추가 옵션으로는 배경 및 전경 예제와 텍스트 및 비트맵 그리기가 있습니다.
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");
// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>",
IronPdf.Editing.WaterMarkLocation.MiddleCenter,
50, // opacity
-45, // rotation
"___PROTECTED_URL_75___");
// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>",
30, // opacity
IronPdf.Editing.VerticalAlignment.Top,
IronPdf.Editing.HorizontalAlignment.Right);
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");
// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>",
IronPdf.Editing.WaterMarkLocation.MiddleCenter,
50, // opacity
-45, // rotation
"___PROTECTED_URL_75___");
// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>",
30, // opacity
IronPdf.Editing.VerticalAlignment.Top,
IronPdf.Editing.HorizontalAlignment.Right);
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Dim Renderer As New IronPdf.ChromePdfRenderer()
Using Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___")
' Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>",
IronPdf.Editing.WaterMarkLocation.MiddleCenter,
50, ' opacity
-45, ' rotation
"___PROTECTED_URL_75___")
' Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>",
30, ' opacity
IronPdf.Editing.VerticalAlignment.Top,
IronPdf.Editing.HorizontalAlignment.Right)
Pdf.SaveAs("C:\Path\To\Watermarked.pdf")
End Using
고급 워터마킹을 위해 배경 및 전경 또는 커스텀 스탬핑과 결합하세요. 표지 첨부 예제는 문서 브랜딩을 보여줍니다. 정확한 제어를 위해, 텍스트 회전 및 PDF 객체 스케일을 사용하세요.
PDFShift를 사용하여 워터마크를 추가하려면 어떻게 해야 하나요?
PDFShift는 식별 목적으로 문서에 워터마크를 추가할 수 있도록 합니다:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_76___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_77___",
watermark = new {
image = "___PROTECTED_URL_78___",
offset_x = 50,
offset_y = "100px",
rotate = 45,
opacity = 0.5
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_76___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_77___",
watermark = new {
image = "___PROTECTED_URL_78___",
offset_x = 50,
offset_y = "100px",
rotate = 45,
opacity = 0.5
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO
Namespace PDFShiftExample
Module Program
Sub Main(args As String())
Dim client = New RestClient("___PROTECTED_URL_76___")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request = New RestRequest(Method.POST)
Dim json = New With {
.source = "___PROTECTED_URL_77___",
.watermark = New With {
.image = "___PROTECTED_URL_78___",
.offset_x = 50,
.offset_y = "100px",
.rotate = 45,
.opacity = 0.5
}
}
request.AddJsonBody(json)
Dim response = client.Execute(request)
If Not response.IsSuccessful Then
' Handle the unsuccessful response
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Module
End Namespace
이 도구들은 Bootstrap과 최신 CSS를 얼마나 잘 지원하나요?
최신 웹 개발은 반응형 디자인을 위한 CSS 프레임워크에 의존하며, PDF 라이브러리는 이러한 프레임워크를 정확하게 변환해야 합니다. Bootstrap 및 Flex CSS 가이드를 참조하세요. 반응형 디자인을 위해, 뷰포트 및 줌 설정과 커스텀 용지 크기를 확인하세요. 커스텀 PDF 용지 크기 예제는 정확한 크기를 보여줍니다. 레이아웃 제어를 위해, 종이에 맞추기 및 줌과 반응형 HTML to PDF를 탐색하세요.
IronPDF는 Bootstrap과 최신 CSS 프레임워크를 지원하나요?
IronPDF의 Chrome 렌더링 엔진은 CSS 프레임워크에 대한 광범위한 지원을 제공합니다:
- Bootstrap 5: 전체 플렉스박스 및 CSS 그리드, 반응형 유틸리티
- 부트스트랩 4: 완전한 카드 시스템, 내비게이션, 폼 구성 요소
- Tailwind CSS: 모든 유틸리티 클래스와 반응형 수정자
- Foundation: 완전한 그리드 및 구성 요소 시스템
- 현대 CSS3: Flexbox, Grid, 사용자 정의 속성, 애니메이션, 변환
검증: Bootstrap 홈페이지와 템플릿이 정확하게 변환됩니다. 렌더링 옵션 가이드를 참조하세요. IronPDF는 Angular to PDF 및 기타 프레임워크를 지원합니다. 추가 프레임워크 지원으로 JavaScript 차트 및 WebGL 렌더링이 포함됩니다. 최적화를 위해, HTML 렌더링 설정과 픽셀 완벽한 서식을 사용하세요.
코드 예제: Bootstrap을 사용한 연락처 양식
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport
string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_79___ rel='stylesheet'>
<style>
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='container my-5'>
<div class='row justify-content-center'>
<div class='col-lg-8'>
<div class='card shadow'>
<div class='card-header bg-primary text-white'>
<h2 class='mb-0'>Contact Us</h2>
</div>
<div class='card-body'>
<form>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' placeholder='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' placeholder='Doe'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Email Address</label>
<div class='input-group'>
<span class='input-group-text'>@</span>
<input type='email' class='form-control' placeholder='john.doe@example.com'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Subject</label>
<select class='form-select'>
<option>General Inquiry</option>
<option>Technical Support</option>
<option>Sales Question</option>
<option>Partnership Opportunity</option>
</select>
</div>
<div class='mt-3'>
<label class='form-label'>Message</label>
<textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
</div>
<div class='d-flex justify-content-between align-items-center mt-4'>
<div class='form-check'>
<input class='form-check-input' type='checkbox' id='newsletter'>
<label class='form-check-label' for='newsletter'>
Subscribe to newsletter
</label>
</div>
<button type='submit' class='btn btn-primary px-4'>Submit</button>
</div>
</form>
</div>
</div>
<div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
<div>We typically respond within 24 hours during business days.</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport
string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_79___ rel='stylesheet'>
<style>
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='container my-5'>
<div class='row justify-content-center'>
<div class='col-lg-8'>
<div class='card shadow'>
<div class='card-header bg-primary text-white'>
<h2 class='mb-0'>Contact Us</h2>
</div>
<div class='card-body'>
<form>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' placeholder='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' placeholder='Doe'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Email Address</label>
<div class='input-group'>
<span class='input-group-text'>@</span>
<input type='email' class='form-control' placeholder='john.doe@example.com'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Subject</label>
<select class='form-select'>
<option>General Inquiry</option>
<option>Technical Support</option>
<option>Sales Question</option>
<option>Partnership Opportunity</option>
</select>
</div>
<div class='mt-3'>
<label class='form-label'>Message</label>
<textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
</div>
<div class='d-flex justify-content-between align-items-center mt-4'>
<div class='form-check'>
<input class='form-check-input' type='checkbox' id='newsletter'>
<label class='form-check-label' for='newsletter'>
Subscribe to newsletter
</label>
</div>
<button type='submit' class='btn btn-primary px-4'>Submit</button>
</div>
</form>
</div>
</div>
<div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
<div>We typically respond within 24 hours during business days.</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200 ' Desktop viewport
Dim bootstrapContact As String = "
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_79___ rel='stylesheet'>
<style>
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='container my-5'>
<div class='row justify-content-center'>
<div class='col-lg-8'>
<div class='card shadow'>
<div class='card-header bg-primary text-white'>
<h2 class='mb-0'>Contact Us</h2>
</div>
<div class='card-body'>
<form>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' placeholder='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' placeholder='Doe'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Email Address</label>
<div class='input-group'>
<span class='input-group-text'>@</span>
<input type='email' class='form-control' placeholder='john.doe@example.com'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Subject</label>
<select class='form-select'>
<option>General Inquiry</option>
<option>Technical Support</option>
<option>Sales Question</option>
<option>Partnership Opportunity</option>
</select>
</div>
<div class='mt-3'>
<label class='form-label'>Message</label>
<textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
</div>
<div class='d-flex justify-content-between align-items-center mt-4'>
<div class='form-check'>
<input class='form-check-input' type='checkbox' id='newsletter'>
<label class='form-check-label' for='newsletter'>
Subscribe to newsletter
</label>
</div>
<button type='submit' class='btn btn-primary px-4'>Submit</button>
</div>
</form>
</div>
</div>
<div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
<div>We typically respond within 24 hours during business days.</div>
</div>
</div>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapContact)
pdf.SaveAs("contact-form.pdf")
출력: Bootstrap의 폼 컨트롤, 그리드 레이아웃, 카드 스타일링 및 입력 그룹을 가진 전문적인 연락처 양식 - 모두 PDF에서 정확하게 렌더링됨.
차트 렌더링 및 WebGL 사이트에 대한 추가 예제를 참조하세요. HTML 예제에 바코드 추가는 추가 HTML 요소를 보여줍니다. 성능 최적화를 위해, PDF 자산 및 성능 가이드와 패키지 크기 관리를 사용하세요.
PDFShift는 Bootstrap과 최신 CSS를 지원하나요?
- 클라우드 API: 모든 변환은 HTTP API 호출을 통해 PDFShift 서버에서 수행됨
- Bootstrap 지원: 일반적으로 Bootstrap 4/5 레이아웃을 잘 처리함
- CSS3 지원: Flexbox 및 최신 CSS 렌더링 우수
- 인터넷 필요: 오프라인에서는 PDF를 생성할 수 없음
- 문서당 가격: 개발자 라이선스가 아닌 변환당 요금 부과
PDFShift의 주요 고려사항:
- 외부 의존성: 모든 PDF 생성이 인터넷 및 외부 API 가용성 필요
- 데이터 개인정보: 처리를 위해 타사 서버에 HTML 콘텐츠 전송
- 대량 비용: 문서당 가격으로 대규모에서 비용이 많아질 수 있음
- 지연: 네트워크 왕복이 각 변환에 지연을 추가
- 오프라인 기능 없음: 에어 갭이나 오프라인 환경에서 작동할 수 없음
개발 영향: PDFShift는 Bootstrap을 잘 처리하지만, 클라우드 아키텍처는 운영상의 절충을 가져옵니다:
- 문서당 지속적인 비용 대 IronPDF의 1회 개발자 라이선스
- 외부 서비스 의존성 대 로컬 온프레미스 처리
- 민감한 콘텐츠에 대한 데이터 처리 고려사항
- 인터넷 연결 요구사항 대 오프라인 기능
개발 영향: 클라우드 아키텍처는 운영 고려사항을 도입합니다:
- 문서당 지속 비용 대 1회 라이선스
- 외부 의존성 대 로컬 처리 제어
- 민감한 콘텐츠에 대한 데이터 처리 요건
- 인터넷 연결 전제조건
대량 애플리케이션 또는 민감한 데이터의 경우, IronPDF의 로컬 처리가 더 나은 제어와 가치를 제공합니다. 병렬 생성과 멀티 스레딩을 고려하여 성능을 향상시킵니다. 멀티 스레드 예제는 동시 처리를 보여줍니다. 클라우드 대안에 대해서는 Azure 배포와 AWS Lambda 통합을 참조하십시오.
Bootstrap & Flexbox CSS 가이드와 HTML 렌더링 설정을 참조하십시오. 모던 CSS 지원을 위해 국제 언어 및 CMYK와 메타데이터 가시성을 검토하십시오.
라이선스 옵션은 무엇입니까?
IronPDF는 무료 개발자 라이선스를 제공합니다. 라이트 패키지는 $799에서 시작하며 숨겨진 비용이 없습니다. 패키지에는 SaaS 및 OEM 재배포가 포함됩니다. 모든 라이선스는 30일 환불 보장과 1년 동안의 지원 및 업그레이드, 개발, 테스트, 스테이징 및 프로덕션을 위한 평생 라이선스와 함께합니다. IronPDF의 가격 및 라이선스를 참조하십시오. 라이선스 관리를 위해 라이선스 키 적용과 라이선스 키 구성를 참조하십시오. 라이선스 키 가이드는 모든 구성 방법을 다룹니다. 라이선스 문제 해결을 위해 라이선스 서버에 연결할 수 없음과 사용 선언을 참조하십시오.
PDFShift는 신용 점수를 사용하여 매월 또는 매년 이용 가능한 다섯 가지 패키지를 제공합니다:
- 무료: 매달 50 크레딧
- 스타트업: 매달 500 크레딧 ($9) 또는 매년 6,000 크레딧 ($99)
- 부스트: 매달 2,500 크레딧 ($24) 또는 매년 30,000 크레딧 ($240)
- 성장: 매달 5,000 크레딧 ($39) 또는 매년 60,000 크레딧 ($390)
- 비즈니스: 매달 25,000 크레딧 ($99)
파일 크기 제한: 1MB (무료), 5MB (유료 패키지).
PDFShift 가격 페이지를 방문하십시오.
어떤 PDF API를 선택해야 할까요?
IronPDF는 개인 개발자에게 무료로 제공되며 광범위한 PDF 수정 및 변환 기능을 제공합니다. IronPDF는 우수한 편집 및 서식 도구를 제공합니다. 이 라이브러리는 상용 인쇄를 위한 HTML을 벡터 PDF로 변환하여 명확하고 고품질의 출력을 제공합니다. Iron Software 라이선스 정보를 참조하십시오. 추가 기능을 위해 PDF 정리, PDF 서명 및 보안, 그리고 PDF 변환 옵션을 탐색하십시오. 전체 기능 목록은 기능 목록에서 모든 기능을 다룹니다. 기업 기능을 위해 디지털 서명 예제와 암호화 및 해독을 검토하십시오.
PDFShift는 간단한 엔드포인트와 여러 언어 지원을 갖춘 클라우드 기반 HTML-to-PDF API입니다. PDFShift는 서버 요청을 통해 병렬 변환을 처리합니다. 그러나 이 서비스는 PDF 폼 생성, PDF 병합, 텍스트 대체 또는 메타데이터 편집과 같은 고급 기능이 부족합니다. 폼 처리 비교를 위해 폼 데이터 예제와 폼 채우기 및 편집을 참조하십시오. 문서 조직을 위해 PDF 병합 예제와 PDF 페이지 분할를 검토하십시오.
IronPDF 라이선스는 개발자 기반으로 1회 구매입니다. PDFShift는 계속적인 구독이 필요한 월간 또는 연간 크레딧 기반 라이선스를 사용합니다. IronPDF는 OEM 및 SaaS 배포를 지원합니다; PDFShift는 지원하지 않습니다. 라이선스 관리를 위해, IronPDF 확장 및 업그레이드 옵션을 참조하세요. 변경 로그는 모든 제품 업데이트를 추적합니다. 지원 옵션을 위해, 엔지니어링 지원 요청 가이드와 최고의 지원 관행을 참조하세요.
두 도구를 비교하면 IronPDF는 상당히 더 많은 기능을 제공합니다. PDFShift는 제한된 PDF 조작 기능을 제공합니다. IronPDF는 URL을 PDF로 변환하는 데 세 줄의 코드가 필요하지만, PDFShift는 추가적인 코드 복잡성을 요구합니다. IronPDF는 .NET 프로젝트에 빠르고 쉽게 통합됩니다. PDFShift의 클라우드 시스템은 RestSharp 및 외부 API에 의존하여 통합 복잡성을 추가합니다. 문제 해결 리소스를 위해, 빠른 문제 해결 가이드와 엔지니어링 지원을 참조하세요. 추가 리소스에는 Azure 로그 파일과 AWS 로그 파일이 포함됩니다. 배포 지침을 위해, Azure 배포 문제 해결과 Azure 함수 디버깅을 검토하세요.
Iron Software는 두 개의 가격으로 다섯 개의 도구를 제공합니다. Iron Suite에는 다음이 포함됩니다:
- IronBarcode - 바코드 생성 및 읽기
- IronXL - Office 없이 Excel 파일 조작
- IronOCR - 고급 OCR을 통한 텍스트 추출
- IronPDF - 완전한 PDF 조작 라이브러리
- IronWebScraper - 웹 스크래핑 및 데이터 추출
Iron Suite 페이지를 방문하여 IRONSUITE를 탐색하세요. 추가 Iron Software 제품을 위해, 문서 보안 요구 사항에 대한 IronSecureDoc 문서를 탐색하세요. 제품 데모는 실제 사례를 제공합니다. 경쟁 분석을 위해, QuestPDF 대 IronPDF 비교를 검토하세요. 이정표 페이지는 2015년 이후의 주요 성과를 강조합니다.
자주 묻는 질문
C#에서 HTML을 PDF로 변환하는 방법은 무엇인가요?
IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 RenderHtmlFileAsPdf 사용하여 HTML 파일을 PDF로 변환할 수도 있습니다.
IronPDF를 사용한 PDF 조작의 이점은 무엇입니까?
IronPDF는 다양한 형식의 PDF 생성, 이미지 추출, 암호화, 편집 기능 및 Windows, Linux, Azure 및 AWS와 같은 여러 플랫폼과의 호환성을 포함한 PDF 조작을 위한 강력한 기능 세트를 제공합니다.
PDFShift의 주요 기능은 무엇입니까?
PDFShift는 병렬 변환, 맞춤 헤더, 비동기 요청 및 여러 프로그래밍 언어와 호환성을 포함한 빠른 HTML-to-PDF 변환을 지원하는 클라우드 기반 API입니다.
IronPDF와 PDFShift는 라이선싱 측면에서 어떻게 다릅니까?
IronPDF는 일회성 구매와 30일 환불 보장을 제공하는 개발자 기반 라이선싱을 제공합니다. 반면에, PDFShift는 월간 및 연간 계획으로 신용 기반 라이선싱 시스템을 사용합니다.
IronPDF를 클라우드 환경에서 사용할 수 있나요?
네, IronPDF는 Microsoft Azure와 AWS와 같은 클라우드 환경을 지원하여 다양한 배포 시나리오에 맞게 유연하게 사용할 수 있습니다.
IronPDF를 사용하여 PDF에 헤더와 풋터를 어떻게 추가하나요?
IronPDF는 내장된 메서드를 사용하여 PDF에 헤더와 풋터를 추가할 수 있도록 하며, 텍스트, 이미지, 페이지 번호를 포함하도록 사용자 지정할 수 있습니다.
IronPDF는 어떤 플랫폼을 지원하나요?
IronPDF는 Windows, Linux, .NET Core를 포함하여 C#과 호환되는 거의 모든 운영 체제와 프레임워크를 지원하며, 클라우드 환경에서도 사용할 수 있습니다.
Visual Studio 프로젝트에 IronPDF를 어떻게 설치하나요?
IronPDF는 Visual Studio NuGet 패키지 관리자, Visual Studio 명령줄, 또는 NuGet이나 IronPDF 웹사이트에서 직접 다운로드하여 설치할 수 있습니다.
IronPDF를 사용하여 PDF에서 이미지 추출이 가능한가요?
네, IronPDF는 PDF에서 이미지를 추출할 수 있는 기능을 제공하여 개발자가 원본 문서 외부에서 이미지를 조작하고 재사용할 수 있도록 합니다.



