제품 비교 A Comparison between IronPDF and Apitron PDF Kit 커티스 차우 업데이트됨:10월 26, 2025 다운로드 IronPDF NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 Working with PDF files in C# can be challenging for developers. There are many factors to consider when creating content for these files, and even more when converting content from different formats to PDF. Automation is now crucial in software development processes. These challenges have been addressed with the development of libraries designed to help read, write, create, and modify PDF documents, as well as edit their attributes and convert them from other formats. This blog post compares two PDF libraries for .NET and .NET Core: The IronPDF library The Apitron PDF Kit IronPDF and Apitron PDF Kit are libraries that provide PDF-manipulation functions for .NET and .NET Core. They can both be used for document fields conversion and manipulation tasks. They also allow for the creation of bookmarks. The next step is deciding which C# PDF .NET library is best for our .NET projects. This comparison article will help you decide between these two PDF libraries. First, let's explore what the two libraries offer, and then move on to the comparison itself. The Apitron PDF Kit Library and its Features Apitron PDF Kit is a .NET component that allows you to manipulate or convert PDF files in various ways. You can add images, drawings, and texts, sign documents, and much more. You can also edit existing content. The Apitron PDF Kit .NET component can be used to create mobile, desktop, web, Windows, and Cloud applications across multiple platforms. Using this PDF SDK, you'll be able to: Extract, modify, and add graphics (text, images, drawings) Split or merge PDF documents Fill or create password-protected PDF forms, FDF support Create multi-layer PDF documents with optional content groups (OCG) Add or remove fields from documents Use right-to-left or bidirectional text to create page content Examine resources within a document - fonts defined, embedded files Digitally sign and check existing signatures on PDF documents The Main Features of IronPDF Developers, especially C# programmers, will appreciate the IronPDF .NET library. With this tool, you can construct a .NET Core PDF processing application easily. IronPDF uses the .NET Chromium engine to convert HTML pages (in code or in URL form) to PDF files. There is no need to use complex APIs to position navigation objects or design PDFs from HTML. Standard web documents are supported by IronPDF, including HTML, ASPX, JS, CSS, and pictures. IronPDF can be created using HTML5, CSS, JS, and images. A PDF can be easily edited, stamped, and added with headers and footers. It also makes reading PDF text and extracting graphics straightforward. Standout features of IronPDF include: Creation of PDF documents using HTML4/5, CSS, and JavaScript Loading of URLs with custom network login credentials, user agents, proxies, cookies, HTTP headers, and form variables (enabling login behind HTML login forms) Reading and completion of PDF form fields Extraction of text and graphics from PDFs Updating PDF pages with new HTML content Creation of text-based or HTML-based headers and footers Merging and separation of PDF document content Conversion of ASP.NET webforms into printable PDFs Printing PDF files without Adobe Acrobat software IronPDF is available on almost all operating systems and frameworks compatible with C#, including: .NET Core 2.1, 3.0, 3.1, .NET 6 & 5 .NET Standard 2.0 Compliance for Universal Compatibility Azure, AWS, Docker, Linux, Windows The rest of the article goes as follows: IronPDF Installation Apitron PDF Kit Installation Create a PDF Document Create Header and Footer in PDF Digitally Sign PDF Pricing and Licensing 1. IronPDF Installation There are four methods to download and install the IronPDF library. These are: Using NuGet Package Manager The Developer Command Prompt Download the NuGet Package directly Download the IronPDF .DLL library 1.1. Using NuGet Package Manager To install IronPDF, simply right-click on your project in Solution Explorer. This will open NuGet Package Manager. Accessing the NuGet Package Manager using the Solution Explorer Once selected, browse for the IronPDF package and install it, as shown in the screenshot below. Installing the IronPDF library using the NuGet Package Manager 1.2. Using the Developer Command Prompt You can also install IronPDF through the Developer Command Prompt. Open the Developer Command Prompt --- usually found under the Visual Studio folder Type the following command: Install-Package IronPdf Press Enter This will download and install the package Reload your project and begin using it 1.3. Download the NuGet Package Directly IronPDF can also be installed by visiting the IronPDF NuGet Package site directly and downloading the package. The steps are: Navigate to IronPDF NuGet Package Select Download Package Double-click the downloaded package The package will be installed Reload your Visual Studio project and begin using it IronPDF is downloaded and is ready to use. However, before that, we should install the Apitron PDF library. 2. Apitron PDF Kit Installation For .NET Core applications, we can install Apitron using NuGet Package Manager, or we can download and install Apitron from the Apitron PDF Kit NuGet website directly. Open NuGet packages in Visual Studio as we did in IronPDF. Search for Apitron.PDF.Kit. Click on install in your current project. Apitron PDF Kit Search You can also use the NuGet Package Manager Console to install Apitron. Follow the "Use Developer Command Prompt" step as mentioned in IronPDF and type the following command: Install-Package Apitron.PDF.Kit Press ENTER. It will download and install Apitron.PDF.Kit. Add the following namespaces: using Apitron.PDF.Kit; using Apitron.PDF.Kit.FixedLayout.Resources; using Apitron.PDF.Kit.FixedLayout.Resources.Fonts; using Apitron.PDF.Kit.FlowLayout.Content; using Apitron.PDF.Kit.Styles; using Apitron.PDF.Kit.Styles.Appearance; using Font = Apitron.PDF.Kit.Styles.Text.Font; using Apitron.PDF.Kit; using Apitron.PDF.Kit.FixedLayout.Resources; using Apitron.PDF.Kit.FixedLayout.Resources.Fonts; using Apitron.PDF.Kit.FlowLayout.Content; using Apitron.PDF.Kit.Styles; using Apitron.PDF.Kit.Styles.Appearance; using Font = Apitron.PDF.Kit.Styles.Text.Font; $vbLabelText $csharpLabel Now, let's move into the comparison between IronPDF and Apitron PDF. 3. Creating PDF Document 3.1. Using IronPDF IronPDF has multiple methods for creating PDFs. Let's explore two important ones. Existing URL to PDF IronPDF makes it easy to convert any URL to PDF. The following code helps convert URL to PDF. var Renderer = new IronPdf.ChromePdfRenderer(); // Render a PDF from an existing URL using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/"); // Save the PDF to a file Pdf.SaveAs("url.pdf"); var Renderer = new IronPdf.ChromePdfRenderer(); // Render a PDF from an existing URL using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/"); // Save the PDF to a file Pdf.SaveAs("url.pdf"); $vbLabelText $csharpLabel HTML Input String to PDF The below code explains how to render a PDF document from an HTML string. You can use just HTML, or combine it with CSS, pictures, and JavaScript. var Renderer = new IronPdf.ChromePdfRenderer(); // Render a PDF from a simple HTML string using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>"); PDF.SaveAs("pixel-perfect.pdf"); // Load external HTML assets like images, CSS, and JavaScript // Set the optional BasePath as the file location to load assets from using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>Sample Text</h1>", @"C:\site\assets\"); AdvancedPDF.SaveAs("html-with-assets.pdf"); var Renderer = new IronPdf.ChromePdfRenderer(); // Render a PDF from a simple HTML string using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>"); PDF.SaveAs("pixel-perfect.pdf"); // Load external HTML assets like images, CSS, and JavaScript // Set the optional BasePath as the file location to load assets from using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>Sample Text</h1>", @"C:\site\assets\"); AdvancedPDF.SaveAs("html-with-assets.pdf"); $vbLabelText $csharpLabel The output is as follows: IronPDF Generate PDF from URL and HTML CSS String 3.2. Using Apitron PDF Kit Apitron PDF does not provide a way to convert a URL or HTML to PDF. It allows converting PDF to HTML. However, it also converts XML files to PDF. The XML file used is: <?xml version="1.0" encoding="utf-8"?> <FlowDocument xmlns="Apitron.PDF.Kit.FlowLayout.v1"> <Resources> <Image resourceId="logo" fileName="../../images/logo.png" /> </Resources> <Styles> <Style selector="flowdocument"> <Color value="Black" /> </Style> <Style selector="grid"> <InnerBorder thickness="1" /> <InnerBorderColor value="Black" /> </Style> </Styles> <Elements> <Image> <Properties> <Class value="logo" /> <ResourceId value="logo" /> </Properties> </Image> <TextBlock> <Properties> <Class value="header" /> <Text value="Sample Interview Questions for Candidates" /> </Properties> </TextBlock> <Br /> <TextBlock> <Properties> <Class value="headerNote" /> <Text value="To help facilitate the interview process, the Human Resources Department has compiled a list of questions that might be used during the phone and/or on-campus interviews. Some of the questions deal with the same content, but are phrased differently while other questions may not pertain to a specific discipline; however all of the questions are unbiased and appropriate to ask. We hope you'll find this helpful." /> </Properties> </TextBlock> </Elements> <Properties> <Margin value="30,20,30,20" /> </Properties> </FlowDocument> <?xml version="1.0" encoding="utf-8"?> <FlowDocument xmlns="Apitron.PDF.Kit.FlowLayout.v1"> <Resources> <Image resourceId="logo" fileName="../../images/logo.png" /> </Resources> <Styles> <Style selector="flowdocument"> <Color value="Black" /> </Style> <Style selector="grid"> <InnerBorder thickness="1" /> <InnerBorderColor value="Black" /> </Style> </Styles> <Elements> <Image> <Properties> <Class value="logo" /> <ResourceId value="logo" /> </Properties> </Image> <TextBlock> <Properties> <Class value="header" /> <Text value="Sample Interview Questions for Candidates" /> </Properties> </TextBlock> <Br /> <TextBlock> <Properties> <Class value="headerNote" /> <Text value="To help facilitate the interview process, the Human Resources Department has compiled a list of questions that might be used during the phone and/or on-campus interviews. Some of the questions deal with the same content, but are phrased differently while other questions may not pertain to a specific discipline; however all of the questions are unbiased and appropriate to ask. We hope you'll find this helpful." /> </Properties> </TextBlock> </Elements> <Properties> <Margin value="30,20,30,20" /> </Properties> </FlowDocument> XML The code for converting this XML template to PDF is as follows: // Use Apitron's FlowDocument to convert XML to PDF using (Stream stream = File.OpenRead("C:\PLACE YOUR EXACT PATH HERE\template.xml"), outputStream = File.Create("fromTemplate.pdf")) { ResourceManager resourceManager = new ResourceManager(); FlowDocument doc = FlowDocument.LoadFromXml(stream, resourceManager); doc.Write(outputStream, resourceManager); } // Use Apitron's FlowDocument to convert XML to PDF using (Stream stream = File.OpenRead("C:\PLACE YOUR EXACT PATH HERE\template.xml"), outputStream = File.Create("fromTemplate.pdf")) { ResourceManager resourceManager = new ResourceManager(); FlowDocument doc = FlowDocument.LoadFromXml(stream, resourceManager); doc.Write(outputStream, resourceManager); } $vbLabelText $csharpLabel The output is as follows: Apitron PDF Document If we compare the output of IronPDF and Apitron, we can clearly see that IronPDF creates impressive documents using HTML rendering and without even scaling the image size. On the other hand, Apitron gives a similar output to IronPDF but only if the XML file has registered styles. 4. Add Headers and Footers to PDF Documents 4.1. Using IronPDF Adding headers and footers is straightforward with IronPDF. IronPDF allows you to add page numbers and page breaks, attach a cover page, margin, etc. The code for adding headers and footers is below: var Renderer = new ChromePdfRenderer(); // Add a header Renderer.RenderingOptions.FirstPageNumber = 1; // Use 2 if a cover page will be appended Renderer.RenderingOptions.TextHeader.DrawDividerLine = true; Renderer.RenderingOptions.TextHeader.CenterText = "This is the header text"; Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; Renderer.RenderingOptions.TextHeader.FontSize = 12; Renderer.RenderingOptions.MarginTop = 25; // Create 25mm space for header // Add a footer too Renderer.RenderingOptions.TextFooter.DrawDividerLine = true; Renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial; Renderer.RenderingOptions.TextFooter.FontSize = 12; Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"; Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"; Renderer.RenderingOptions.MarginTop = 25; // Create 25mm space for footer using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>This is header and footer generated pdf file</h1>", @"C:\site\assets\"); AdvancedPDF.SaveAs("html-with-assets.pdf"); var Renderer = new ChromePdfRenderer(); // Add a header Renderer.RenderingOptions.FirstPageNumber = 1; // Use 2 if a cover page will be appended Renderer.RenderingOptions.TextHeader.DrawDividerLine = true; Renderer.RenderingOptions.TextHeader.CenterText = "This is the header text"; Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; Renderer.RenderingOptions.TextHeader.FontSize = 12; Renderer.RenderingOptions.MarginTop = 25; // Create 25mm space for header // Add a footer too Renderer.RenderingOptions.TextFooter.DrawDividerLine = true; Renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial; Renderer.RenderingOptions.TextFooter.FontSize = 12; Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"; Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"; Renderer.RenderingOptions.MarginTop = 25; // Create 25mm space for footer using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>This is header and footer generated pdf file</h1>", @"C:\site\assets\"); AdvancedPDF.SaveAs("html-with-assets.pdf"); $vbLabelText $csharpLabel The output is as follows: IronPDF Header and Footer 4.2. Using Apitron PDF Kit Apitron PDF Kit creates PDFs by converting content in an XML structure format into a PDF. In Apitron PDF Kit, headers and footers can be added using the PageHeader and PageFooter properties. The code for doing this is as follows: // Register document resources first ResourceManager resourceManager = new ResourceManager(); resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("logo", "../../data/logo.png")); // Create the document FlowDocument doc = new FlowDocument() { Margin = new Thickness(10) }; // Register styles doc.StyleManager.RegisterStyle(".pageHeader", new Style() { Font = new Font(StandardFonts.TimesBold, 20) }); doc.StyleManager.RegisterStyle(".pageFooter", new Style() { Align = Align.Right }); doc.StyleManager.RegisterStyle("hr", new Style() { Height = 2, Margin = new Thickness(0, 5, 0, 5) }); doc.StyleManager.RegisterStyle(".content", new Style() { Align = Align.Left, Display = Display.InlineBlock }); // Fill the header section doc.PageHeader.Class = "pageHeader"; doc.PageHeader.Add(new Image("logo") { Width = 100, Height = 50 }); doc.PageHeader.Add(new TextBlock("This document is intended for internal use only") { TextIndent = 20 }); doc.PageHeader.Add(new Hr()); // Fill the footer section doc.PageFooter.Class = "pageFooter"; doc.PageFooter.Add(new Hr()); doc.PageFooter.Add(new TextBlock((ctx) => string.Format("Page {0} from ", ctx.CurrentPage + 1))); doc.PageFooter.Add(new PageCount(3) { Display = Display.Inline }); // Add pages for (int i = 0; i < 2; ++i) { doc.Add(new TextBlock("This is header and footer generation pdf file.") { Class = "content" }); doc.Add(new PageBreak()); } // Generate PDF using (Stream stream = File.Create("out.pdf")) { doc.Write(stream, resourceManager); } Process.Start("out.pdf"); // Register document resources first ResourceManager resourceManager = new ResourceManager(); resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("logo", "../../data/logo.png")); // Create the document FlowDocument doc = new FlowDocument() { Margin = new Thickness(10) }; // Register styles doc.StyleManager.RegisterStyle(".pageHeader", new Style() { Font = new Font(StandardFonts.TimesBold, 20) }); doc.StyleManager.RegisterStyle(".pageFooter", new Style() { Align = Align.Right }); doc.StyleManager.RegisterStyle("hr", new Style() { Height = 2, Margin = new Thickness(0, 5, 0, 5) }); doc.StyleManager.RegisterStyle(".content", new Style() { Align = Align.Left, Display = Display.InlineBlock }); // Fill the header section doc.PageHeader.Class = "pageHeader"; doc.PageHeader.Add(new Image("logo") { Width = 100, Height = 50 }); doc.PageHeader.Add(new TextBlock("This document is intended for internal use only") { TextIndent = 20 }); doc.PageHeader.Add(new Hr()); // Fill the footer section doc.PageFooter.Class = "pageFooter"; doc.PageFooter.Add(new Hr()); doc.PageFooter.Add(new TextBlock((ctx) => string.Format("Page {0} from ", ctx.CurrentPage + 1))); doc.PageFooter.Add(new PageCount(3) { Display = Display.Inline }); // Add pages for (int i = 0; i < 2; ++i) { doc.Add(new TextBlock("This is header and footer generation pdf file.") { Class = "content" }); doc.Add(new PageBreak()); } // Generate PDF using (Stream stream = File.Create("out.pdf")) { doc.Write(stream, resourceManager); } Process.Start("out.pdf"); $vbLabelText $csharpLabel The output is as follows: Apitron Header and Footer 5. Digitally Sign PDF 5.1. Using IronPDF One of the most important PDF processing features is the ability to sign a PDF document digitally. IronPDF provides all the tools necessary to do this. using IronPdf; // Cryptographically sign an existing PDF in 1 line of code! new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf"); /***** Advanced example for more control *****/ // 1. Create a PDF var Renderer = new IronPdf.ChromePdfRenderer(); var doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>"); // 2. Create a Signature. // You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader. var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456"); // 3. Handwritten signature graphic signature.LoadSignatureImageFromFile("handwriting.png"); // 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used doc.SignPdfWithDigitalSignature(signature); // 5. The PDF is not signed until saved to file, stream or byte array. doc.SaveAs("signed.pdf"); using IronPdf; // Cryptographically sign an existing PDF in 1 line of code! new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf"); /***** Advanced example for more control *****/ // 1. Create a PDF var Renderer = new IronPdf.ChromePdfRenderer(); var doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>"); // 2. Create a Signature. // You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader. var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456"); // 3. Handwritten signature graphic signature.LoadSignatureImageFromFile("handwriting.png"); // 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used doc.SignPdfWithDigitalSignature(signature); // 5. The PDF is not signed until saved to file, stream or byte array. doc.SaveAs("signed.pdf"); $vbLabelText $csharpLabel 5.2 Using Apitron PDF Kit Stamping a signature to a PDF using Apitron PDF Kit is both a lengthy and technical process. static void Main(string[] args) { string fileName = "signedTwice.pdf"; using (Stream stream = File.Create(fileName)) { FlowDocument doc = new FlowDocument() { Margin = new Thickness(10) }; doc.Add(new TextBlock("Signed using Apitron PDF Kit for .NET")); doc.Write(stream, new ResourceManager()); } // Save Sign(fileName, "../../data/certs/JohnDoe.pfx", "password", "../../data/images/signatureImage.png", new Boundary(10, 750, 110, 800)); } // Implementation of Sign Method private static void Sign(string pathToDocument, string pathToCertificate, string password, string pathToSignatureImage, Boundary signatureViewLocation) { // Open existing document and sign once using (Stream inputStream = new FileStream(pathToDocument, FileMode.Open, FileAccess.ReadWrite)) { using (FixedDocument doc = new FixedDocument(inputStream)) { string imageResourceId = Guid.NewGuid().ToString("N"); string signatureFieldId = Guid.NewGuid().ToString("N"); // Register signature image resource doc.ResourceManager.RegisterResource(new Image(imageResourceId, pathToSignatureImage)); // Create first signature field and initialize it using a stored certificate SignatureField signatureField = new SignatureField(signatureFieldId); using (Stream signatureDataStream = File.OpenRead(pathToCertificate)) { signatureField.Signature = Signature.Create(new Pkcs12Store(signatureDataStream, password)); } // Add signature fields to the document doc.AcroForm.Fields.Add(signatureField); // Create first signature view using the image resource SignatureFieldView signatureView = new SignatureFieldView(signatureField, signatureViewLocation); signatureView.ViewSettings.Graphic = Graphic.Image; signatureView.ViewSettings.GraphicResourceID = imageResourceId; signatureView.ViewSettings.Description = Description.None; // Add views to page annotations collection doc.Pages[0].Annotations.Add(signatureView); // Save as incremental update doc.Save(); } } } static void Main(string[] args) { string fileName = "signedTwice.pdf"; using (Stream stream = File.Create(fileName)) { FlowDocument doc = new FlowDocument() { Margin = new Thickness(10) }; doc.Add(new TextBlock("Signed using Apitron PDF Kit for .NET")); doc.Write(stream, new ResourceManager()); } // Save Sign(fileName, "../../data/certs/JohnDoe.pfx", "password", "../../data/images/signatureImage.png", new Boundary(10, 750, 110, 800)); } // Implementation of Sign Method private static void Sign(string pathToDocument, string pathToCertificate, string password, string pathToSignatureImage, Boundary signatureViewLocation) { // Open existing document and sign once using (Stream inputStream = new FileStream(pathToDocument, FileMode.Open, FileAccess.ReadWrite)) { using (FixedDocument doc = new FixedDocument(inputStream)) { string imageResourceId = Guid.NewGuid().ToString("N"); string signatureFieldId = Guid.NewGuid().ToString("N"); // Register signature image resource doc.ResourceManager.RegisterResource(new Image(imageResourceId, pathToSignatureImage)); // Create first signature field and initialize it using a stored certificate SignatureField signatureField = new SignatureField(signatureFieldId); using (Stream signatureDataStream = File.OpenRead(pathToCertificate)) { signatureField.Signature = Signature.Create(new Pkcs12Store(signatureDataStream, password)); } // Add signature fields to the document doc.AcroForm.Fields.Add(signatureField); // Create first signature view using the image resource SignatureFieldView signatureView = new SignatureFieldView(signatureField, signatureViewLocation); signatureView.ViewSettings.Graphic = Graphic.Image; signatureView.ViewSettings.GraphicResourceID = imageResourceId; signatureView.ViewSettings.Description = Description.None; // Add views to page annotations collection doc.Pages[0].Annotations.Add(signatureView); // Save as incremental update doc.Save(); } } } $vbLabelText $csharpLabel The output is pretty much the same for the libraries. You can clearly see that IronPDF is easier and more convenient for manipulating PDF content. The output PDF is signed with the certificate and signature printed on it. Using Bootstrap 5 with IronPDF for Portfolio Galleries IronPDF's Chrome V8 rendering engine fully supports modern Bootstrap 5 components, enabling you to generate visually stunning PDF documents with professional portfolio galleries. This example demonstrates grid layouts, hover effects, gradient overlays, and category badges - features that would be challenging to implement with traditional PDF libraries like Apitron PDF SDK. using IronPdf; var renderer = new ChromePdfRenderer(); string portfolioGallery = @" <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> <style> .gallery-item { position: relative; overflow: hidden; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .gallery-item img { width: 100%; height: 250px; object-fit: cover; transition: transform 0.3s; } .gallery-item:hover img { transform: scale(1.1); } .gallery-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); padding: 20px; color: white; } .category-badge { position: absolute; top: 10px; right: 10px; } @media print { .gallery-item { page-break-inside: avoid; } } </style> </head> <body> <div class='container py-5'> <div class='text-center mb-5'> <h1>Design Portfolio</h1> <p class='lead text-muted'>Showcase of PDF Document Designs</p> </div> <div class='row mb-4'> <div class='col-12'> <div class='btn-group' role='group'> <button class='btn btn-primary'>All Projects</button> <button class='btn btn-outline-primary'>Invoices</button> <button class='btn btn-outline-primary'>Reports</button> <button class='btn btn-outline-primary'>Forms</button> <button class='btn btn-outline-primary'>Certificates</button> </div> </div> </div> <div class='row g-4'> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-primary category-badge'>Invoice</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #667eea 0%, #764ba2 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📄</text> </svg> <div class='gallery-overlay'> <h5>Professional Invoice Template</h5> <small>Corporate billing with itemized details</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-success category-badge'>Report</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📊</text> </svg> <div class='gallery-overlay'> <h5>Analytics Dashboard Report</h5> <small>Data visualization and metrics</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-warning category-badge'>Certificate</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>🏆</text> </svg> <div class='gallery-overlay'> <h5>Award Certificate</h5> <small>Professional achievement recognition</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-info category-badge'>Form</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #fa709a 0%, #fee140 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📝</text> </svg> <div class='gallery-overlay'> <h5>Application Form</h5> <small>Multi-page data collection</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-danger category-badge'>Invoice</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #30cfd0 0%, #330867 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>💰</text> </svg> <div class='gallery-overlay'> <h5>Payment Receipt</h5> <small>Transaction confirmation document</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-secondary category-badge'>Report</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📈</text> </svg> <div class='gallery-overlay'> <h5>Financial Statement</h5> <small>Quarterly performance overview</small> </div> </div> </div> </div> <div class='text-center mt-5'> <p class='text-muted'>All templates rendered with IronPDF's Chromium engine</p> <div class='d-flex justify-content-center gap-2'> <span class='badge bg-primary'>Bootstrap 5</span> <span class='badge bg-success'>Responsive</span> <span class='badge bg-info'>Print-Ready</span> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(portfolioGallery); pdf.SaveAs("portfolio-gallery.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); string portfolioGallery = @" <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> <style> .gallery-item { position: relative; overflow: hidden; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .gallery-item img { width: 100%; height: 250px; object-fit: cover; transition: transform 0.3s; } .gallery-item:hover img { transform: scale(1.1); } .gallery-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); padding: 20px; color: white; } .category-badge { position: absolute; top: 10px; right: 10px; } @media print { .gallery-item { page-break-inside: avoid; } } </style> </head> <body> <div class='container py-5'> <div class='text-center mb-5'> <h1>Design Portfolio</h1> <p class='lead text-muted'>Showcase of PDF Document Designs</p> </div> <div class='row mb-4'> <div class='col-12'> <div class='btn-group' role='group'> <button class='btn btn-primary'>All Projects</button> <button class='btn btn-outline-primary'>Invoices</button> <button class='btn btn-outline-primary'>Reports</button> <button class='btn btn-outline-primary'>Forms</button> <button class='btn btn-outline-primary'>Certificates</button> </div> </div> </div> <div class='row g-4'> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-primary category-badge'>Invoice</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #667eea 0%, #764ba2 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📄</text> </svg> <div class='gallery-overlay'> <h5>Professional Invoice Template</h5> <small>Corporate billing with itemized details</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-success category-badge'>Report</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📊</text> </svg> <div class='gallery-overlay'> <h5>Analytics Dashboard Report</h5> <small>Data visualization and metrics</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-warning category-badge'>Certificate</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>🏆</text> </svg> <div class='gallery-overlay'> <h5>Award Certificate</h5> <small>Professional achievement recognition</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-info category-badge'>Form</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #fa709a 0%, #fee140 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📝</text> </svg> <div class='gallery-overlay'> <h5>Application Form</h5> <small>Multi-page data collection</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-danger category-badge'>Invoice</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #30cfd0 0%, #330867 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>💰</text> </svg> <div class='gallery-overlay'> <h5>Payment Receipt</h5> <small>Transaction confirmation document</small> </div> </div> </div> <div class='col-md-4'> <div class='gallery-item'> <span class='badge bg-secondary category-badge'>Report</span> <svg width='100%' height='250' style='background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%)'> <text x='50%' y='50%' text-anchor='middle' fill='white' font-size='48' opacity='0.3'>📈</text> </svg> <div class='gallery-overlay'> <h5>Financial Statement</h5> <small>Quarterly performance overview</small> </div> </div> </div> </div> <div class='text-center mt-5'> <p class='text-muted'>All templates rendered with IronPDF's Chromium engine</p> <div class='d-flex justify-content-center gap-2'> <span class='badge bg-primary'>Bootstrap 5</span> <span class='badge bg-success'>Responsive</span> <span class='badge bg-info'>Print-Ready</span> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(portfolioGallery); pdf.SaveAs("portfolio-gallery.pdf"); $vbLabelText $csharpLabel This code generates a professional PDF portfolio with a responsive grid layout, visual category badges, gradient overlays, and hover effects. The Chrome rendering engine preserves all Bootstrap styling, CSS Grid layouts, and custom CSS properties - capabilities that traditional PDF libraries struggle to replicate. Key Advantages vs Apitron PDF SDK: Native Bootstrap 5 support without conversion CSS Grid and Flexbox layouts render perfectly Gradient backgrounds and modern CSS effects Simpler code with higher-quality output For a complete guide on Bootstrap PDF generation, see HTML to PDF Bootstrap Guide. 6. Pricing and Licensing IronPDF Pricing and Licensing IronPDF is a C# library that is free to use for development and can be licensed for commercial use any time. Project licenses for single developers, agencies, and multinational organizations, as well as for SaaS and OEM redistribution, are all accessible. All licenses provide a 30-day money-back guarantee, one year support and upgrades, development/staging/production validity, and a perpetual license (one-time purchase). The Lite package is available for $799 with no recurring expenses. More details and assistance for choosing the best license are available on the IronPDF product licensing page. IronPDF Licensing Apitron PDF Kit Pricing and Licensing There are two licensing schemes currently in use - Modern and Legacy. If you already have a license, then the legacy license scheme remains active for you until your license expires. Afterward, you have to contact customer support for the transition. The modern licensing scheme applies to you only if you are a new customer. Under the modern scheme, there are three licensing tiers: Evaluation - three-month evaluation period to use a fully functional product. Just download the package from NuGet and start developing. Community - Use fully functional products without any fees in your non-commercial projects. Approval is required. Commercial - any use case not described above. Pricing depends on the usage pattern. Conclusion The IronPDF library creates pixel-perfect PDFs from document types like HTML, JS, CSS, JPG, PNG, GIF, and SVG. The Chromium engine helps to render the HTML files or URLs to give perfect PDFs as output. Apitron lets you create PDF using a Fixed layout API, implemented to be 100% PDF specification compatible. As a style-driven content generation method that is similar to HTML and CSS, this fixed-layout API provides you with the ability to create stunning reports, bills, catalogues, and more in minutes. It also supports the creation of XML templates. Licensing prices for Apitron PDF are not available on their website. You have to contact support and get a quote based on your usage. On the other hand, IronPDF has a very clear licensing package displayed on their website. This makes IronPDF stand out from its competitors and allows users to choose wisely according to their needs. With IronPDF, you can work with PDF files more easily than with Apitron PDF. IronPDF allows its users to write fewer lines of code for challenging PDF jobs. IronPDF provides multiple methods to produce PDFs from multiple file types, while Apitron can only convert XML documents to PDF documents. A perfect output is achieved without adding any technical options in IronPDF as compared to Apitron. All Iron Software customers have the option of purchasing all five of the company's products for the price of two of them. Try the free, 30-day trial of IronPDF to test its full functionality. Purchase the full suite of Iron Software products at IronSoftware.com. 참고해 주세요Apitron PDF Kit is a registered trademark of its respective owner. This site is not affiliated with, endorsed by, or sponsored by Apitron PDF Kit. All product names, logos, and brands are property of their respective owners. Comparisons are for informational purposes only and reflect publicly available information at the time of writing. 자주 묻는 질문 C#에서 HTML을 PDF로 변환하려면 어떻게 해야 하나요? IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 RenderHtmlFileAsPdf를 사용하여 HTML 파일을 PDF로 변환할 수도 있습니다. IronPDF는 PDF 생성을 위해 어떤 기능을 제공하나요? IronPDF는 HTML, CSS, JavaScript에서 PDF 생성, URL 로드, 텍스트 및 그래픽 추출, PDF 병합 등을 지원합니다. .NET Core, Azure, AWS, Docker, Linux 및 Windows와 호환됩니다. C#으로 PDF에 디지털 서명을 하려면 어떻게 해야 하나요? IronPDF를 사용하면 몇 줄의 코드와 통합할 수 있는 PDF 서명 인증서를 사용하여 PDF에 디지털 서명을 할 수 있습니다. IronPDF의 설치 옵션은 무엇인가요? IronPDF는 NuGet 패키지 관리자, 개발자 명령 프롬프트를 사용하거나 NuGet 패키지 또는 IronPDF .DLL 라이브러리를 직접 다운로드하여 설치할 수 있습니다. IronPDF에 사용할 수 있는 무료 버전이 있나요? 예, IronPDF는 상용 라이선스와 함께 무료 개발 버전을 제공합니다. 30일 환불 보장 정책을 포함한 자세한 가격 정보는 웹사이트에서 확인할 수 있습니다. Apitron PDF Kit는 HTML에서 PDF로 변환을 어떻게 처리하나요? Apitron PDF Kit는 HTML에서 PDF로의 직접 변환을 지원하지 않지만 XML 파일을 PDF로 변환할 수 있습니다. Apitron PDF Kit의 뛰어난 기능은 무엇인가요? Apitron PDF Kit를 사용하면 이미지, 그림, 텍스트 추가, 문서 서명, PDF 병합 또는 분할 등 포괄적인 PDF 조작이 가능합니다. 하지만 HTML을 PDF로 직접 변환하는 기능은 없습니다. C#으로 PDF에 머리글과 바닥글을 추가하려면 어떻게 해야 하나요? IronPDF를 사용하면 AddTextHeader 및 AddTextFooter와 같은 메서드를 사용하여 PDF에 머리글과 바닥글을 쉽게 추가할 수 있습니다. Apitron PDF Kit에는 어떤 라이선스 옵션을 사용할 수 있나요? Apitron PDF Kit는 3개월의 평가 기간과 비상업적 프로젝트를 위한 커뮤니티 라이선스를 제공합니다. 상업적 용도로 사용하려면 직접 문의하여 견적을 받아야 합니다. .NET 개발에 더 사용하기 쉬운 PDF 라이브러리는 무엇인가요? IronPDF는 일반적으로 .NET 개발에 사용하기 더 쉬우며, Apitron PDF Kit에 비해 더 간단한 API를 제공하고 복잡한 작업에 필요한 코드 줄이 적습니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 관련 기사 게시됨 1월 20, 2026 Generate PDF Using iTextSharp in MVC vs IronPDF: A Complete Comparison ITextSharp와 IronPDF를 사용하여 ASP.NET MVC에서 PDF 생성 방법을 비교하세요. 어떤 라이브러리가 더 나은 HTML 렌더링과 더 쉬운 구현을 제공하는지 알아보세요. 더 읽어보기 업데이트됨 1월 7, 2026 Ghostscript GPL vs IronPDF: Technical Comparison Guide 고스트스크립트 GPL과 IronPDF의 주요 차이점을 알아보세요. AGPL 라이선스와 상용, 명령줄 스위치와 네이티브 .NET API, HTML-PDF 기능을 비교해 보세요. 더 읽어보기 업데이트됨 1월 21, 2026 Which ASP.NET PDF Library Offers the Best Value for .NET Core Development? ASP.NET Core 애플리케이션을 위한 최고의 PDF 라이브러리를 찾아보세요. IronPDF의 Chrome 엔진과 Aspose 및 Syncfusion의 대안을 비교해 보세요. 더 읽어보기 Telerik HTML to PDF Generator vs IronPDFIronPDF vs GroupDocs: Which PDF Lib...
게시됨 1월 20, 2026 Generate PDF Using iTextSharp in MVC vs IronPDF: A Complete Comparison ITextSharp와 IronPDF를 사용하여 ASP.NET MVC에서 PDF 생성 방법을 비교하세요. 어떤 라이브러리가 더 나은 HTML 렌더링과 더 쉬운 구현을 제공하는지 알아보세요. 더 읽어보기
업데이트됨 1월 7, 2026 Ghostscript GPL vs IronPDF: Technical Comparison Guide 고스트스크립트 GPL과 IronPDF의 주요 차이점을 알아보세요. AGPL 라이선스와 상용, 명령줄 스위치와 네이티브 .NET API, HTML-PDF 기능을 비교해 보세요. 더 읽어보기
업데이트됨 1월 21, 2026 Which ASP.NET PDF Library Offers the Best Value for .NET Core Development? ASP.NET Core 애플리케이션을 위한 최고의 PDF 라이브러리를 찾아보세요. IronPDF의 Chrome 엔진과 Aspose 및 Syncfusion의 대안을 비교해 보세요. 더 읽어보기