푸터 콘텐츠로 바로가기
제품 비교

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 PagesCSHTML 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# 호환 운영 체제 및 프레임워크를 지원합니다:

호환성 이정표는 플랫폼 지원을 확장했습니다. 배포 가이드는 IronPDF 및 IIS배포 문제 해결을 참조하세요.

PDFShift란 무엇입니까?

PDFShift는 HTML을 PDF로 변환하는 API로, 클라우드 서비스를 통해 빠른 변환을 제공합니다. API는 병렬 변환, 비동기 쿼리, 원시 HTML 지원 등을 제공합니다. PDFShift는 Ruby, Python, JavaScript, Node 및 PHP를 지원합니다. VB.NET 또는 F# 개발자의 경우, IronPDF는 네이티브 지원을 제공하며, PDFShift는 HTTP 통합을 요구합니다. 다른 클라우드 서비스와의 비교는 Aspose vs IronPDFSyncfusion 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 프로젝트 구성 대화 상자는 새 콘솔 앱(.NET Framework) 프로젝트를 위한 설정 옵션과 프로젝트 이름, 위치 및 프레임워크 버전 필드를 보여줍니다

Visual Studio가 응용 프로그램 구조를 생성하고 program.cs를 열어 코드 입력을 허용합니다:

Visual Studio Code 편집기에서 C# 콘솔 응용 프로그램 템플릿을 구문 강조와 함께 보여주며, 사용하는 문장과 Main 메서드 진입점을 보여줍니다

IronPDF 라이브러리를 설치하는 방법은?

IronPDF를 설치하는 네 가지 방법:

  • Visual Studio NuGet 패키지 관리자
  • Visual Studio 명령줄
  • NuGet에서 직접 다운로드
  • IronPDF에서 직접 다운로드

다른 방법에 대해서는 Windows 설치 가이드 또는 고급 NuGet 설치를 참조하세요. 플랫폼별 가이드에는 Linux 설정, macOS 설치Docker 배포가 포함됩니다. 크기 제한 환경에서는 IronPDF Slim을 사용하세요.

Visual Studio NuGet 패키지 관리자를 어떻게 사용합니까?

Visual Studio는 직접 설치를 위한 NuGet 패키지 관리자를 제공합니다:

NuGet 패키지 관리자의 검색 결과와 .NET 개발을 위한 Install-Package 옵션을 보여주는 Visual Studio Code IDE

패키지 관리자에서 "IronPDF"를 검색하세요:

IronPDF 라이브러리에 대한 버전 번호, 다운로드 수 및 설명을 보여주는 IronPDF 패키지 검색 결과를 보여주는 Visual Studio NuGet 패키지 관리자

IronPDF를 선택하고 패키지를 설치하세요. 작은 배포에서는 IronPDF Slim을 고려하세요. 문제가 발생하면 NuGet 패키지 배포 실패배포 예외를 참조하세요.

Visual Studio 명령줄을 어떻게 사용합니까?

도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔로 이동하세요:

패키지 관리자 콘솔에 강조된 Visual Studio 도구 메뉴, 다양한 개발 도구 및 데이터베이스 연결 옵션을 표시함

콘솔에 입력하세요:

Install-Package IronPdf

패키지가 다운로드되고 설치됩니다. 플랫폼별 설치에 대해서는 Linux, macOS 또는 Docker 배포를 참조하세요. 의존성 오류에 대해서는 Chrome 의존성Pdfium 의존성을 확인하세요.

어두운 테마 인터페이스를 가진 빈 명령 프롬프트를 표시하는 Visual Studio 패키지 관리자 콘솔 창

NuGet 웹페이지에서 직접 다운로드할 수 있나요?

NuGet 패키지를 직접 다운로드하세요:

  • NuGet IronPDF 페이지로 이동하세요
  • 다운로드 패키지를 선택하세요
  • 자동 설치를 위해 더블 클릭
  • 솔루션을 다시 로드하세요

패키지 관리를 위해 IronPDF 런타임 폴더 가이드를 참조하세요. 버전 충돌이 발생하면 어셈블리 버전 불일치ClickOnce 호환성을 검토하세요.

IronPDF 웹페이지에서 직접 다운로드할 수 있나요?

IronPDF 다운로드 페이지에서 다운로드하세요. 다운로드 후:

  • 솔루션 창에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다
  • 참조를 선택하고 파일로 이동합니다
  • 확인 버튼을 클릭하세요

라이선스 설정에 대한 자세한 내용은 라이선스 키 사용라이선스 적용하기를 참조하십시오. 추가 구성 옵션에는 Web.config에서 라이선스 설정라이선스 확장 관리가 포함됩니다.

PDFShift는 어떻게 작동합니까?

PDFShift는 API를 통해 원격으로 작동합니다. API 키 인증을 사용하여 C# RestClient를 통해 POST 요청을 제출합니다. 서버는 요청을 처리하고 HTTP를 통해 PDF를 반환합니다. 로컬 처리의 경우 IronPDF의 네이티브 엔진이 성능과 보안을 향상시켜줍니다. 네이티브 대 원격 엔진 옵션과 비교합니다. API 대안에 대한 정보는 Apryse 대 IronPDFiText 대 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
$vbLabelText   $csharpLabel

인증된 페이지에 대한 정보는 TLS 웹사이트 로그인을 참조하십시오. JavaScript 사이트의 경우 WaitFor 지연사용자 정의 JavaScript를 사용하십시오. 고급 옵션에는 렌더 지연JavaScript에서 PDF로 변환이 포함됩니다. 성능 최적화를 위해 초기 렌더링 느린 해결책을 참조하십시오.

출력:

Amazon 파키스탄 웹사이트는 장난감 및 게임 쇼핑 페이지 위에 배송 주소 변경 팝업을 표시하며 게이밍 액세서리 및 전자 제품 카테고리를 보여줍니다

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

복잡한 HTML의 경우 상대 경로를 위한 기본 URL을 사용하십시오. 타이포그래피를 위해 웹 글꼴 및 아이콘을 추가하십시오. 추가 서식 옵션에는 사용자 정의 글꼴국제 언어가 포함됩니다. 글꼴 문제 해결에 대한 정보는 글꼴 관리글꼴 커닝 문제를 참조하십시오.

PDF 뷰어 인터페이스는 '이것은 제목입니다'라는 텍스트가 포함된 간단한 문서를 보여주며 기본 PDF 렌더링 기능을 제공합니다

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

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

사용자 정의 머리글과 바닥글을 어떻게 추가합니까?

머리글과 바닥글은 페이지 전체에 일관된 정보를 제공하여 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")
$vbLabelText   $csharpLabel

복잡한 레이아웃의 경우 목차책갈피를 사용하는 것을 고려하십시오. 개요 및 책갈피 예제는 탐색 구조를 제공합니다. 정확한 위치 설정을 위해 사용자 정의 여백 예제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
$vbLabelText   $csharpLabel

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

고급 워터마킹을 위해 배경 및 전경 또는 커스텀 스탬핑과 결합하세요. 표지 첨부 예제는 문서 브랜딩을 보여줍니다. 정확한 제어를 위해, 텍스트 회전PDF 객체 스케일을 사용하세요.

IronPDF NuGet 패키지 페이지는 버전 2022.6.6115를 보여주며 설치 명령어, 3.7M 다운로드, C# 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
$vbLabelText   $csharpLabel

이 도구들은 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")
$vbLabelText   $csharpLabel

출력: 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을 잘 처리하지만, 클라우드 아키텍처는 운영상의 절충을 가져옵니다:

  1. 문서당 지속적인 비용 대 IronPDF의 1회 개발자 라이선스
  2. 외부 서비스 의존성 대 로컬 온프레미스 처리
  3. 민감한 콘텐츠에 대한 데이터 처리 고려사항
  4. 인터넷 연결 요구사항 대 오프라인 기능

개발 영향: 클라우드 아키텍처는 운영 고려사항을 도입합니다:

  1. 문서당 지속 비용 대 1회 라이선스
  2. 외부 의존성 대 로컬 처리 제어
  3. 민감한 콘텐츠에 대한 데이터 처리 요건
  4. 인터넷 연결 전제조건

대량 애플리케이션 또는 민감한 데이터의 경우, IronPDF의 로컬 처리가 더 나은 제어와 가치를 제공합니다. 병렬 생성멀티 스레딩을 고려하여 성능을 향상시킵니다. 멀티 스레드 예제는 동시 처리를 보여줍니다. 클라우드 대안에 대해서는 Azure 배포AWS Lambda 통합을 참조하십시오.

Bootstrap & Flexbox CSS 가이드HTML 렌더링 설정을 참조하십시오. 모던 CSS 지원을 위해 국제 언어 및 CMYK메타데이터 가시성을 검토하십시오.

라이선스 옵션은 무엇입니까?

IronPDF는 무료 개발자 라이선스를 제공합니다. 라이트 패키지는 $799에서 시작하며 숨겨진 비용이 없습니다. 패키지에는 SaaS 및 OEM 재배포가 포함됩니다. 모든 라이선스는 30일 환불 보장과 1년 동안의 지원 및 업그레이드, 개발, 테스트, 스테이징 및 프로덕션을 위한 평생 라이선스와 함께합니다. IronPDF의 가격 및 라이선스를 참조하십시오. 라이선스 관리를 위해 라이선스 키 적용라이선스 키 구성를 참조하십시오. 라이선스 키 가이드는 모든 구성 방법을 다룹니다. 라이선스 문제 해결을 위해 라이선스 서버에 연결할 수 없음사용 선언을 참조하십시오.

IronPDF 라이선스 페이지에서는 세 가지 티어: Lite ($499), Professional ($999), 그리고 Unlimited ($2,999)가 개발자 및 프로젝트 제한을 제공합니다.

PDFShift는 신용 점수를 사용하여 매월 또는 매년 이용 가능한 다섯 가지 패키지를 제공합니다:

  1. 무료: 매달 50 크레딧
  2. 스타트업: 매달 500 크레딧 ($9) 또는 매년 6,000 크레딧 ($99)
  3. 부스트: 매달 2,500 크레딧 ($24) 또는 매년 30,000 크레딧 ($240)
  4. 성장: 매달 5,000 크레딧 ($39) 또는 매년 60,000 크레딧 ($390)
  5. 비즈니스: 매달 25,000 크레딧 ($99)

파일 크기 제한: 1MB (무료), 5MB (유료 패키지).

PDFShift 가격 비교는 스타트업 ($90), 부스트 ($240), 성장 ($390)의 세 가지 연간 플랜을 보여주며, 각기 다른 월간 크레딧 할당 및 초과 사용 요율을 제공합니다.

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년 이후의 주요 성과를 강조합니다.

참고해 주세요PDFShift는 해당 소유자의 등록 상표입니다. 본 사이트는 PDFShift와 관련이 없으며, 승인 또는 후원받지 않습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

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에서 이미지를 추출할 수 있는 기능을 제공하여 개발자가 원본 문서 외부에서 이미지를 조작하고 재사용할 수 있도록 합니다.

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

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

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

아이언 서포트 팀

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