<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohammed Ibrahim</title>
    <description>The latest articles on DEV Community by Mohammed Ibrahim (@mohammedibrahimlj).</description>
    <link>https://dev.to/mohammedibrahimlj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F929119%2F2eaf02ac-0262-4e86-bbb6-382859ec1e74.png</url>
      <title>DEV Community: Mohammed Ibrahim</title>
      <link>https://dev.to/mohammedibrahimlj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohammedibrahimlj"/>
    <language>en</language>
    <item>
      <title>Ionic 5 Capacitor and PDF library</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Mon, 01 Dec 2025 09:50:26 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/ionic-5-capacitor-and-pdf-library-1gb3</link>
      <guid>https://dev.to/mohammedibrahimlj/ionic-5-capacitor-and-pdf-library-1gb3</guid>
      <description>&lt;h2&gt;
  
  
  What is &lt;a href="https://ionicframework.com/" rel="noopener noreferrer"&gt;Ionic&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;Ionic is a powerful open-source framework for building high-performance, modern mobile applications using familiar web technologies such as HTML, CSS, and JavaScript. Rich in prebuilt UI components, with easy integration with frameworks like Angular, React, and Vue, Ionic enables developers to build cross-platform, visually attractive apps from one code base.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwrauz1rijeanrri2ty1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwrauz1rijeanrri2ty1.png" alt=" " width="800" height="356"&gt;&lt;/a&gt;&lt;br&gt;
Incorporating a Capacitor in your Ionic app will get you working with device-specific functions such as the camera, GPS, and storage, easily fitting it for hybrid mobile development and Progressive Web Apps. Whether you build for Android or iOS, or the web, Ionic represents the flexibility and the tools to deliver fast, consistent, user-friendly applications.&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of Ionic
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cross-platform development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ionic allows developers to create applications for Android devices, iOS, and the web with just one codebase. Since the work has to be done only once, it cuts down on development time. Further, this reduces the cost, making maintenance easier, too, since updates and bug fixes need to be implemented only once. In fact, Ionic's hybrid approach to targeting multiple platforms makes things a lot easier with less effort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built Using Web Technologies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ionic follows standard web technologies like HTML, CSS, and JavaScript. Therefore, it's more friendly for web developers to enter the mobile app development space. It means that you don't need to learn native languages like Java, Swift, or Kotlin. Therefore, Ionic is quite accessible and friendly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rich Collection of UI Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the framework's core is an extremely powerful set of prebuilt UI components for mobile-optimized design patterns, including buttons, tabs, lists, modals, side menus, and navigation that allow developers to create visually appealing, responsive interfaces without having to start from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration with Popular Front-end Frameworks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ionic easily integrates with the most popular frameworks, including Angular, React, and Vue. This level of flexibility will enable developers to choose an ecosystem that best fits their needs and gives them immediate access to powerful tools, patterns, and architecture out of the box when building mobile applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native Functionality Through Capacitor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ionic leverages Capacitor, the modern native runtime that provides application developers with an easy API-based access to native device features like the Camera, Geolocation, Filesystem, Notifications, and Sensors. This bridges the gap between web and native, empowering the app to act just like a native app but still be built with web technologies.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06x8h5dwmlvlv0wym1fa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06x8h5dwmlvlv0wym1fa.png" alt=" " width="800" height="208"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Install Ionic CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Follow below and enter the code on the command prompt. To use the code, we need Node.js to be installed on the machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g @ionic/cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code helps us download and install the Ionic CLI on the machine&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0szz6fsfimtde4opfq2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0szz6fsfimtde4opfq2c.png" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Create a new Ionic + Angular project&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ionic start NEWDEMO blank --type=angular
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we are going to create a new web application using Ionic with Angular. This will create an Angular project on the given path.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgdxw73pg8futmfjoqk8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgdxw73pg8futmfjoqk8.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
Open the project and run it in the browser&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd myApp
ng serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above line of code allows us to set the path of the project and run the newly created Ionic Angular project&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;src/app/ — Angular modules, components, pages, routing, assets.&lt;/p&gt;

&lt;p&gt;src/index.html, src/styles.css — global styles.&lt;/p&gt;

&lt;p&gt;ionic.config.json — Ionic config.&lt;/p&gt;

&lt;p&gt;package.json — scripts/deps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0mj28ycejmuntinzssop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0mj28ycejmuntinzssop.png" alt=" " width="511" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://ironpdf.com/nodejs/" rel="noopener noreferrer"&gt;IronPDF&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;The IronPDF Node.js Package is a powerful library for generating, editing, and converting PDFs. It grants software developers a wide range of programming-based PDF-related functionalities, allows working with already existing PDFs, and easily converts HTML into PDF. IronPDF is an efficient solution for applications requiring dynamic creation and processing of PDFs since it offers a flexible and easy way to generate professional-grade PDF documents.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkafxndyzq0nv6rdfldpz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkafxndyzq0nv6rdfldpz.png" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of IronPDF
&lt;/h2&gt;

&lt;p&gt;The following are some of the main features of IronPDF:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convert HTML to PDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF will convert your HTML file data into PDF documents. This allows beautifully styled PDF publications to be generated from web content using modern HTML5, CSS3, and JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF Creation and Editing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF allows developers to generate new PDF documents programmatically by adding text, pictures, tables, and more. It also allows for opening and editing existing PDF documents. You can edit the content or add to the content of a PDF and remove specific sections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced Styling and Layout&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use CSS for styling the content in the user's browser in PDFs. This includes support for advanced layouts, fonts, colors, and other design elements. Render HTML material that can be used with JavaScript to make dynamic content in PDFs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl56nssj8cs16g0ajsa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl56nssj8cs16g0ajsa3.png" alt=" " width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install the IronPDF package
&lt;/h2&gt;

&lt;p&gt;Install the required IronPDF packages in Node.js, which enables IronPDF functionality with the use of the Node Package Manager.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @ironsoftware/ironpdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Integrate IronPDF with Angular Ionic
&lt;/h2&gt;

&lt;p&gt;Below is the sample node js api code, which helps us to create the PDF using IronPDF&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express');
const IronPdf = require("@ironsoftware/ironpdf");
var cors = require('cors')
const app = express();
app.use(cors());
    const options = IronPdf.IronPdfGlobalConfig.getConfig();
    // Set the license key for IronPDF
    options.licenseKey = "";
// Route to handle PDF generation
app.post('/generate-pdf', async (req, res) =&amp;gt; {
  const data = req.body;
  // HTML content to be converted into PDF
  const htmlContent = `&amp;lt;h1&amp;gt;Hello, World1&amp;lt;/h1&amp;gt;`;
  try {
    // Create an instance of IronPDF
    const document=IronPdf.PdfDocument;
    // Convert HTML to PDF
    const pdf = await document.fromHtml(htmlContent);
    // save the pdf as buffer
    let pdfbuff= await pdf.saveAsBuffer();
    // Set response headers to serve the PDF
    res.setHeader('Content-Type', 'application/pdf');
    res.setHeader('Content-Disposition', 'attachment; filename=generated.pdf');
    // Send the PDF as the response
    res.send(pdfbuff);
  } catch (error) {
    console.error('Error generating PDF:', error);
    res.status(500).send('Error generating PDF');
  }
});

// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () =&amp;gt; {
  console.log(`Server is running on port ${PORT}`);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the above code is hit from the Iconic, it will create a PDF from the given &lt;a href="https://ironpdf.com/nodejs/examples/using-html-to-create-a-pdf/" rel="noopener noreferrer"&gt;HTML string&lt;/a&gt; content, and then it will convert the PDF into a buffer and send it to the Ionic application or any other application that calls the API function.&lt;/p&gt;

&lt;p&gt;Below is the sample code from the Ionic Angular application&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home.html&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ion-header [translucent]="true"&amp;gt;
  &amp;lt;ion-toolbar&amp;gt;
    &amp;lt;ion-title&amp;gt;
      PDF Creater
    &amp;lt;/ion-title&amp;gt;
  &amp;lt;/ion-toolbar&amp;gt;
&amp;lt;/ion-header&amp;gt;

&amp;lt;ion-content [fullscreen]="true"&amp;gt;
  &amp;lt;ion-header collapse="condense"&amp;gt;
    &amp;lt;ion-toolbar&amp;gt;
      &amp;lt;ion-title size="large"&amp;gt;PDF Creater&amp;lt;/ion-title&amp;gt;
    &amp;lt;/ion-toolbar&amp;gt;
  &amp;lt;/ion-header&amp;gt;

  &amp;lt;div id="container"&amp;gt;
&amp;lt;ion-button size="default" (click)="makePdf()"&amp;gt;Create PDF&amp;lt;/ion-button&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/ion-content&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code allows us to create an Ionic button that allows us to trigger the make PDF function when the user clicks the button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05qzhwoaqnk4gy3izivf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05qzhwoaqnk4gy3izivf.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;home.page.ts&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Component } from '@angular/core';
import { IonHeader, IonToolbar, IonTitle, IonContent,IonButton } from '@ionic/angular/standalone';
import { default as axios } from 'axios';
import { Buffer } from 'buffer';
@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
  imports: [IonHeader, IonToolbar, IonTitle, IonContent,IonButton],
})
export class HomePage {
  constructor() {}
  async makePdf () {
    axios.post('http://localhost:3000/generate-pdf',)
  .then(function (response) {
  const a = document.createElement('a');
  a.target = '_self';
  const fileName = 'Demo_Pdf.pdf';
  const blob = new Blob([Buffer.from(response.data)], { type: 'application/pdf' });
  const url= window.URL.createObjectURL(blob);
  a.href = url;
  a.download = fileName;
  document.body.appendChild(a);
  a.click();
  }).catch(function (error) {
    console.log(error);
  });
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above typescript code shows that when the click event is triggered from the UI page, it will trigger the MakePDF function. This function helps us call the Node.js API with the help of the AXIOS library. API will generate the PDF file using the IronPDF library and send the PDF file in the HTTP response.&lt;/p&gt;

&lt;p&gt;The typescript captures the HTTP response data and converts it into a blob using the blob class. Later, it can be converted or saved as a PDF using the createObjectURL function. This code allows us to download the PDF file and save it in the default file path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lbe7n4soq96xsnkgoap.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lbe7n4soq96xsnkgoap.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is the PDF file generated from the above code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdmehr7hmkreht8tna6u3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdmehr7hmkreht8tna6u3.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, the use of Ionic with IronPDF for Node.js helps modern applications requiring dynamic, high-quality PDF generation. While Ionic supplies the rapid, cross-platform mobile UI, IronPDF brings robust server-side PDF processing with precise HTML to PDF rendering, form handling, and document manipulation.&lt;/p&gt;

&lt;p&gt;By using the Ionic framework as a frontend to a Node.js backend driven by IronPDF, developers can generate invoices, reports, receipts, and certificates with professional precision. In such an architecture, a mobile app remains lightweight but ensures secure, scalable, and reliable workflows for PDFs. All in all, Ionic and IronPDF create an effective ecosystem for building modern document-intensive mobile applications. &lt;/p&gt;

&lt;p&gt;IronPDF is free for the developer and has a paid version for commercial purposes. To know more about the IronPDF licensing, check &lt;a href="https://ironpdf.com/nodejs/licensing/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. And to know more about the other IronSoftware product, check here.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>node</category>
      <category>angular</category>
      <category>ionic</category>
    </item>
    <item>
      <title>Angular PDF Libraries: Free &amp; Paid Tools (In-Depth Developer Guide)</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Thu, 20 Nov 2025 07:03:00 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/angular-pdf-libraries-free-paid-tools-in-depth-developer-guide-59fl</link>
      <guid>https://dev.to/mohammedibrahimlj/angular-pdf-libraries-free-paid-tools-in-depth-developer-guide-59fl</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://angular.dev/" rel="noopener noreferrer"&gt;Angular&lt;/a&gt; PDF libraries provide a powerful set of features that enable developers to create, display, and manipulate PDF documents, which include an Angular PDF viewer/editor, directly within an Angular application. Which helps us to create PDF files, being a common format for reports, invoices, forms, and downloadable content, their implementation has become an indispensable part of today's web development.&lt;/p&gt;

&lt;p&gt;Since Angular is first and foremost a frontend framework running in the browser, heavy file operations are not natively supported. The developers use third-party PDF libraries designed to run efficiently either on the client or server to meet the needs of users. With the use of PDF libraries, developers achieve various tasks like HTML to PDF conversion, PDF viewing, PDF annotation, search functionality, form filling, and text extraction from PDFs.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://pdfmake.org/#" rel="noopener noreferrer"&gt;Pdfmake&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;pdfmake is an open-source client-side JavaScript library for generating PDFs either in the browser or on the server side with a Node.js application. The library allows the developer to create a PDF consisting of multiple PDF pages through a declarative document definition object, which is a JSON-like structure that describes the content, layout, and style of a PDF.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmypnzws7ead8f7n76uw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmypnzws7ead8f7n76uw.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
pdfMake works with Angular, React, Vue, and any other web framework to dynamically generate reports, invoices, forms, and printable documents. This is a pure client-side JavaScript library and, as such, does not need or rely on any external server or backend for PDF generation, including the latest versions of browsers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of PDFMake&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully free to use under the MIT License.&lt;/li&gt;
&lt;li&gt;Can generate PDFs directly in the browser.&lt;/li&gt;
&lt;li&gt;Works both in Node.js (server-side) and browser environments.&lt;/li&gt;
&lt;li&gt;Great for small to medium documents. which renders fast.&lt;/li&gt;
&lt;li&gt;Content definition and layout based on easy JSON-based structure: e.g., text, tables, images.&lt;/li&gt;
&lt;li&gt;Allows for the following stylings: font, color, alignment, and column.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of PDFMake&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does not have advanced styling like gradients, shadows, and modern CSS layouts.&lt;/li&gt;
&lt;li&gt;PDFMake cannot render a webpage directly.&lt;/li&gt;
&lt;li&gt;JSON definitions for multi-page or complex layouts tend to get very long and are unwieldy to maintain.&lt;/li&gt;
&lt;li&gt;Generation of big or image-heavy PDFs can be extremely slow or may be heavily memory-intensive.&lt;/li&gt;
&lt;li&gt;No support for advanced PDF features like form fields, annotations, digital signatures, etc.&lt;/li&gt;
&lt;li&gt;Does not directly convert HTML or CSS to PDF. Content needs to be defined in JSON manually.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca4bad9gclow2j02142x.png" alt=" " width="800" height="332"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://parall.ax/products/jspdf" rel="noopener noreferrer"&gt;jsPDF&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;jsPDF is an open-source JavaScript library that makes generating PDF documents directly in browsers or Node.js environments. It helps us to load and create a PDF viewer component with JavaScript, which is especially useful for tasks like client-side PDF generation and viewing PDFs in Angular, React, and Vue.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz39dxxivfg8ryq81u95n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz39dxxivfg8ryq81u95n.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
jsPDF is created by Parallax, which is one of the most used libraries for generating PDF documents designed for front-end applications. It provides an option to add text, images, tables, shapes, and custom graphics using JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of jsPDF&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free to use for personal and commercial purposes, licensed under the MIT License.&lt;/li&gt;
&lt;li&gt;Can create PDFs in the browser without a back-end server.&lt;/li&gt;
&lt;li&gt;Compact size allows it to be easily included in web projects.&lt;/li&gt;
&lt;li&gt;Developers can draw text, lines, rectangles, and embed images in various formats: PNG, JPEG.&lt;/li&gt;
&lt;li&gt;It supports plugins, which include autoTable for easy generation of tables in PDF.&lt;/li&gt;
&lt;li&gt;Works both in browser and Node.js environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of jsPDF&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't fight with fonts, color, or positioning for intricate design or responsive layout.&lt;/li&gt;
&lt;li&gt;It cannot natively convert existing web pages.&lt;/li&gt;
&lt;li&gt;Generated PDFs may not appear just like the source content, especially when that content has very complex designs.&lt;/li&gt;
&lt;li&gt;Large or high-resolution images can lead to memory issues or a poor quality output.&lt;/li&gt;
&lt;li&gt;Slower to generate multi-page or image-heavy PDFs in the browser.&lt;/li&gt;
&lt;li&gt;It cannot accurately turn complex HTML pages or modern CSS layouts into PDF format.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvpmcpm2rp0k59zrzbg9.png" alt=" " width="800" height="304"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://pdf-lib.js.org/" rel="noopener noreferrer"&gt;PDF-LIB&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;PDF-LIB is a modern, open-source JavaScript library that enables you to create and edit PDF documents in pure JavaScript, whether in the browser or in Node.js. Unlike libraries like jsPDF or pdfmake, which are designed with the primary purpose of generating PDFs in mind, the focus of PDF-LIB is on manipulating existing PDFs and enhancing their capabilities, such as filling out forms, adding annotations, merging pages, or inserting text and images into preexisting files.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecs6ay0e3oeoldfm1b6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecs6ay0e3oeoldfm1b6u.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
PDF-LIB is a dependency-free, lightweight library that makes use of pure TypeScript, running with no native code or external rendering pdfs engines. It’s used by many front-end applications, such as Angular, React, or Vue, and back-end Node.js services to enable users to control and navigate for document customization and automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of PDF-LIB&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MIT-licensed, freely usable for any of your projects, whether personal or commercial.&lt;/li&gt;
&lt;li&gt;Works seamlessly in browsers and Node.js environments.&lt;/li&gt;
&lt;li&gt;Enables modification of existing documents by inserting text, images, and pages without regeneration of the whole file.&lt;/li&gt;
&lt;li&gt;Does not rely on native binaries or Chromium engines.&lt;/li&gt;
&lt;li&gt;It is smaller in size and more efficient for handling PDF operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of PDF-LIB&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It cannot render web pages or HTML/CSS directly to PDF.&lt;/li&gt;
&lt;li&gt;Still relies on manual definition of text and image placements by the designers, which can be hard when designing complex layouts.&lt;/li&gt;
&lt;li&gt;Does not support advanced styling with CSS, fonts, or automatic text wrapping.&lt;/li&gt;
&lt;li&gt;Lacking in browser-level accuracy in rendering.&lt;/li&gt;
&lt;li&gt;Editing or merging very large PDFs can be slow or memory-intensive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/VadimDez/ng2-pdf-viewer" rel="noopener noreferrer"&gt;ng2-pdf-viewer&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;ng2-pdf-viewer is one of the most popular Angular libraries for rendering PDF documents straight inside an Angular application. This library wraps Mozilla's PDF.js library, which is one of the most powerful browser PDF rendering engines.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j6utrelqlzm0wz7y7v7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j6utrelqlzm0wz7y7v7.png" alt=" " width="800" height="801"&gt;&lt;/a&gt;&lt;br&gt;
This library is not for creating or editing PDFs but rather for providing a simple, fully customizable way to display, zoom, and search PDF documents and navigate them inside Angular components. Some of the common use cases that developers make for ng2-pdf-viewer include embedding PDF reports, invoices, forms, and documents within dashboards or client portals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of ng2-pdf-viewer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to install and integrate into an Angular component.&lt;/li&gt;
&lt;li&gt;Provides reliable, high-quality PDF rendering right in the browser.&lt;/li&gt;
&lt;li&gt;Zoom, rotation, search, pagination, and text selection.&lt;/li&gt;
&lt;li&gt;It works completely in the browser, with no back-end server needed.&lt;/li&gt;
&lt;li&gt;Ideal for applications that only need to display PDFs and are not responsible for their creation.&lt;/li&gt;
&lt;li&gt;Enables the developer to provide a custom toolbar, controls, or features for navigating a PDF.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of ng2-pdf-viewer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cannot create, edit, merge, or modify PDFs.&lt;/li&gt;
&lt;li&gt;Slow rendering or lag when working on large or highly image-laden documents.&lt;/li&gt;
&lt;li&gt;Cannot convert HTML content to PDF format.&lt;/li&gt;
&lt;li&gt;PDF rendering may be slower or not quite as smooth on mobile devices.&lt;/li&gt;
&lt;li&gt;Functionality is limited to what PDF.js supports. Does not support annotation, form filling, or digital signatures.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Angular PDF libraries allow developers to create, show, and control PDF documents from modern web applications. Libraries like pdfmake, jsPDF, PDF-LIB, and ng2-pdf-viewer offer flexible solutions for tasks that range from simple PDF creation to advanced editing and viewing. &lt;/p&gt;

&lt;p&gt;Each of these libraries has its merits, whether lightweight client-side generation or strong PDF manipulation features. An appropriate choice of an Angular PDF library would be related to complexity, performance, browser compatibility, and the feature set. &lt;/p&gt;

&lt;p&gt;All in all, these libraries contribute much to improving user experience by enabling smooth integrations of PDF functionality within applications based on Angular.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>angular</category>
      <category>pdf</category>
      <category>programming</category>
    </item>
    <item>
      <title>Puppeteer C# vs IronPDF: Best PDF Library for .NET Developers (With Code Examples)</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Tue, 28 Oct 2025 08:08:12 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/puppeteer-c-vs-ironpdf-best-pdf-library-for-net-developers-with-code-examples-4m8e</link>
      <guid>https://dev.to/mohammedibrahimlj/puppeteer-c-vs-ironpdf-best-pdf-library-for-net-developers-with-code-examples-4m8e</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://en.wikipedia.org/wiki/PDF" rel="noopener noreferrer"&gt;PDF&lt;/a&gt; or Portable Document Format is a device- and operating system-independent file format developed by Adobe that preserves a document's fonts, images, layout, and formatting when opened on any device or operating system. PDFs ensure the file looks the same whether opened on Windows, macOS, or mobile, showcasing their advanced features . PDFs are widely utilized for sharing, printing, and archiving documents because they are secure, lightweight, and easily available on free readers like Adobe Acrobat or modern web browsers.&lt;/p&gt;

&lt;p&gt;Converting raw HTML content (or a webpage) into a PDF document is a widely used necessity in modern-day .NET applications for reports, invoices, archiving, tickets, etc., especially among net developers The .NET community boasts a vast array of libraries and approaches, including the popular puppeteer library . IronPDF and Puppeteer Sharp are two strong rivals. Both of them have compromises and solve the problem differently. Their architecture, usage, advantages and disadvantages, performance, pricing and licensing, and common scenarios will all be contrasted within this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://www.puppeteersharp.com/" rel="noopener noreferrer"&gt;Puppeteer&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;The puppeteer library is an open-source Node.js ( .NET port to Puppeteer Sharp) library that enables developers to drive a headless or full Chrome/Chromium browser with code, making it easy to interact with various html elements . It schedules browser activity such as rendering web pages, taking screenshots, web scraping, testing, and generating PDFs. Puppeteer is used extensively for several automating user interactions and dumping dynamic web pages exactly as they are rendered in a browser, which also facilitates automated testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rcui2vy94t354suio6v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rcui2vy94t354suio6v.png" alt=" " width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Puppeteer:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Headless browser automation with Chrome or Chromium.&lt;/li&gt;
&lt;li&gt;Take screenshots and create PDFs from web pages.&lt;/li&gt;
&lt;li&gt;Emulate user interaction (clicks, form submission, navigation).&lt;/li&gt;
&lt;li&gt;Run custom JavaScript inside the page.&lt;/li&gt;
&lt;li&gt;Supports web scraping and test automation.&lt;/li&gt;
&lt;li&gt;Reliable rendering of up-to-date web content (CSS, JS, animation).&lt;/li&gt;
&lt;li&gt;Support for cross-platform (Windows, macOS, Linux).&lt;/li&gt;
&lt;li&gt;Scraping an infinite scrolling demo page&lt;/li&gt;
&lt;li&gt;Open source and MIT license-free.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://ironpdf.com/" rel="noopener noreferrer"&gt;IronPDF&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronPDF is a paid .NET PDF library that allows developers to generate PDFs, edit, and convert PDFs directly in C# or VB.NET projects. It eases the process of converting HTML, URLs, or ASP.NET pages to PDF documents and offers comprehensive tools for PDF manipulation without the use of third-party software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabi9wmde2dkbokbm84bj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabi9wmde2dkbokbm84bj.png" alt=" " width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Major Features of IronPDF:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Convert HTML, ASPX, or URLs to PDF via a Chromium renderer.&lt;/li&gt;
&lt;li&gt;Generate PDFs from URL, HTML content or templates.&lt;/li&gt;
&lt;li&gt;Merge, split, and extract data from the current PDFs.&lt;/li&gt;
&lt;li&gt;Insert headers, footers, watermarks, and images.&lt;/li&gt;
&lt;li&gt;Edit, annotate, and password-protect or encrypt PDFs.&lt;/li&gt;
&lt;li&gt;Extract the text, images, and metadata of PDFs.&lt;/li&gt;
&lt;li&gt;Supports form filling and digital signatures.&lt;/li&gt;
&lt;li&gt;Compatible with .NET Framework, .NET Core, and .NET 8+ in full.&lt;/li&gt;
&lt;li&gt;Commercial license with professional support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F690z8dxl39auory2ydhr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F690z8dxl39auory2ydhr.png" alt=" " width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation of PDF Library
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Puppeteer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type the following code on the package manager console to install the latest version of Puppeteer &lt;a href="https://www.nuget.org/packages/PuppeteerSharp" rel="noopener noreferrer"&gt;package&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package PuppeteerSharp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively, we can find from the NuGet package manager as below, or directly in your project directory. Then we can choose the package required to insert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fobop6veu32lu5na1eiux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fobop6veu32lu5na1eiux.png" alt=" " width="800" height="578"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Ironpdf&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install the IronPDF package using the following code on the package manager console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronPDF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also find from the NuGet package manager as follows. Then we can choose the package required to insert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp020jbxku0341k4fa6bq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp020jbxku0341k4fa6bq.png" alt=" " width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comprehensive Feature Comparison of Puppeteer Sharp vs IronPDF
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HTML to PDF Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below is the sample code of Puppeteer sharp and ironpdf which allows us to convert the Html URL into a pdf file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Puppeteer sharp&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using PuppeteerSharp;
using System.Threading.Tasks;

// Download and launch headless Chromium
        await new BrowserFetcher().DownloadAsync();
        using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var url = "https://github.com/puppeteer/puppeteer";
        // Open new browser tab
        using var page = await browser .NewPageAsync();
        await page.GoToAsync(url, WaitUntilNavigation.Networkidle0);

        // Convert the webpage to PDF
        await page .PdfAsync("puppeteersharp_output.pdf", new PdfOptions
        {
            Format = PaperFormat.A4,
            PrintBackground = true
        });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It initially downloads and create a browser instance. When initializing a headless browser, a fresh page instance is pre-fetched for simulating an open browser window. The application then navigates to the official Puppeteer Sharp entire page and waits until completely loaded, including background network loading.&lt;/p&gt;

&lt;p&gt;As soon as the page loads, it captures the whole web content as a PDF file and saves it under the provided name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0ohnrbp8eu78dvkzmhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0ohnrbp8eu78dvkzmhh.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ironpdf&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
pdf.SaveAs("ironpdf_output.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First we are importing the namespace. Then, it starts by opening a Chrome-based PDF renderer with a custom user agent , which uses an embedded Chromium engine to render the page properly.&lt;/p&gt;

&lt;p&gt;The renderer loads the target page from IronPDF website and renders its dynamic content, including &lt;a href="https://ironpdf.com/examples/using-html-to-create-a-pdf/" rel="noopener noreferrer"&gt;html&lt;/a&gt; elements JavaScript, CSS, and HTML to generate a high-fidelity PDF that is visually equivalent to the original page. The generated PDF is then output to the system based on the provided file name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj71bs2qsoau78z3mf83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj71bs2qsoau78z3mf83.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding Header and Footer
&lt;/h2&gt;

&lt;p&gt;Below is the sample code to add the header and footer of the converted pdf page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Puppeteer sharp&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using PuppeteerSharp;
using PuppeteerSharp.Media;
using System.Threading.Tasks;
// Download and launch headless Chromium
await new BrowserFetcher().DownloadAsync();
using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });

// Open new browser tab
using var page = await browser.NewPageAsync();
await page.GoToAsync("https://github.com/puppeteer/puppeteer", WaitUntilNavigation.Networkidle0);
await page.PdfAsync("custom_header_footer.pdf", new PdfOptions
{
    Format = PaperFormat.A4,
    DisplayHeaderFooter = true,
    HeaderTemplate = "&amp;lt;span style='font-size:10px;'&amp;gt;Header&amp;lt;/span&amp;gt;",
    FooterTemplate = "&amp;lt;span style='font-size:10px;'&amp;gt;Page &amp;lt;span class='pageNumber'&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;",
    MarginOptions = new MarginOptions { Top = "60px", Bottom = "60px" }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First we are importing the namespace. Then, It starts by downloading and launching a headless Chromium browser that will be utilized for rendering web pages with no user interface. The PDF is created with header and footer message personalized, header and dynamic page numbers in footer, and top and bottom margins set to allow sufficient space.&lt;/p&gt;

&lt;p&gt;Then a simple PDF of same page with background images is created. This solution proves to be an illustration of basic and advanced PDF creation from actual web pages using browser simulation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvpcw885cktonzttrmlfx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvpcw885cktonzttrmlfx.png" alt=" " width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ironpdf&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new IronPdf.ChromePdfRenderer()
    .RenderHtmlAsPdf("https://ironpdf.com/")
    .AddTextHeaders(new IronPdf.TextHeaderFooter { CenterText = "My Company", DrawDividerLine = true })
    .AddTextFooters(new IronPdf.TextHeaderFooter { RightText = "Page {page}", DrawDividerLine = true })
    .SaveAs("withHeadersFooters.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sample code shows to create header and footer on pdf using the ironpdf. It starts by initializing an instance of a Chrome-based PDF renderer, which employs an in-built Chromium engine to render the HTML in the correct form. &lt;/p&gt;

&lt;p&gt;The application utilizes simple HTML code with a title to display as a PDF document. It includes a center header with business name, a divider line, and then a &lt;a href="https://ironpdf.com/how-to/headers-and-footers/" rel="noopener noreferrer"&gt;footer&lt;/a&gt; with page number and total pages and a divider line. The PDF is then output to the system with a given filename.&lt;/p&gt;

&lt;p&gt;This is a simple way of producing professionally full PDFs with a consistent brand and page information from HTML content. This sample code is indicative of the ease with which an HTML string can be rendered as a PDF with IronPDF.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjzf9p5p8v53gsmex3b9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjzf9p5p8v53gsmex3b9.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advance HTML Features on Ironpdf
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Convert Html String To PDF&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
var html = "&amp;lt;h1&amp;gt;Hello World&amp;lt;/h1&amp;gt;";
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(html);
// Export to a file or Stream
pdf.SaveAs("output.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It begins with the setup of a Chrome-based PDF renderer, which utilizes an in-process Chromium engine implementation to accurately render the HTML templates . The renderer then converts a minimal HTML snippet with a heading into a PDF document, opening a new page for the output. Finally, the PDF is stored on the system with the provided name.&lt;/p&gt;

&lt;p&gt;The code help us to render HTML content into PDFs without the running of an external browser, hence suitable for reports, invoices, or dynamically generated HTML content. The following code snippet illustrates the generation of a PDF from a pre-existing HTML file using IronPDF with custom rendering options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convert Html File To PDF&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
using IronPdf.Engines.Chrome;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        CssMediaType = PdfCssMediaType.Print,
        MarginBottom = 0,
        MarginLeft = 0,
        MarginRight = 0,
        MarginTop = 0,
        Timeout = 120,
    },
};
renderer.RenderingOptions.WaitFor.RenderDelay(50);

// Create a PDF from an existing HTML file using C#
var pdf = renderer.RenderHtmlFileAsPdf("example.html");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It begins with the development of a PDF renderer based on Chrome that has a built-in Chromium engine. The renderer is set to accept some parameters, including the print CSS media type to employ, all page margins to zero, and a timeout for waiting until the page is fully loaded before rendering. There is a bit of render delay included so that dynamic content can be rendered in the correct manner.&lt;/p&gt;

&lt;p&gt;The application then converts the target HTML file into a PDF and stores it in the system with the given filename. The method gives direct control over layout, spacing, and timing in generating PDFs from HTML content.&lt;/p&gt;

&lt;h2&gt;
  
  
  About License
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Puppeteer Sharp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Puppeteer is an &lt;a href="https://en.wikipedia.org/wiki/Open_source" rel="noopener noreferrer"&gt;open-source&lt;/a&gt; .NET implementation of the well-known Node.js library Puppeteer, licensed under the Apache License 2.0. The license permits developers to use the software freely, distribute, and modify the software for commercial purposes as well, provided the proper notice and attribution are given under the license. There are no royalties or usage charges, so the solution is a low-cost and general-purpose option for browser automation or PDF rendering initiatives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6sp606mt9ydlty65w3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6sp606mt9ydlty65w3u.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IronPDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF is a proprietary, commercial PDF library by Iron Software that comes with an appropriate license key to use for full functionality, since the free version adds a watermark to PDFs created. IronPDF supports varying models of licenses, ranging from project and development licenses to enterprise and SaaS distribution, offering flexibility based on varied business needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibxbkpd9p5enchu1xxga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibxbkpd9p5enchu1xxga.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike open-source solutions, commercial support, frequent updates, and access to enhanced features such as HTML to PDF conversion, security, and PDF editing are available in the commercial &lt;a href="https://ironpdf.com/licensing/" rel="noopener noreferrer"&gt;license&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In short, both IronPDF and Puppeteer Sharp provide powerful ways of generating PDFs from HTML material in .NET, but are utilized for different purposes. Puppeteer Sharp is more ideal for browser automation and screenshotting of fully rendered, dynamic web pages because it allows complex browser interactions or execution of JS scripts prior to generating a PDF.&lt;/p&gt;

&lt;p&gt;IronPDF, on the other hand, offers a complete, feature-rich solution for PDF creation, editing, and customization, including headers, footers, watermarks, merging, and security, without relying on an external browser, providing the same functionality as Puppeteer Sharp in many scenarios. The choice depends on user specific needs: use Puppeteer Sharp for taking snapshots of dynamic web pages and automation, including utilizing CSS selectors, and IronPDF for large-scale PDF production and document workflow manipulation. To learn more about other iron software product check &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>dotnet</category>
      <category>pdf</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Reading Excel Files with ClosedXML: A Comparison with IronXL</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Thu, 16 Oct 2025 13:37:41 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/reading-excel-files-with-closedxml-a-comparison-with-ironxl-1ch5</link>
      <guid>https://dev.to/mohammedibrahimlj/reading-excel-files-with-closedxml-a-comparison-with-ironxl-1ch5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Microsoft &lt;a href="https://en.wikipedia.org/wiki/Microsoft_Excel" rel="noopener noreferrer"&gt;Excel&lt;/a&gt; is a computer program with rich features that is used to organize, analyze, and display large data. Using it, one can design workbooks made up of rows and columns where numbers can be entered, calculated, and formatted. Excel features formula and function capabilities as well as robust data analysis features like PivotTables, charts, and conditional formatting, making it suitable for straightforward operations like budgeting and advanced operations like statistical analysis or business forecasting.&lt;/p&gt;

&lt;p&gt;Excel features integration with other Microsoft Office applications so that sharing of data is simple and collaboration can take place. Excel offers desktop, web, and mobile deployment, which is simple and flexible.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use ClosedXML to read an Excel file?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create a new console project or any .NET project.&lt;/li&gt;
&lt;li&gt;Install the ClosedXML library.&lt;/li&gt;
&lt;li&gt;Load the existing Excel workbook and select the worksheet.&lt;/li&gt;
&lt;li&gt;Select the cell data from the selected worksheet.&lt;/li&gt;
&lt;li&gt;Display the value on the console or any other.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://github.com/ClosedXML/ClosedXML" rel="noopener noreferrer"&gt;ClosedXML&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;ClosedXML is an open-source .NET library that provides a simple way to create Excel reports, read, and write Excel files without installing Microsoft Office. ClosedXML is built on top of the Open XML SDK and features a high-level, easy-to-use API for programming .xlsx files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cr818v2x06qfkorqnp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cr818v2x06qfkorqnp0.png" alt=" " width="800" height="607"&gt;&lt;/a&gt;&lt;br&gt;
ClosedXML enables developers to work with worksheets, cell formatting, formulas, charts, and tables. ClosedXML is also one of the libraries used by .NET and C# developers due to the ease with which it makes handling thread-safe Excel files.&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of ClosedXML
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Excel File Creation and Editing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClosedXML enables developers to create new .xlsx files easily or modify existing ones without having Microsoft Excel installed. It is based on the OpenXML standard, which means it is light and cross-platform supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worksheet Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can insert, rename, or remove worksheets in an Excel workbook. ClosedXML also supports copying worksheets, controlling their visibility, and handling more than one worksheet at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cell Formatting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClosedXML allows rich formatting capabilities, such as font styles, colors, borders, number formats, cell alignment, and conditional formatting on the created Excel sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formulas and Calculations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Formulas can be inserted directly within cells by developers. Although ClosedXML does not calculate formulas, Excel will do so when opened, making it effective for reading Excel data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tables and Ranges&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClosedXML enables us to create range data as a table. This improves data management, supports structured references in formulas, and enhances the manipulation of data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Import and Export&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It simplifies importing big data from many different sources (such as databases or CSV files, or macro-enabled template files ) into Excel and exporting data from Excel into your application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Styles and Themes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use consistent styles and themes for workbooks or worksheets to allow for a similar presentation in business Excel reports and dashboards, utilizing a command format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2of04xiv7pkf4ohvl3f7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2of04xiv7pkf4ohvl3f7.png" alt=" " width="800" height="873"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install Closedxml
&lt;/h2&gt;

&lt;p&gt;Enter the code below on the package manager console to install the &lt;a href="https://www.nuget.org/packages/ClosedXML" rel="noopener noreferrer"&gt;ClosedXML package&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package ClosedXML
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or we can search from the NuGet package manager like below. Then we can select the required package to insert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoc3ij56w6hecj10n669.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoc3ij56w6hecj10n669.png" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a New Excel using the ClosedXML library
&lt;/h2&gt;

&lt;p&gt;In this example, we are reading data from the sample sheet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf8t0pu6nw982r47xnwx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf8t0pu6nw982r47xnwx.png" alt=" " width="773" height="432"&gt;&lt;/a&gt;&lt;br&gt;
Below is the sample code to get the data from the Excel sheet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using ClosedXML.Excel;
using (var workbook = new XLWorkbook("sample.xlsx"))
{
    // Access the first worksheet
    var worksheet = workbook.Worksheet(1);

    // Loop through rows and cells
    foreach (var row in worksheet.RowsUsed())
    {
        foreach (var cell in row.CellsUsed())
        {
            Console.Write(cell.Value.ToString() + "\t");
        }
        Console.Write("\n");
    }
}
Console.ReadKey();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above C# code employs the ClosedXML library to read and display the contents of an Excel file. The code starts by importing the ClosedXML library. Then we are creating an object for the XLWorkbook class, which opens the target Excel file. Within the using block, it accesses the first worksheet in the workbook by passing the worksheet index as a parameter.&lt;/p&gt;

&lt;p&gt;The value of each cell is translated into a string and output to the console, tab-spaced so that the data remains lined up like a table. Once a row is completed, a newline character is written to go to the next line, so each Excel row will display on a new console line.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gjvhavy32jk726h6r3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gjvhavy32jk726h6r3o.png" alt=" " width="661" height="260"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is &lt;a href="https://ironsoftware.com/csharp/excel/" rel="noopener noreferrer"&gt;IronXL&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronXL is a .NET high-speed library for exporting, reading, editing, writing, and generating Excel spreadsheets (XLS, XLSX) and saving csv or TSV files without the use of Microsoft Office or Interop library. IronXL allows programmers to easily work with spreadsheet data like styles, pictures, charts, formulas, and styles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddw1m90dhkduallnmi6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddw1m90dhkduallnmi6e.png" alt=" " width="800" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition, reading and writing custom class objects are also provided in IronXL. Because it can import and export data in a variety of forms, such as CSV, JSON, XML, and HTML, it is the ideal option for data automation, problem repairs, and reporting solutions. It supports features like native DataTable and DataSet compatibility, password security, and formula auto-calculation.&lt;/p&gt;

&lt;p&gt;IronXL works with cross-platform applications in environments like  Windows, macOS, Linux, and Docker, and it supports the .NET Framework and .NET Core with C#, VB.NET, and F#.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5dwcyzgmmk1s515p0li.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5dwcyzgmmk1s515p0li.png" alt=" " width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of IronXL
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Excel file Creation and manipulation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronXL allows developers to read, edit, and create Excel files (.xls, .xlsx, and .csv) using .NET applications without installing Microsoft Excel. It provides an easy and developer-friendly API to manipulate worksheets, making it a preferred library for reading Excel files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support for Multiple Excel Formats&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronXL provides support for different Excel file formats like XLS, XLSX, XLSM, CSV, and TSV to support compatibility with new and older Excel files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support EXCEL Formula&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronXL accommodates all Excel formulas and functions. It can calculate results within your .NET application. Thus, it's effective in data calculation and dynamic reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Formatting and Styling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers can utilize various formatting elements, such as bold, colors, borders, alignment, number formats, and background styles, to enhance visually appealing spreadsheets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chart and Image Insertion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronXL provides support for inserting charts, images, and shapes onto Excel sheets, making it possible for developers to create professionally appearing, presentation-grade documents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tjmsqr6azk8mjkc4tnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tjmsqr6azk8mjkc4tnk.png" alt=" " width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install IronXL
&lt;/h2&gt;

&lt;p&gt;Use the code below on the Package Manager console to install the &lt;a href="https://www.nuget.org/packages/Ironxl.excel" rel="noopener noreferrer"&gt;IronXL package&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronXL.Excel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also install the library from nuget package manager. The associated IronXL search result from the NuGet package manager is displayed in the image below. On the chosen project, we may choose the required package to be installed.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij5oblh81qo20kpmo59x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij5oblh81qo20kpmo59x.png" alt=" " width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Excel Creation using IronXL
&lt;/h2&gt;

&lt;p&gt;Below is the sample Excel, which is going to be read using IronXL&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5k19bhshsmdmw462tunq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5k19bhshsmdmw462tunq.png" alt=" " width="611" height="434"&gt;&lt;/a&gt;&lt;br&gt;
Below is the sample code to read an Excel file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronXL;

WorkBook workbook = WorkBook.Load("sample.xlsx");

// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Loop through rows and columns
foreach (var row in sheet.Rows)
{
    foreach (var cell in row.Columns)
    {
        Console.Write(cell.Value.ToString() + "\t");
    }
    Console.WriteLine();
}

Console.ReadKey();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above C# programming example demonstrates how to read and output data from an Excel file via the IronXL library. The example starts by importing the namespace into the code. Then, an Excel workbook is &lt;a href="https://ironsoftware.com/csharp/excel/examples/read-excel/" rel="noopener noreferrer"&gt;loaded&lt;/a&gt; into the workbook object method, which loads the workbook into memory. It then gets the first sheet of the workbook with the help of the pre-built method.&lt;/p&gt;

&lt;p&gt;Finally, the program loops over every row in the sheet using a foreach loop, and then for each row, it loops over the individual cells. The contents of each cell are accessed by using the Text property, and output can be displayed in the console.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o4yov4mbog4m92p1tsn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o4yov4mbog4m92p1tsn.png" alt=" " width="745" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Licencing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Closedxml&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClosedXML is an &lt;a href="https://en.wikipedia.org/wiki/Open_source" rel="noopener noreferrer"&gt;open-source&lt;/a&gt; .NET library licensed under the MIT License, one of the most permissive and developer-friendly licenses available. This allows developers to use, redistribute, and modify the library for commercial and personal applications free of charge without paying a licensing fee.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0slmjvlllb6qujzbtmb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0slmjvlllb6qujzbtmb1.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;br&gt;
The MIT License also permits embedding into proprietary software, making ClosedXML a viable choice for organizations that like to automate Excel file processing. But though the license is highly flexible, it is not warranted or supported officially.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IronXL&lt;/strong&gt;&lt;br&gt;
IronXL operates in a commercial or production environment using a license. The IronXL &lt;a href="https://ironsoftware.com/csharp/excel/licensing/new/" rel="noopener noreferrer"&gt;license&lt;/a&gt; also comprises updates and support access, depending on the purchased plan.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5j4hv6lay646ljwo1kz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5j4hv6lay646ljwo1kz.png" alt=" " width="800" height="443"&gt;&lt;/a&gt;&lt;br&gt;
This commercial package of license provides enterprise- and professional-grade uses compliance, full access, and priority technical support.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In short, ClosedXML and IronXL are the Excel libraries for .NET applications. ClosedXML is an open-source free software library under the MIT License, and it is most suitable for developers and small-scale applications requiring normal Excel operations like reading, writing, and data formatting, irrespective of file extension. But then there is IronXL, a commercial library that has features such as formula support, image and chart inserting, generating PDF from Excel, and enterprise-level technical support.&lt;/p&gt;

&lt;p&gt;Whereas ClosedXML is well-suited for low-cost, open-source environments, IronXL is notable for being the first library to provide enterprise-level performance, stability, and feature set for tasks such as writing out an Excel document, and it is the better option for business and production environments. To learn more about the other Iron Software products, check &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dot</category>
      <category>microsoft</category>
      <category>programming</category>
    </item>
    <item>
      <title>Comparison of ZXing QR Code Generator Alternatives to IronQR</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Sun, 21 Sep 2025 08:36:28 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/comparison-of-zxing-qr-code-generator-alternatives-to-ironqr-3376</link>
      <guid>https://dev.to/mohammedibrahimlj/comparison-of-zxing-qr-code-generator-alternatives-to-ironqr-3376</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;QR code libraries are advanced features used for encoding and reading QR codes, for example, the use of a webcam in programs to enable easy encoding and reading of data. QR code libraries allow developers to scan QR codes containing information such as URLs, phone numbers, or security tokens. Thus, they are very important in marketing, security, and stock management, particularly when utilizing a QR code scanner . Some of the commonly used QR code libraries include ZXing and IronQR. which are supported by different development platforms with their own set of features.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use QR Code in C
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install the QRCode package from NuGet.&lt;/li&gt;
&lt;li&gt;Import the QRCode library.&lt;/li&gt;
&lt;li&gt;Create or read a QR code with the instance.&lt;/li&gt;
&lt;li&gt;Define the content to encode for the write instance.&lt;/li&gt;
&lt;li&gt;Save the QR code image or display the reader data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://github.com/micjahn/ZXing.Net" rel="noopener noreferrer"&gt;Zxing&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;ZXing library (Zebra Crossing) is among the most widely used open-source libraries for QR code processing that has been widely utilized in web-based barcode processing and as part of a web application for QR code scanning and encoding. as well as QR code scanning and encoding. ZXing is coded primarily in Java but also ported to other programming languages such as C++, C#, and JavaScript to enhance support to make it usable within cross-platform applications.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmpx8x2zzoyqr52bi0ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmpx8x2zzoyqr52bi0ie.png" alt=" " width="800" height="718"&gt;&lt;/a&gt;&lt;br&gt;
ZXing decoder is widely utilized in Android applications because it has the ability to offer webcam and camera access from a phone camera to use for live QR code reading on compatible devices such as a smartphone. It scans Data Matrix, QR codes, UPC, and EAN barcodes for product labeling, inventory tracking, and cell phone payments.&lt;/p&gt;
&lt;h2&gt;
  
  
  Install Visual Studio's Zxing
&lt;/h2&gt;

&lt;p&gt;Zxing needs to be installed with Visual Studio's NuGet Package Manager to implement it in a C# application and make it simple to upload. How to install Zxing is as follows:&lt;br&gt;
Install using the Package Manager Console.&lt;br&gt;
Go to Visual Studio &amp;amp; Tools &amp;gt; Package Manager Console &amp;gt; NuGet Package Manager.&lt;br&gt;
Install the Zxing command by following the steps below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package ZXing.Net
Install-Package ZXing.Net.Bindings.Windows.Compatibility
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47zgeb4tz435l9si6hgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47zgeb4tz435l9si6hgg.png" alt=" " width="800" height="169"&gt;&lt;/a&gt;&lt;br&gt;
Once the installation is completed, we will be able to import the namespace into the project file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxw8254lv3hrvv3kc1qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxw8254lv3hrvv3kc1qv.png" alt=" " width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Read QR code using Zxing
&lt;/h2&gt;

&lt;p&gt;Here is the following example code to read a QR code,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Drawing;
using System.Drawing.Imaging;
using ZXing;
using ZXing.Common;
// load a bitmap
Bitmap barcodeBitmap;
 barcodeBitmap = (Bitmap)Image.FromFile("qr.png");
if (barcodeBitmap != null)
{
    LuminanceSource source;
    source = new BitmapLuminanceSource(barcodeBitmap);
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
    // detect and decode the barcode inside the bitmap
    Result result = new MultiFormatReader().decode(bitmap);
    // do something with the result
    if (result != null)
    {
        Console.WriteLine($"Barcode Format : {result.BarcodeFormat.ToString()} Barcode Text : {result.Text}");

    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code loads a QR code image into a Bitmap object, then converts it to a LuminanceSource, and finally to a BinaryBitmap. It uses MultiFormatReader, which is part of the core image decoding library, to read and decode a QR code. If successful, the result of the barcode text will be displayed on the console.&lt;br&gt;
&lt;strong&gt;Input:&lt;/strong&gt;&lt;br&gt;
Below is the sample QR code, which we are going to use as an input image.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zofcgzv0xtgvuedrjm6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zofcgzv0xtgvuedrjm6.png" alt=" " width="536" height="480"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhbhjmwli1zkqqp9mae0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhbhjmwli1zkqqp9mae0.png" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://ironsoftware.com/csharp/qr/" rel="noopener noreferrer"&gt;IronQR&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;IronQR is a .NET library developed by Iron Software. It allows developers to create, read, and process QR codes within applications. It offers a simple solution to use the API to make custom QR codes with text, URLs, or hidden data, or read and decode QR codes from images, PDFs, or cameras. IronQR offers various types of QR codes, error levels, and size, color, and logo customization.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ufuqrt1qmb89yq4qrqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ufuqrt1qmb89yq4qrqa.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;br&gt;
Since it offers assistance for simple integration with C#, .NET, and ASP.NET applications, incorporating the feature of QR code capability can be incorporated by developers with ease, without referring to the service of an external application or a third-party service.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1524gyvdgiutnhj8ns2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1524gyvdgiutnhj8ns2m.png" alt=" " width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of IronQR
&lt;/h2&gt;

&lt;p&gt;Below are some of the features of the IronQR.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwu0sxp3nlmr0l20ma5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwu0sxp3nlmr0l20ma5a.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IronQR simplifies generating QR codes for text, URL, or embedded content. We can make them bigger in size, customize colors, and add logos or images to develop branded QR codes.&lt;/li&gt;
&lt;li&gt;It supports decoding QR codes from different image formats, PDFs, or a live camera, so it is best suited for live scanning use cases.&lt;/li&gt;
&lt;li&gt;IronQR includes support for different QR code standards and error levels to ensure robust performance even with clipped or physically compromised codes.&lt;/li&gt;
&lt;li&gt;IronQR is optimized for high-performance computing and can effectively generate or read QR codes in bulk, making it most appropriate for business or enterprise applications.&lt;/li&gt;
&lt;li&gt;Optimized and constructed for .NET and C#, IronQR integrates well with Windows, ASP.NET, and cross-platform .NET applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Install IronQR
&lt;/h2&gt;

&lt;p&gt;Use the code below on the Package Manager console to install IronQR.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronQR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also find the IronQR on the NuGet package manager by searching using the keywords:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk1elwiuxfuj2tpfc2zb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk1elwiuxfuj2tpfc2zb.png" alt=" " width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Read the QR code using IronQR
&lt;/h2&gt;

&lt;p&gt;The following code shows how we can read the barcode with the help of ironQR.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronQr;
using IronSoftware.Drawing;
static void ReadData()
{
    // Open the asset to read a QR Code from
    var inputBmp = AnyBitmap.FromFile("sample.png");

    // Load the asset into QrImageInput
    QrImageInput imageInput = new QrImageInput(inputBmp);

    // Create a QR Reader object
    QrReader reader = new QrReader();

    // Read the Input an get all embedded QR Codes
    IEnumerable&amp;lt;QrResult&amp;gt; results = reader.Read(imageInput);
    foreach (var result in results)
    {
        Console.WriteLine($"Barcode value: {result.Value}");
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using the above code can read the given below qr code. First, we are importing the necessary namespace. Then we are initializing the required class, and then we are loading the given image object as QrImageInput. Then, with the help of the QRReader, we are able to &lt;a href="https://ironsoftware.com/csharp/qr/examples/qr-quickstart/" rel="noopener noreferrer"&gt;read&lt;/a&gt; the QR code value from the image. Then we are using the console to display the value read from the QR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input:&lt;/strong&gt;&lt;br&gt;
Below is the input image that we are going to use to read the QR code.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9sciydolktoxz5vlfzhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9sciydolktoxz5vlfzhx.png" alt=" " width="490" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv09m1uat0d72z1ghlmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv09m1uat0d72z1ghlmu.png" alt=" " width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Showdown Between ZXing and IronQR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Platform and Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ZXing is mostly a Java library but has implementations for languages like C#, C++, and Android, making it work on multiple platforms. However, IronQR is natively developed for .NET and has native integration with C#,  environment-friendly, providing stronger integration for Microsoft developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features and Functionality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ZXing has good support for many barcode types, such as QR codes, but provides simpler customization for code creation. IronQR is designed for QR code creation and reading with extensive customization possibilities such as color, size, logos, and error correction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance and Reliability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ZXing is effective but will likely need more developer time to fine-tune for enterprise-level workloads. IronQR is designed for high performance in .NET applications and processes images much quicker with enterprise-level features like bulk QR code generation and QR code image scanning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing Licensing Models
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Zxing Licence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ZXing is an open-source library commonly utilized to encode and decode QR codes and barcodes in various formats , such as PNG.  It is published under the Apache License 2.0, a permissive and business-oriented open-source license.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwafxsdia294jxbp2g44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwafxsdia294jxbp2g44.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;br&gt;
The only requirements are to maintain the original copyright and license notice, provide proper attribution, and specify whether changes have been made to the source code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IronQR Licence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronQR is a proprietary and commercial .NET library made by Iron Software. The net barcode library is not open-source and needs an active license to use beyond its trial. IronQR can be downloaded and tested by developers free of charge with feature or watermark restrictions, but there is a need for a paid license to run it in production. Iron Software provides several &lt;a href="https://ironsoftware.com/csharp/qr/licensing/" rel="noopener noreferrer"&gt;licensing&lt;/a&gt; options.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos712ejumrbqve71eqnz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos712ejumrbqve71eqnz.png" alt=" " width="800" height="469"&gt;&lt;/a&gt;&lt;br&gt;
All licenses come with advantages such as frequent updates, priority-level technical support, and rights to use commercially. IronQR does not need attribution but does not allow redistribution of its binaries without an active license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Both IronQR and ZXing provide solid QR code and barcode features, but serve different needs. ZXing, being an effective barcode scanner and open-source under the Apache 2.0 license, is suitable for developers requiring a free, highly customizable, and community-supported solution, and it is suitable for projects with lower budgets.&lt;br&gt;
On the other hand, IronQR has a commercial library with improved support, timely updates, and expert-level features for a barcode reader appropriate for enterprise environments. Organizations that require reliability, simplicity of integration, and expert support might prefer IronQR. To learn more about IronQR Licensing, and to learn more about their product on Iron Software, check &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>pdf</category>
      <category>vscode</category>
      <category>console</category>
    </item>
    <item>
      <title>How to Download a PDF from a URL in C#</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Fri, 15 Aug 2025 05:51:32 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/how-to-download-a-pdf-from-a-url-in-c-31ki</link>
      <guid>https://dev.to/mohammedibrahimlj/how-to-download-a-pdf-from-a-url-in-c-31ki</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In today's digital age, downloading &lt;a href="https://en.wikipedia.org/wiki/PDF" rel="noopener noreferrer"&gt;PDFs&lt;/a&gt; from a URL is a common requirement for document management software applications and reporting tools. Grabbing invoices, reports, or eBooks, the job is always to obtain a PDF file from the given web link and store it in the local drive or pass it through your application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fneurso57lg1rczwnikxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fneurso57lg1rczwnikxt.png" alt=" " width="300" height="367"&gt;&lt;/a&gt;&lt;br&gt;
While this can be achieved using simple HTTP requests, application developers may require extra functionality like web page rendering to convert the downloaded file into a PDF document, file encryption, or even altering the content being downloaded. This article shows how we are going to see how can download files in PDF format with the help of the IronPDF library&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Download a PDF from a URL?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a new console application.&lt;/li&gt;
&lt;li&gt;Install the IronPDF library from NuGet.&lt;/li&gt;
&lt;li&gt;Create the necessary object.&lt;/li&gt;
&lt;li&gt;Pass the URL as a string as a parameter on the appropriate method.&lt;/li&gt;
&lt;li&gt;Save the generated PDF and close the application.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  What is &lt;a href="https://ironpdf.com/" rel="noopener noreferrer"&gt;IronPDF&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronPDF is a .NET library created by Iron Software for generating, reading, editing, and converting PDF documents, allowing the user to handle data efficiently in C# and other .NET applications. It's commonly used to generate PDF from HTML, save web pages as PDF, break or combine PDF documents, insert text, images, headers, footers, and watermarks, and encrypt a document or include digital signatures.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmwlh0xl18entf25hhi1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmwlh0xl18entf25hhi1.png" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;br&gt;
One of the strongest features of IronPDF is its Chromium-rendering engine, enabling it to render HTML, CSS, and JavaScript correctly as a high-quality PDF, maintaining the original layout and design. It is designed to seamlessly integrate with .NET Framework, .NET Core, and can interact with ASP.NET, Azure, and Docker environments, making it an ideal client.  and therefore can be used for desktop, web, and cloud applications.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgjj4tu9ry3x9qxu1754.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgjj4tu9ry3x9qxu1754.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of IronPDF
&lt;/h2&gt;

&lt;p&gt;Below are some of the important features of the IronPDF library.&lt;/p&gt;
&lt;h2&gt;
  
  
  HTML to PDF
&lt;/h2&gt;

&lt;p&gt;IronPDF converts HTML, CSS, and JavaScript to pixel-perfect PDFs, using its Chromium renderer engine. Formatting is fully supported, and thus it is perfect for web page export or HTML template export, which enables users to easily download PDF files, ensuring a quick response time.&lt;/p&gt;
&lt;h2&gt;
  
  
  PDF Editing and Manipulation
&lt;/h2&gt;

&lt;p&gt;It enables developers to edit already created PDFs by adding or changing text, images, and even adding attachment options, images, notes, headers, footers, and metadata, which can also include additional information in the form of a byte.  and options to download the file directly. without having to recreate it completely.&lt;/p&gt;
&lt;h2&gt;
  
  
  Merge, Split, and Extract Pages
&lt;/h2&gt;

&lt;p&gt;IronPDF facilitates it for document management to make the process of merging two or more PDFs into a single document, as well as simplifying the download files operation with appropriate content disposition headers, splitting a document into pieces, or extracting pages independently more manageable and comparatively more convenient.&lt;/p&gt;
&lt;h2&gt;
  
  
  Security and Digital Signatures
&lt;/h2&gt;

&lt;p&gt;The library provides functionalities for encryption, password protection, user access, and insertion of digital signatures, helping to mitigate any potential error or exception in document integrity, which is worth a comment  as an attempt at securing and authenticating document integrity.&lt;/p&gt;
&lt;h2&gt;
  
  
  PDF/A Compliance and Archiving
&lt;/h2&gt;

&lt;p&gt;IronPDF can produce PDF/A-compliant files in order to be stored in archives, providing additional details for law and industry practice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05tg6kw1nybir79o8dj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05tg6kw1nybir79o8dj9.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating a Console Project
&lt;/h2&gt;

&lt;p&gt;Here are some steps to create a new Visual Studio project:&lt;br&gt;
Open the installed Visual Studio IDE.&lt;br&gt;
Click File, New, and Project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhrw3tw6gukatog0k6w3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhrw3tw6gukatog0k6w3.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
Select the developer's choice programming language (e.g., C#) from the left-hand column menu below the "Create a new project" box. Select the "Console App" or "Console App (.NET Core)" template from the list of available project templates. Enter the project name in the "Name" box.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1heikcdux60z7gjdnpj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1heikcdux60z7gjdnpj0.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
Select the directory in which the project will be created. Select "Create" to begin creating a new Console application project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xfirim2lefwkcx4mag5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xfirim2lefwkcx4mag5.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Installing IronPDF
&lt;/h2&gt;

&lt;p&gt;Paste the following command in the NuGet Package Manager console to include the IronPDF library, which will be installed in the selected project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronPDF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj2imevq7bwuosomgkpe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj2imevq7bwuosomgkpe.png" alt=" " width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Downloading a PDF from a URL
&lt;/h2&gt;

&lt;p&gt;In this example, we are going to use the sample localhost website to download it into a PDF file, which can be represented by URL string in the application.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhrl2fa6fiyqwi139ut2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhrl2fa6fiyqwi139ut2.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
The following code helps us convert the locally hosted website into a PDF with the help of the Chromium engine, which is available in the IronPDF library&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
IronPdf.License.LicenseKey = "";
var renderer = new ChromePdfRenderer();
String url="https://localhost:7290/";
// Convert HTML web page to PDF
var pdfDocument = renderer.RenderUrlAsPdf(url);

// Save the PDF into a file path
pdfDocument.SaveAs("ProductCatalog.pdf"); 

Console.WriteLine("PDF exported successfully.");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This C# code demonstrates how we can download file in HTML content from a URL, with the help of IronPDF to render a live web page as a PDF document. The IronPdf namespace is then imported, and a license key is included to key the library. A ChromePdfRenderer object named renderer is then created, which uses a Chromium engine for precise rendering of HTML content.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6x7cu9c6k5h1i6hnkjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6x7cu9c6k5h1i6hnkjo.png" alt=" " width="800" height="311"&gt;&lt;/a&gt;&lt;br&gt;
The RenderUrlAsPdf method is called using the &lt;a href="https://ironpdf.com/how-to/url-to-pdf/" rel="noopener noreferrer"&gt;URL&lt;/a&gt;,  indicating that the PDF must be created on the basis of a locally installed web application or web page. The resultant PDF is stored in the pdfDocument object. Subsequently, the SaveAs method is utilized to write the created PDF onto the file system with the given name as a parameter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Licensing
&lt;/h2&gt;

&lt;p&gt;IronPDF is a commercial PDF library for .NET by Iron Software, which requires a &lt;a href="https://ironpdf.com/licensing/" rel="noopener noreferrer"&gt;commercial license&lt;/a&gt; to be used in production programs, especially for handling sensitive data. It is available in various plans, such as Developer, Project, Organization, and Enterprise.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fre6qmjphobw1h1hfxrtk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fre6qmjphobw1h1hfxrtk.png" alt=" " width="800" height="340"&gt;&lt;/a&gt;&lt;br&gt;
The plan can also be selected based on the development team size, with default options available. It has a free trial, but output PDFs will contain a watermark unless the license key has been activated for it. The licensed users will enjoy the complete feature set with no limits, along with software updates and advanced technical support.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;IronPDF is a full-fledged, developer-oriented PDF solution for .NET applications with all the HTML-to-PDF conversion power, providing a robust API for developers, which can also include support for embedding videos, through to advanced editing, security, and form management. Its Chromium-rendering creates accurate, high-fidelity output, and it's very feature-rich product includes document assembly, converting, merging, splitting, and securing. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e5gju3vf8gzowpcv0qg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e5gju3vf8gzowpcv0qg.png" alt=" " width="800" height="543"&gt;&lt;/a&gt;&lt;br&gt;
IronPDF blasts away uncertainty regarding open-source compatibility and delivers premium-grade support and frequent updates. To know more about the other products offered by Iron Software, check &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>pdf</category>
      <category>dotnetframework</category>
      <category>programming</category>
    </item>
    <item>
      <title>Looking for an iText Alternative? Try IronPDF</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Fri, 25 Jul 2025 05:43:25 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/looking-for-an-itext-alternative-try-ironpdf-je8</link>
      <guid>https://dev.to/mohammedibrahimlj/looking-for-an-itext-alternative-try-ironpdf-je8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Portable Document Format (&lt;a href="https://en.wikipedia.org/wiki/PDF" rel="noopener noreferrer"&gt;PDF&lt;/a&gt;) is a document file format created by Adobe that maintains the presentation, font, graphics, and formatting of a document regardless of the device or platform utilized. PDF requires consistency in the appearance of documents, whether viewed or printed using any other software or hardware. PDFs find extensive use in the exchange of reports, eBooks, forms, invoices, and legal documents because of their capability to display a fixed layout, as well as providing security options like password protection and digital signatures. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy634hcrrq67bkt09gl78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy634hcrrq67bkt09gl78.png" alt=" " width="512" height="512"&gt;&lt;/a&gt;&lt;br&gt;
PDFs are also best suited for archiving because they maintain the original integrity. PDFs have a tendency to provide a guaranteed and professional means of sharing and delivering documents. In this article, we are going to compare iText with one of the most used PDF libraries, IronPDF.&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction to &lt;a href="https://itextpdf.com/" rel="noopener noreferrer"&gt;iText&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;iText is a powerful PDF library that allows programmers to create, edit, and manipulate PDF documents programmatically. It is versatile in the sense that it can create dynamic PDFs and is most suitable for generating reports, invoices, and contracts. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdt19l7vhitoxqymawhd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdt19l7vhitoxqymawhd.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
iText supports digital signatures, filling out forms, encryption, and content extraction. iText is utilized in industries where automatic and secure document processing is present. Being modular in design and standards-compliant to PDF/A and PDF/UA, iText is an end-to-end solution for generating top-class, standards-compliant PDFs in enterprise-wide applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of iText&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below are some of the important features of the iText.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF Creation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We can generate sophisticated PDF documents from scratch using iText APIs. We can include text, images, tables, headers, footers, and even barcodes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF Manipulation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We can reorder, rotate, divide, or combine pages of existing PDFs. Annotating, watermarking, and stamping are also supported by iText.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text and Data Extraction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;iText provides developers with the ability to extract text and metadata from PDFs that can be utilized for document indexing, searching, or auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML to PDF Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;iText helps us convert HTML content to well-styled PDFs. We are able to utilize it while creating invoices or reports in web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactive Forms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We can use iText to fill and create interactive PDF forms. With the help of these features, we can automatically fill forms for applications, questionnaires, or contracts.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8q78lm6mut9tg78f27v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8q78lm6mut9tg78f27v.png" alt=" " width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction to &lt;a href="https://ironpdf.com/" rel="noopener noreferrer"&gt;IronPDF&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;IronPDF is a .NET library provided by Iron Software that programmers utilize to write, read, and print PDFs for .NET applications. It helps us to work with HTML to PDF creation, changing an existing PDF, inserting text, images, headers, footers, watermarks, and breaking up or merging documents. Its largest feature is that it can render styled, complex HTML (CSS and JavaScript) into pixel-perfect PDFs with a complete Chromium rendering engine.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9ahivpp25vt840xen04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9ahivpp25vt840xen04.png" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;br&gt;
IronPDF is utilized in business applications for creating invoices, reports, legal forms, and archiving of web content. It also features support for electronic signatures, PDF/A for archiving.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcqav21s06i5zc7t21lf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcqav21s06i5zc7t21lf9.png" alt=" " width="800" height="376"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Key Capabilities of IronPDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The following are some of the key &lt;a href="https://ironpdf.com/features/" rel="noopener noreferrer"&gt;features of IronPDF&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML to PDF Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF's greatest feature is the conversion of HTML, CSS, and JavaScript to pixel-perfect PDF pages. It also offers a  Chromium rendering engine for web page or web application content rendering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Editing Existing PDFs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF supports developers in modifying already existing PDF documents by inserting or replacing text, images, annotations, headers, footers, and metadata. It supports document editing without needing to re-create them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add Headers, Footers, and Watermarks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dynamic headers and footers (page numbers, dates) and custom watermarks can be implemented by developers with ease, and this is beneficial for branding or document tracking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF Security and Encryption&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Password security, 128-bit and 256-bit encryption, and user permissions can also be managed by IronPDF. Digital signatures for document integrity and authenticity are supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF/A Compliance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPDF supports the creation of PDF/A conformant documents that can be used for long-term archive and industry use in legal, healthcare, and government applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image to PDF and PDF to Image Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The library simplifies image file (PNG, JPG, etc.) conversion to a PDF file and PDF page extraction as an image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9scpdfcpsvl7wzpdmt4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9scpdfcpsvl7wzpdmt4b.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating a Console Project
&lt;/h2&gt;

&lt;p&gt;The steps involved in creating a new Visual Studio project are as follows:&lt;/p&gt;

&lt;p&gt;Start the Visual Studio IDE, which is already installed Visual Studio on your system.&lt;/p&gt;

&lt;p&gt;Navigate to File, New, and Project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6syyzm50c2n1f2uz28h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6syyzm50c2n1f2uz28h.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
Select the programming language of your choice (e.g., C#) from the left-hand column menu under the "Create a new project" box. Select the "Console App" or "Console App (.NET Core)" template from the list of provided project templates. Enter your project name in the "Name" field.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg8j9s5u0wb1jx5jjrki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg8j9s5u0wb1jx5jjrki.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
Select the location where the project should be created. Click "Create" to begin writing a new Console application project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9qowj2qss2sxxze2etd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9qowj2qss2sxxze2etd.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How to install a PDF Library
&lt;/h2&gt;

&lt;p&gt;Navigate to Tools → NuGet Package Manager → Package Manager Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installing iTextSharp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Execute the following command on the package manager console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;install-package itext
install-package itext.pdfhtml
install-package itext7.bouncy-castle-adapter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdh10t78gv3o909m2vpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdh10t78gv3o909m2vpa.png" alt=" " width="800" height="259"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Installing IronPDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type the code below on the package console, which will install the IronPDF library into the chosen project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronPDF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizvh8seicvqwpi57bel5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizvh8seicvqwpi57bel5.png" alt=" " width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a PDF Programmatically
&lt;/h2&gt;

&lt;p&gt;Here, were are going to use both &lt;a href="https://ironpdf.com/blog/compare-to-other-components/what-is-itext-alternatives/" rel="noopener noreferrer"&gt;iText and IronPDF&lt;/a&gt; to create a simple PDF using html string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using iText&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using iText;
using iText.Html2pdf;
string html = "&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Hello, iText!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;This is a sample PDF from HTML string.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;";
string outputPath = "output.pdf";
using (FileStream pdfDest = new FileStream(outputPath, FileMode.Create))
{
    HtmlConverter.ConvertToPdf(html, pdfDest);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above C# uses iText to use a string of &lt;a href="https://itextpdf.com/products/convert-html-css-to-pdf-pdfhtml" rel="noopener noreferrer"&gt;HTML&lt;/a&gt; to create a PDF document. First, we are importing iText namespaces. A simple string of HTML with a title and a paragraph, and the output PDF file name is declared in order to save the created document.&lt;br&gt;
A FileStream object is used to hold the PDF on disk, and inside the using block, HtmlConverter is invoked to render the HTML content as a PDF and save it in the given file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ofgbaxqkvg7emyu8p0v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ofgbaxqkvg7emyu8p0v.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using IronPDF&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Creating PDF pages from a HTML snippets using C#
var document = renderer.RenderHtmlAsPdf("&amp;lt;h1&amp;gt;Hello World!&amp;lt;/h1&amp;gt;");
// save file in pdf format
document.SaveAs("output.pdf");
Console.WriteLine ( "PDF generated successfully using IronPDF.");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above uses the IronPDF library for constructing a PDF document from an HTML string. It starts by importing the IronPdf namespace. A new instance of &lt;a href="https://ironpdf.com/tutorials/html-to-pdf/" rel="noopener noreferrer"&gt;ChromePdfRenderer&lt;/a&gt; is declared to access the renderer engine. An HTML string is passed into the RenderHtmlAsPdf method, which renders the string into a PDF file.  &lt;/p&gt;

&lt;p&gt;The resultant PDF is written to disk using the name via SaveAs(). This screen capture indicates how IronPDF enables programmers to render HTML content as lovely PDF documents.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwi87dinyj8x1edpjxo2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwi87dinyj8x1edpjxo2.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  License Information and Usage
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;iText&lt;/strong&gt;&lt;br&gt;
iText supports both open-source and &lt;a href="https://itextpdf.com/how-buy" rel="noopener noreferrer"&gt;commercial licenses&lt;/a&gt;. iText is free to use under the open-source AGPL (Affero General Public License), but with the stipulation that if distributed, their whole application's source code should be made freely available. This is ideal for open-source applications. For closed-source or proprietary applications, a commercial license has to be purchased. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2sqcaxe5fm704s145sqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2sqcaxe5fm704s145sqi.png" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;br&gt;
Commercial licensing permits companies to include iText within their software without having to open up their source code. It comes with professional support, ongoing updates, and legal recourse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IronPDF&lt;/strong&gt;&lt;br&gt;
IronPDF operates a commercial license model with flexible packages for individuals, companies, and businesses. It is not open-source, and a legitimate &lt;a href="https://ironpdf.com/licensing/" rel="noopener noreferrer"&gt;license&lt;/a&gt; is needed for use beyond trial. IronPDF offers several types of licenses, such as Developer, Project, and Enterprise licenses, each with its varying usage rights, deployment, and support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8se42bpz0vxzje7f7u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8se42bpz0vxzje7f7u.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;br&gt;
IronPDF provides a free trial for developers with a watermark. When a license is purchased, this restriction is removed, and full features, updates, and technical support are made available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ironpdf.com/" rel="noopener noreferrer"&gt;IronPDF&lt;/a&gt; and &lt;a href="https://itextpdf.com/" rel="noopener noreferrer"&gt;iText&lt;/a&gt; are two PDF libraries used in applications for creating and editing PDF documents. Although iText is open source and commercially licensed transparently, care should be taken in respecting the terms of the AGPL. Instead, IronPDF provides developer-friendly capabilities such as native .NET support, JavaScript rendering, and HTML to PDF conversion, with minimum setup hassle, along with simple licensing and integration.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mzp3c0yxnhssbwaz1a6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mzp3c0yxnhssbwaz1a6.png" alt=" " width="800" height="523"&gt;&lt;/a&gt; &lt;br&gt;
IronPDF possesses more capability, usability, and optimal performance, making it the perfect solution for business users and developers looking for a hassle-free, pure C# PDF creation solution. To know more about the Iron software product, check &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Create a PowerPoint Presentation in C#</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Fri, 28 Feb 2025 07:26:23 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/how-to-create-a-powerpoint-presentation-in-c-3kon</link>
      <guid>https://dev.to/mohammedibrahimlj/how-to-create-a-powerpoint-presentation-in-c-3kon</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Automatically created PowerPoint slides can be of great assistance in business presentation creation, report scheduling automation, and slide consistency.  It is easy for developers to create, modify, and manipulate PowerPoint files within .NET applications using IronPPT, a powerful C# framework.  IronPPT allows you to add dynamic slides, layout, text, images, &lt;a href="https://en.wikipedia.org/wiki/Chart" rel="noopener noreferrer"&gt;charts&lt;/a&gt;, and shapes dynamically, and even export presentations to other formats such as PDF or image. For business people, educators, and programmers seeking to generate business-grade presentations automatically, this is the ideal solution.  It is demonstrated here how to incorporate the feature-rich power of IronPPT in a C# application to automatically generate professional-level PowerPoint presentations.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Create a PPT in C
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Set up a C# project in Visual Studio (.NET Core or .NET Framework).&lt;/li&gt;
&lt;li&gt;Install IronPPT via NuGet Package Manager.&lt;/li&gt;
&lt;li&gt;Create a new PowerPoint presentation.&lt;/li&gt;
&lt;li&gt;Add a slide.&lt;/li&gt;
&lt;li&gt;Insert text, images, or shapes.&lt;/li&gt;
&lt;li&gt;Save the presentation.&lt;/li&gt;
&lt;li&gt;Run the application to generate the PowerPoint file.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://ironsoftware.com/csharp/ppt/" rel="noopener noreferrer"&gt;IronPPT&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronPPT is a .NET control that creates, edits and processes PowerPoint presentations programmatically. It offers developers a fast means of automating PowerPoint without the Microsoft PowerPoint Interop library or Microsoft Office installed. Using IronPPT, one can create presentations, edit slides by inserting text, images, charts, and shapes, get data, and save slides as images or PDFs. Its minimal weight makes it the go-to option for C# applications in cloud, desktop, and web environments, providing a fast and efficient alternative to standard Office automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7owvdc7k6a9p4714d8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7owvdc7k6a9p4714d8b.png" alt="Image description" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of IronPPT
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Create and Modify PowerPoint Presentations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PowerPoint presentations can be programmed in code by developers or updated with IronPPT to presentations that already exist. It is simple to insert, modify, and delete slides programmatically and automate presentation generation for reports, dashboards, and business cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manage Slide Contents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Text, image, shape, chart, and table insertion and positioning are facilitated by IronPPT. Insertion of business logos, graphical representation of data, or insertion of formatted text on slides is facilitated in real-time with dynamic alignment of content. Position, alignment, and font controls are facilitated by the library to provide a professional appearance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Media Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPPT provides to insert, move, resize, and arrange images. The tool accommodates several image formats like PNG, JPEG, and BMP that provide flexibility in handling media objects in PowerPoint slides. Apart from this image set, the developer can integrate multimedia objects like audio and video to present information. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extract Slide Content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In addition to editing PowerPoint presentations, IronPPT is also a reader for reading slide texts, images, and other elements. This can be helpful for using it in situations where PowerPoint contents are going to be revised or reused, e.g., for purposes of making summaries or converting contents on slides into some other form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversion to Other Forms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IronPPT also allows PowerPoint slides to be exported into other formats, such as PDF and images (PNG, JPEG). Export is utilized when presenting in a non-PowerPoint environment or when generating printable reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a New Visual Studio Project
&lt;/h2&gt;

&lt;p&gt;Here are the steps to open a new visual studio project:&lt;/p&gt;

&lt;p&gt;Open the Visual Studio IDE. Make sure you have previously installed Visual Studio on your machine before opening&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launch a New Project:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select File, New, and then Project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5yjaz9ik8i5b629ole4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5yjaz9ik8i5b629ole4.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
Select your preferred programming language (for example, C#) from the list on the left-hand side of the "Create a new project" box. Next, from the list of possible project templates, select the "Console App" or "Console App (.NET Core)" template. To give your project a name, please fill in the "Name" form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl9u1gqx96cq7hz9fvmg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl9u1gqx96cq7hz9fvmg.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
Choose the project's storage location. Click "Create" to begin working on a new Console application project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxlbzg3br5f509c31nmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxlbzg3br5f509c31nmw.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install IronPPT in Visual Studio
&lt;/h2&gt;

&lt;p&gt;To install IronPPT on a C# project, you need to install it using NuGet Package Manager in Visual Studio. To install IronPPT, do the following:&lt;/p&gt;
&lt;h2&gt;
  
  
  Install via Package Manager Console
&lt;/h2&gt;

&lt;p&gt;Open Visual Studio and go to Tools &amp;gt; NuGet Package Manager &amp;gt; Package Manager Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run the following command to install IronPPT:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronPPT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;once the installation is completed it will be added to the c# application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a PowerPoint presentation using IronPPT
&lt;/h2&gt;

&lt;p&gt;Once IronPPT has been installed, you can begin to create new PowerPoint presentations. Below is a step-by-step procedure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a New Presentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create a new presentation object using the ironPPT namespace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPpt;
// Create a new presentation
var presentation = new PresentationDocument();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create a new Slide&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create a new presentation slide, use the below code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Add a blank slide
presentation.AddSlide();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Presentation is a placeholder for a file instance of PowerPoint, and AddSlide() creates a new slide with a default layout. Creating a slide is simpler because developers can create dynamic slides programmatically in batched presentations. It is only after the creation of the first slide that additional objects can be added to extend its customization with the inclusion of text, images, charts, and so on. This method is helpful in situations where dynamic reporting generation, data visualizing, or auto-PowerPoint creation is needed based on C#.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adding Text to Slide&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Slide slide = new Slide();
slide.AddText("Hello World!");
presentation.AddSlide(slide);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The C# code sample that follows shows how to use IronPPT to add and &lt;a href="https://ironsoftware.com/csharp/ppt/examples/add-slide/" rel="noopener noreferrer"&gt;insert a slide&lt;/a&gt; into a PowerPoint presentation. First, an empty slide is constructed using a new Slide(), which creates a new slide object. The AddText method is then utilized to place the text "Hello World!" on the slide. Finally, the slide is added to the PowerPoint file by inserting it into the presentation using the AddSlide function. This enables programmatic slide creation and changes at runtime before the presentation is saved or exported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Save the Presentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After adding the text to the slide, save the PowerPoint  presentation file  :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Save the presentation to a file
presentation.SaveAs("sampleppt.pptx");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will save the modified presentation to the specified file path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F501eyhvc30d2rd2uy7w4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F501eyhvc30d2rd2uy7w4.png" alt="Image description" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To know more about the Ironppt Documentation refer &lt;a href="https://ironsoftware.com/csharp/ppt/docs/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPPT;
using IronPPT.Interfaces;
using IronPPT.Models;

IronPPT.License.LicenseKey = "Licence key here";
Console.WriteLine("PPT creation process started");
// Create a new presentation
var presentation = new PresentationDocument();
// Add slide object
Slide slide = new Slide();
slide.AddText("Hello World!");
presentation.AddSlide(slide);
// Export PowerPoint presentation
presentation.Save("output.pptx");
Console.WriteLine("PPT creation process ended");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The below output is generated from the above code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgtgavblapnbhzqrhpg2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgtgavblapnbhzqrhpg2.png" alt="Image description" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this tutorial, we have been able to create PowerPoint presentations dynamically with IronPPT in C#. We did the job step by step and understood how to create a project in C#, include the IronPPT library, and create a PowerPoint document from scratch. We discussed the basic features of adding slides, inserting text, images, shapes, and charts, and formatting so that the presentation would be ready. We also demonstrated how presentations in alternative modes can be exported from their source mode such as PDF and images.&lt;/p&gt;

&lt;p&gt;Moreover, developers can enhance presentations by adding animations, transitions, and interactivity to the viewing experience. Simplifying business processes or creating report-based content is much simpler with PowerPoint presentation generation under the application of IronPPT for .NET. To know more about the IronPPT license details check &lt;a href="https://ironsoftware.com/csharp/ppt/licensing/" rel="noopener noreferrer"&gt;here&lt;/a&gt; and to know more about the other ironsoftware products refer &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Add an Image to a PPT in C#</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Fri, 28 Feb 2025 07:09:46 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/how-to-add-an-image-to-a-ppt-in-c-1cim</link>
      <guid>https://dev.to/mohammedibrahimlj/how-to-add-an-image-to-a-ppt-in-c-1cim</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;PowerPoint presentations are extremely important for business, academia, and professional practices, requiring automation to save time in preparing the presentations. Using C#, software developers can programmatically generate and alter PowerPoint slides by utilizing such libraries as IronPPT, which is an extensive &lt;a href="https://en.wikipedia.org/wiki/.NET_Framework" rel="noopener noreferrer"&gt;.NET&lt;/a&gt; application for dealing with PowerPoint documents independent of using Microsoft Office Interop.&lt;/p&gt;

&lt;p&gt;One of the typical requirements is inserting images into PowerPoint slides for reports, data visualization, or branding. IronPPT makes it easy by enabling developers to insert, place, and resize image-specific slides, with ease. This article discusses how to add images to PowerPoint presentations using IronPPT in C#, including setup, implementation, and best practices to make slide customization better.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Add an Image to a PowerPoint in C
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a new visual studio project.&lt;/li&gt;
&lt;li&gt;Install the Dot net PowerPoint library IronPPT using NuGet.&lt;/li&gt;
&lt;li&gt;Import namespaces.&lt;/li&gt;
&lt;li&gt;Create a presentation and Add a blank slide.&lt;/li&gt;
&lt;li&gt;Load an image and Set the image size and position.&lt;/li&gt;
&lt;li&gt;save the presentation and run the code.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://ironsoftware.com/csharp/ppt/" rel="noopener noreferrer"&gt;IronPPT&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronPPT is a .NET control designed to generate, edit, and process PowerPoint presentations dynamically. It provides developers with an efficient way to automate PowerPoint processes without Microsoft Office Interop or Microsoft Office being installed. With IronPPT, it is possible to create new presentations, modify slides by adding text, images, charts, and shapes, retrieve data, and save slides as images or PDFs. Its light weight enables it to become the first choice for C# applications in cloud, desktop, and web settings, offering an efficient and high-speed alternative to traditional Office automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3wu7iwop0594p23ngi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3wu7iwop0594p23ngi6.png" alt="Image description" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of IronPPT
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Create and Modify PowerPoint Presentations&lt;/strong&gt;&lt;br&gt;
Programmers can author PowerPoint presentations in code or modify existing presentations with IronPPT. It is simple to add, modify, and delete slides programmatically and automate presentation generation for reports, dashboards, and business cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert and Manage Slide Contents&lt;/strong&gt;&lt;br&gt;
Insertion and positioning of text, images, shapes, charts, and tables are enabled through IronPPT. Business logo insertion, data graphical representation, or insertion of formatted text onto slides are supported in real time with dynamic content alignment. Position, alignment, and font settings are enabled by the library to enable a professional look.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image and Media Support&lt;/strong&gt;&lt;br&gt;
IronPPT offers to add, move, resize, and organize images. It supports a number of image formats such as PNG, JPEG, and BMP that offer flexibility to work with media objects on PowerPoint slides. Besides this image collection, developers can incorporate multimedia objects such as audio and video to facilitate presentations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extract and Read Slide Content&lt;/strong&gt;&lt;br&gt;
Apart from editing PowerPoint slides, IronPPT is also a system capable of reading slide text, images, and other content. This could be useful for utilizing it for instances where PowerPoint contents are to be reviewed or reused, say, for purposes of making summaries or translating contents on slides to another form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversion of PowerPoint to Other Formats&lt;/strong&gt;&lt;br&gt;
IronPPT can also export PowerPoint slides to other file formats, like PDF and images (PNG, JPEG). Export is used while presenting in a non-PowerPoint environment or when making printable reports.&lt;/p&gt;
&lt;h2&gt;
  
  
  Create a New Visual Studio Project
&lt;/h2&gt;

&lt;p&gt;Follow the following steps to open a new visual studio project:&lt;br&gt;
Open the Visual Studio IDE. Ensure you have already installed Visual Studio on your computer before opening it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launch a New Project:&lt;/strong&gt;&lt;br&gt;
Select File, New, and then Project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzduauinpf33w8bzeyak.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzduauinpf33w8bzeyak.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
From the "Create a new project" box, choose your favorite programming language (C#, say) from the left-hand side. Then, choose the "Console App" or "Console App (.NET Core)" template from the set of available project templates. Do fill in the "Name" field to assign a name to your project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfso6rfrsh97xfpgqo1k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfso6rfrsh97xfpgqo1k.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
Choose the project's storage location. Click "Create" to begin working on a new Console application project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3kxhcyj9s7rjttzsqti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3kxhcyj9s7rjttzsqti.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install IronPPT in Visual Studio
&lt;/h2&gt;

&lt;p&gt;To install IronPPT in a C# project, you must install it through NuGet Package Manager in Visual Studio. To install IronPPT, follow these steps:&lt;br&gt;
&lt;strong&gt;Install via Package Manager Console&lt;/strong&gt;&lt;br&gt;
Open Visual Studio and navigate to Tools &amp;gt; NuGet Package Manager &amp;gt; Package Manager Console.&lt;br&gt;
Execute the following command to install IronPPT:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package IronPPT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;once the installation is completed it will be added to the c# application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding an Image to a PowerPoint Slide Using IronPPT
&lt;/h2&gt;

&lt;p&gt;After IronPPT has been installed, you can begin to add images to your PowerPoint presentations. Below is a step-by-step procedure:&lt;br&gt;
&lt;strong&gt;Create a New Presentation&lt;/strong&gt;&lt;br&gt;
To create a new presentation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPpt;
// Create a new presentation
var presentation = new PresentationDocument();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create a new Slide&lt;/strong&gt;&lt;br&gt;
To create a new presentation slide, use the below code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Add a blank slide
presentation.AddSlide();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adds a new slide to a PowerPoint presentation using the IronPPT library. The Presentation object is a placeholder for a file instance of PowerPoint, and AddSlide() returns a new slide with a default layout. Creating a slide is made simpler since developers can programmatically create dynamic slides in batched presentations. It is only after establishing the first slide that other objects can be added to further customize it by adding text, images, charts, and the like. This approach is useful in scenarios where dynamic report generation, data visualization, or automated PowerPoint creation is required using C#.&lt;br&gt;
&lt;strong&gt;Insert an Image&lt;/strong&gt;&lt;br&gt;
To insert an image into the newly created slide use the following code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Add slide object
Slide slide = new Slide();
// Add picture frame
Image image = new Image();
image.Height = 200;
image.Width = 300;
image.LoadFromFile("sample.png");
slide.AddImage(image);
presentation.AddSlide(slide);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following C# code snippet illustrates how to &lt;a href="https://ironsoftware.com/csharp/ppt/examples/add-slide/" rel="noopener noreferrer"&gt;insert an image&lt;/a&gt; into a PowerPoint slide with the help of the IronPPT library. A new Slide object is first created using the new Slide(). Next, an Image object is created, and its Height and Width properties are defined as 200 and 300, respectively. The image is loaded from a file called "sample.png" via LoadFromFile(). The slide.AddImage(image) method inserts the image onto the slide. Lastly, presentation.AddSlide(slide) inserts the slide (with the image) into the PowerPoint presentation. This method supports dynamic slide generation with images in automated presentations.&lt;br&gt;
below is the sample image that has been added to the PDF.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6whotyldze33pniqtu5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6whotyldze33pniqtu5.png" alt="Image description" width="800" height="1131"&gt;&lt;/a&gt;&lt;br&gt;
To know more about the Ironppt refer to the documentation &lt;a href="https://ironsoftware.com/csharp/ppt/docs/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Save the Presentation&lt;/strong&gt;&lt;br&gt;
After adding the image, save the PowerPoint file for presentation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Save the presentation to a file
presentation.SaveAs("sampleppt.pptx");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will save the modified presentation to the specified file path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Code example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPPT;
using IronPPT.Models;
using System.Reflection.Metadata;
IronPPT.License.LicenseKey = "Licence here";
Console.WriteLine("PPT creation process started");
// Create a new presentation
var presentation = new PresentationDocument();
// Add a blank slide
//presentation.AddSlide();
// Add slide object
Slide slide = new Slide();
// Add image
Image image = new Image();
image.Height = 200;
image.Width = 300;
image.LoadFromFile("sample.png");
slide.AddImage(image);
//slide.Position.X.Point = 100;
//slide.Position.Y.Point = 150;
presentation.AddSlide(slide);
// Export PowerPoint presentation
presentation.Save("sampleppt.pptx");
Console.WriteLine("PPT creation process ended");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Below is the output from the above code.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5wyanj4bweexyik8lome.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5wyanj4bweexyik8lome.png" alt="Image description" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;IronPPT for C# PowerPoint automation is a powerful and efficient way to programmatically alter and create slides. IronPPT is a lightweight high-performance tool through which programmers are able to incorporate text, graphics, charts, and other multimedia objects without ever needing to instantiate Microsoft Office Interop. It is convenient for data visualization, company presentations, and the generation of reports due to its capability to incorporate dynamic images into the slides.&lt;/p&gt;

&lt;p&gt;A few of the easy-to-use functionalities that a developer can leverage while building professional-grade presentations in desktop, web, and cloud-based applications. The image export and PDF export support in IronPPT also render it an easy-to-use solution in various scenarios.&lt;/p&gt;

&lt;p&gt;With its incorporation into C# applications, organizations can automate PowerPoint, process faster, and increase productivity. For business reports, marketing presentations, or instructional content, IronPPT facilitates all this, creating PowerPoint faster, at a mass scale, and efficiently. IronPPT license starts from 749$ to know more about ironPPT license details refer &lt;a href="https://ironsoftware.com/csharp/ppt/licensing/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. To know more about the other Iron software product refer &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>ppt</category>
      <category>powerpoint</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stirling-pdf Windows Alternatives Using Ironsecuredoc</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Fri, 07 Feb 2025 05:13:05 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/stirling-pdf-windows-alternatives-using-ironsecuredoc-48l5</link>
      <guid>https://dev.to/mohammedibrahimlj/stirling-pdf-windows-alternatives-using-ironsecuredoc-48l5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Businesses as well as development in the modern digital world have to deal with process PDF in an efficient way. Solutions about Docker for all merging, splitting, extracting text, adding images from it, encryption, and signing of a PDF are containerized. The approach using &lt;a href="https://en.wikipedia.org/wiki/Docker_(software)" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; helps it to have portable, scalable, and easier deployment with separate server memory and no complexities of dependency on software or system configurations.&lt;/p&gt;

&lt;p&gt;PDF Docker containers give users the chance to embed functionalities in PDFs within their applications, automate the workflow of their documents, and ensure smooth performance in different environments. PDF Docker solutions have been categorized into many types, for various operations such as basic management of PDF to advanced security, enterprise-grade, and more comprehensive set of features; some of the popular solutions are Stirling PDF Docker and IronSecureDoc Docker. Understanding the tools helps the organization choose the right combination that makes their work efficient, secure, and well-organized.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://www.stirlingpdf.com/" rel="noopener noreferrer"&gt;Stirling pdf&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;Stirling PDF Docker is an open-source, containerized PDF toolkit that provides a simple and efficient way for developers to perform various PDF-related tasks, such as merging, splitting, compressing, extracting text, and PDF converts to images. By running Stirling PDF within a Docker container, developers avoid the hassle of dependency management and complex setups, making it easy to integrate these capabilities into their applications or workflows. A lightweight, &lt;a href="https://docs.stirlingpdf.com/API" rel="noopener noreferrer"&gt;API-ready toolkit&lt;/a&gt; that can be used as a microservice for handling all your PDF needs operations programmatically or locally hosted anywhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9u396w9s2f4kcrpipxp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9u396w9s2f4kcrpipxp.png" alt="Image description" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Stirling pdf Work?
&lt;/h2&gt;

&lt;p&gt;Stirling PDF in Docker, as its name would suggest, runs an instance of the application in a container. This includes a web-based user interface and an API for PDF processing tasks. Once the user uploads the PDF through the web UI or makes an API request to merge, split, compress, or OCR, the request hits the container, which then processes the request based on the operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+--------------------+
|  User Interaction  |
|  (Web UI / API)    |
+--------+-----------+
         |
         v
+-----------------------+
|  Stirling PDF Docker  |
|  - Runs in Container  |
|  - Handles Requests   |
+--------+----------+---+
         |
+---------------------------+
| PDF Processing Module     |
+--------+------------------+
         |
+---------------------------+
|  Output Handling          |
| - Download File           |
| - Store in Mounted Volume |
+---------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the Docker, Stirling PDF processes the input request based on the libraries and tools included in the system. When that is done, the outputted PDF is returned to the user for downloading or stored in a mounted volume if set up so. &lt;/p&gt;

&lt;p&gt;The host system's engine managing the container will enable it to be run in isolation with proper management of the system's resources, networking, and storage. The overall workflow would be some kind of sequentially interactive setup with the Web UI or API with regard to handling requests in a Docker container, further processing by Stirling PDF, and finally file output in the form of a download or storing on the mounted volume. This structure will ensure proper scalable document handling within a contained and portable environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;a href="https://ironsoftware.com/enterprise/securedoc/" rel="noopener noreferrer"&gt;Ironsecuredoc&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;IronSecureDoc Docker is a containerized PDF management solution designed to perform secure enterprise-grade document processing. Developed within the IronPDF ecosystem, this solution offers advanced security features such as AES 256 encryption, digital signatures, password protection, and compliance-ready safeguards to process even the most sensitive and confidential files within a safe environment. It is scalable, thereby allowing for robust API integration and hence convenient professional support for businesses wanting reliable high-performance PDF processing within containerized deployments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Far7qqqv83xlm9pyzo5to.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Far7qqqv83xlm9pyzo5to.png" alt="Image description" width="800" height="382"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Docker installisation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker Compose comes as part of Docker Desktop for Windows. If you have Docker Desktop installed previously, Docker Compose is automatically installed on your computer and you can start using it straight away. Otherwise, here's how to install it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install Docker Desktop&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download Docker Desktop from the official &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Run the installer, then follow all setup instructions.&lt;/li&gt;
&lt;li&gt;Ensure that WSL 2 is enabled, for example, to make Windows perform better.&lt;/li&gt;
&lt;li&gt;Restart the computer once installed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the Docker Desktop is installed, Docker Compose will be included. You can verify it by running:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff20xmv491tl335hsmolt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff20xmv491tl335hsmolt.png" alt="Image description" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install and Run on docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stirling pdf docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open up a terminal or command prompt and run the following command to download the latest Stirling PDF image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull stirlingtools/stirling-pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01qxp5bfopkirihe7wod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01qxp5bfopkirihe7wod.png" alt="Image description" width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is the docker comment to run the sterling pdf into a container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d --name stirling-pdf -p 8080:8090 -e DOCKER_ENABLE_SECURITY=false -e LANGS=en_GB stirlingtools/stirling-pdf:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This Docker command will run the Stirling-pdf container in the background (-d) and port map 8090 on the host machine to 8090 inside the container (-p 8090:8090) for access through the Stirling-PDF locally hosted web application service via this port.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmcbe4hetlkycav9zwrv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmcbe4hetlkycav9zwrv.png" alt="Image description" width="800" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The environment variable DOCKER_ENABLE_SECURITY=false is used here, which is not enabled. That is probably helpful for development purposes but does increase the potential risk of being vulnerable in a production environment. LANGS=en_GB sets the language to British English. The container is based on the latest version of the stirlingtools/stirling-pdf image, which provides a web-based PDF tool for various document-related operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n2cc1e4poyee34spo0b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n2cc1e4poyee34spo0b.png" alt="Image description" width="800" height="807"&gt;&lt;/a&gt;&lt;br&gt;
Now we can connect stirling pdf API with any programming language. To know more about the functionality of the document check &lt;a href="https://docs.stirlingpdf.com/Functionality/Convert/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Which to perform various PDF operations. To know more about the installation refer &lt;a href="https://docs.stirlingpdf.com/Installation/Docker%20Install/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ironsecuredoc docker
&lt;/h2&gt;

&lt;p&gt;You can pull the IronSecureDoc Docker image from the repository below using the command below in the Command Prompt or an open terminal window.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull ironsoftwareofficial/ironsecuredoc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kq7n3v7pgu0drd345au.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kq7n3v7pgu0drd345au.png" alt="Image description" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above will download the latest Ironsecuredoc docker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F91i727p4uwecfw27bhey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F91i727p4uwecfw27bhey.png" alt="Image description" width="800" height="326"&gt;&lt;/a&gt;&lt;br&gt;
The following docker command will run a container with the IronSecureDoc from IronSoftware. In this example, the --rm flag automatically removes the container upon its stop, so it does not clutter up your view. -p 8080:8080 means port 8080 on the host will map to port 8080 in the container for the application to be accessible at &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The flag -e ENVIRONMENT=Development sets an environment variable within the container. So, that's what the application should be set to: it should run in Development mode, usually really enabling debugging and detailed logging. The flag -e HTTP_PORTS=8080 environment variable indicates the application must listen on port 8080 for HTTP connections. Finally, the container will simply task execution on the most recently available ironsoftwareofficial/ironsecuredoc image, giving the app the latest updates, security improvements, and whatnot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbavxrueljs98xq4u76x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbavxrueljs98xq4u76x.png" alt="Image description" width="800" height="710"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now can access the &lt;a href="https://ironsoftware.com/enterprise/securedoc/tutorials/use-rest-api/" rel="noopener noreferrer"&gt;API&lt;/a&gt; using the port name with the hosted server IP.&lt;/p&gt;
&lt;h2&gt;
  
  
  Secure PDF with password
&lt;/h2&gt;
&lt;h2&gt;
  
  
  Using Stirling pdf
&lt;/h2&gt;

&lt;p&gt;Stirling-PDF provides an API endpoint, which will allow users to add password protection to their PDF programmatically. This feature will encrypt PDF documents so that only the correct password owner can access the content. One way to do this is by sending a POST request to the corresponding endpoint.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X 'POST' \
  'http://192.168.1.3:8090/api/v1/security/add-password' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'keyLength=256' \
  -F 'canExtractContent=false' \
  -F 'canModify=false' \
  -F 'ownerPassword=' \
  -F 'fileInput=@demo.pdf;type=application/pdf' \
  -F 'canExtractForAccessibility=false' \
  -F 'canPrintFaithful=false' \
  -F 'canModifyAnnotations=false' \
  -F 'password=demo' \
  -F 'canFillInForm=false' \
  -F 'canPrint=false' \
  -F 'canAssembleDocument=false'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This curl command does a POST to the endpoint &lt;a href="http://192.168.1.3:8090/api/v1/security/add-password" rel="noopener noreferrer"&gt;http://192.168.1.3:8090/api/v1/security/add-password&lt;/a&gt; and has the intent to add the security settings of a PDF called demo.pdf, which has content type as multipart/form-data where both file data and form fields are accepted and each of them is passed as a parameter for the request along with -F flags specifying its respective values. In this example, the filename is uploaded as demo.pdf, but this time the MIME type is explicit as application/pdf. &lt;/p&gt;

&lt;p&gt;The password=demo field assigns the user password 'demo' to the PDF file. The boolean fields such as canModify=false and canPrint=false will be set to false to prevent users from modifying or printing this document. The keyLength=256 field sets a 256-bit encryption key for that PDF file. All these settings configure the security of the PDF together by defining its permissions and then applying password protection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffd69qr5m0uuf6e1txec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffd69qr5m0uuf6e1txec.png" alt="Image description" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Ironsecuredoc
&lt;/h2&gt;

&lt;p&gt;Below is the ironsecuredoc API link which helps us to secure the pdf documents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X 'POST' \
  'http://192.168.1.3:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This curl command executes a POST request to the API endpoint of the IronSecureDoc at &lt;a href="http://192.168.1.3:8080/encrypt" rel="noopener noreferrer"&gt;http://192.168.1.3:8080/encrypt&lt;/a&gt;, intending to encrypt a PDF document called test.pdf with user password 'demo'. The flags -H in the command determine the request headers, specifying the client will accept any response format and the type of the request content is set to multipart/form-data. &lt;/p&gt;

&lt;p&gt;In the case of uploading the file test.pdf using the flag -F, this file's MIME type has to be set up explicitly to application/pdf. The command assigns 'demo' as the password with which to open the encrypted PDF by adding the user_password=demo parameter in the URL. It ensures that, at all costs, the resultant PDF will be protected such that only users having the correct password are allowed access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnakmmv6u352tcg4xinqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnakmmv6u352tcg4xinqp.png" alt="Image description" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stirling pdf vs Ironsecuredoc
&lt;/h2&gt;

&lt;p&gt;It is clearly visible that IronSecureDoc is a much better solution for safe, professional PDF handling. Stirling PDF is free and open-source self-hosted software and works inside the Docker container with some basic operations: merge, split, and convert PDFs. However, this application does not support enterprise-grade security lacks official support for the enterprise, and does not also support deep integration with .NET applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nj051duykezzhsxo6y4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nj051duykezzhsxo6y4.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
Contrasted with that is IronSecureDoc: It is a safe and high-performance Docker package, developed by IronSoftware for use in enterprise companies, requiring high-security encryption, signing digital capability, and easy access to PDF file manipulation with APIs, along with fluent integration with .NET applications. It comes with timely updates, enterprise-class security, and commercial support. For organizations needing reliable, secure, and professionally handled PDF operations within a Docker container, this would be the top pick.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The difference between them in terms of the focus areas lies in which aspects they particularly enhance. Whereas StirlingPDF deals with comprehensive capabilities for processing and manipulating a PDF document, IronSecureDoc's focus falls particularly on enhanced features for secure management of permission-related data that deals with encryption to ensure information security.&lt;/p&gt;

&lt;p&gt;IronSecureDoc is the best option when security and advanced protection for all your PDF requirements and files are your priority. It offers powerful enterprise features like encryption, digital signatures, and safe access control. It is for organizations and even for private persons looking for secure documents. To find information about the license of IronSecureDoc, please refer to the licensing &lt;a href="https://ironsoftware.com/enterprise/securedoc/licensing/" rel="noopener noreferrer"&gt;page&lt;/a&gt;. To find detailed configuration information about the products of Iron Software, follow the library &lt;a href="https://ironsoftware.com/" rel="noopener noreferrer"&gt;page&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Convert HTML to PDF in C#</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Mon, 04 Mar 2024 05:43:07 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/how-to-convert-html-to-pdf-in-c-208o</link>
      <guid>https://dev.to/mohammedibrahimlj/how-to-convert-html-to-pdf-in-c-208o</guid>
      <description>&lt;h2&gt;
  
  
  Html to pdf c
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The necessity to convert HTML pages into &lt;a href="https://en.wikipedia.org/wiki/PDF"&gt;PDF&lt;/a&gt; format has grown in frequency in the digital age. The ability to convert HTML to PDF with ease is quite useful, whether you're archiving site material, preparing invoices, or creating reports. To do this, C# developers frequently look for effective libraries. IronPDF is one such strong utility. This post will go into great detail on the capabilities, usage, and best practices of IronPDF, a Tool for converting HTML to PDF C#.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use HTML to PDF in C
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Set up IronPDF using NuGet.&lt;/li&gt;
&lt;li&gt;Bring in the IronPDF Namespace.&lt;/li&gt;
&lt;li&gt;Construct a PDF Renderer from HTML.&lt;/li&gt;
&lt;li&gt;Convert Text in HTML to PDF.&lt;/li&gt;
&lt;li&gt;Give the path to the output file.&lt;/li&gt;
&lt;li&gt;Save the PDF file.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://ironpdf.com/"&gt;IronPdf&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;IronPDF is a potent C# package that makes creating and modifying PDFs in .NET applications easier. With its help, developers can easily convert HTML material to PDF documents, create new PDFs, edit ones that already exist, print PDF file format using code, implement security controls, extract text, work with interactive forms, and much more. IronPDF is appropriate for a variety of .NET projects, including desktop, web, and cloud-based apps, thanks to its user-friendly API and cross-platform interoperability. IronPDF gives developers the tools they need to work with PDF documents quickly and effectively, whether they're creating reports, archiving web content, or automating document processing chores. Its thorough documentation, user-friendliness, and deep feature set make it the go-to option for PDF-related activities in the C# environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  IronPDF's features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Converting HTML to PDF: Developers can easily convert HTML information to PDF documents with IronPDF. With relative ease, IronPDF can create PDFs from HTML strings, URLs, or pre-existing HTML files. For jobs like producing bills from HTML templates, preserving web content, and producing reports, this feature is quite helpful.&lt;/li&gt;
&lt;li&gt;PDF Rendering: You can programmatically create PDF documents from scratch using IronPDF. By directly adding text, photos, shapes, and other objects to the document, you can use this functionality to generate dynamic PDFs. Custom reports, certificates, and forms can be generated with the PDF because you have complete control over its layout and content.&lt;/li&gt;
&lt;li&gt;Manipulation of PDFs: IronPDF offers complete support for modifying pre-existing PDF files. A PDF can be divided into many files, merged into a single document, have individual pages extracted, or have individual pages altered programmatically. For tasks like document conversion, document assembly, or document management within your program, this capability is helpful.&lt;/li&gt;
&lt;li&gt;PDF Printing: You may print PDF documents programmatically right from your. NET application by using IronPDF. With this capability, you may send PDFs to virtual or physical printers, automate the printing process, and configure print settings. It is very helpful for creating hard copies of documents or adding printing support to your application process.&lt;/li&gt;
&lt;li&gt;PDF Security: To safeguard confidential data, you can add security settings to PDF documents using IronPDF. PDFs can be digitally signed for authentication and integrity checking, password-protected for encryption, and permission-limited to prevent printing, copying, or editing. This functionality makes sure that your PDFs adhere to security guidelines and rules.&lt;/li&gt;
&lt;li&gt;PDF Text Extraction: You can programmatically extract text content from PDF files with IronPDF. For activities like content indexing, data extraction, and text analysis within your application, this capability is helpful. A PDF's versatility for a range of use cases stems from its ability to extract text from selective regions, individual pages, and complete documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go &lt;a href="https://ironpdf.com/docs/"&gt;here&lt;/a&gt; to learn more about the Ironpdf documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a New Project in Visual Studio
&lt;/h3&gt;

&lt;p&gt;Using the File menu, select File to open the Visual Studio application. After selecting "New Project," select "Console application."&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb862jeay1fbmd4mmgx2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb862jeay1fbmd4mmgx2d.png" alt="Image description" width="800" height="506"&gt;&lt;/a&gt;&lt;br&gt;
Once the file location has been selected, enter the project name in the designated text field. Next, click the Create button and select the necessary .NET Framework, as seen in the sample below.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4p4imzi8q429se2ckkyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4p4imzi8q429se2ckkyi.png" alt="Image description" width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
The chosen application will then determine how the Visual Studio project is organized. To create or run the application and add code, simply enter the program.cs file. You can use the console, Windows, or online application.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwgeel4350zaqxcjvkem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwgeel4350zaqxcjvkem.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
The code can then be tested and the library added.&lt;/p&gt;
&lt;h3&gt;
  
  
  Install IronPdf library
&lt;/h3&gt;

&lt;p&gt;Using Visual Studio Tool From the Tools Menu, choose NuGet Package Manager. To access the package management terminal console, enter the Package Manager interface.&lt;br&gt;
&lt;code&gt;Install-Package IronPdf&lt;/code&gt;&lt;br&gt;
The package can now be used in the ongoing project when it has been downloaded and installed.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fly6lw0ie2wxb5ucnx6ve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fly6lw0ie2wxb5ucnx6ve.png" alt="Image description" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Package Manager approach is another option. The NuGet Package Manager option in Visual Studio allows you to install the package directly into the solution. The image below shows you how to open the NuGet Package Manager.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4advskgpff00uhiz94ar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4advskgpff00uhiz94ar.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
To find packages, use the search box on the NuGet website. All we have to do is search for "IronPDF" in the package manager, as the following screenshot shows:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskvbzi13mnlg42hvaat9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskvbzi13mnlg42hvaat9.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above shows the list of pertinent search results. Please make these settings so that the software can be installed on your system.&lt;/p&gt;
&lt;h2&gt;
  
  
  Converting HTML to PDF:
&lt;/h2&gt;

&lt;p&gt;IronPDF offers several ways to convert HTML to PDF, supporting a range of scenarios. Let's examine a few typical situations:&lt;/p&gt;
&lt;h2&gt;
  
  
  Html String to pdf
&lt;/h2&gt;

&lt;p&gt;Use IronPDF's HtmlToPdf class to convert HTML string to PDF. Here's an easy illustration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;

var htmlString = "&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Hello Ironpdf!&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;";
var renderer = new IronPdf.HtmlToPdf();
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);

pdfDocument.SaveAs("output.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We specify HTML content that has the PDF file we wish to convert. Make an instance of the class HtmlToPdf. To turn the HTML string into a PDF document, use the RenderHtmlAsPdf function. Use the SaveAs function to save the PDF document to a file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Html file to PDF
&lt;/h3&gt;

&lt;p&gt;IronPDF can help you convert an existing HTML document to a PDF document.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronPdf;
var htmlFilePath = "input.html";
var renderer = new IronPdf.HtmlToPdf();
var pdfDocument = renderer.RenderUrlAsPdf(htmlFilePath);
pdfDocument.SaveAs("output.pdf");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The path to the HTML file you wish to convert should be specified. Make an instance of the class HtmlToPdf. To transform the HTML file into a PDF document, use the RenderUrlAsPdf function. Use the SaveAs function to save the PDF document to a file.&lt;br&gt;
The IronPDF offers a number of configuration options that let you alter how HTML to PDF printing behaves. These choices cover header/footer, CSS media type, margins, page size, and other configurations. This can also be included if required.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5v5er2l05ymyn5pm9v6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5v5er2l05ymyn5pm9v6.png" alt="Image description" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
You may quickly convert HTML text to PDF files using C# and IronPDF by the above instructions. To suit your unique use case and requirements, modify the code as necessary. To learn more about the Ironpdf code refer &lt;a href="https://ironpdf.com/tutorials/html-to-pdf/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Using C# to convert HTML to PDF is a typical requirement for numerous applications. Developers can easily streamline this process with IronPDF. This article has covered using IronPDF to programmatically convert HTML information to PDF files. Developers can easily create high-quality PDFs by integrating HTML to PDF conversion into their C# projects according to the rules and examples that are supplied. In the C# environment, IronPDF is the go-to tool for PDF creation and modification due to its extensive feature set and user-friendly API.&lt;/p&gt;

&lt;p&gt;IronPDF's $749 Lite edition includes a year of software maintenance, upgrade options, and a permanent license. Users can evaluate the product in real-world scenarios during the watermarked trial period. To learn more about IronPDF's cost, licensing, and a free trial, go to the license &lt;a href="https://ironpdf.com/licensing/"&gt;page&lt;/a&gt;. To find out more about Iron Software, visit this &lt;a href="https://ironsoftware.com/"&gt;page&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>3 Excel Libraries For .NET Developer</title>
      <dc:creator>Mohammed Ibrahim</dc:creator>
      <pubDate>Mon, 30 Oct 2023 09:42:54 +0000</pubDate>
      <link>https://dev.to/mohammedibrahimlj/3-excel-libraries-for-net-developer-32ph</link>
      <guid>https://dev.to/mohammedibrahimlj/3-excel-libraries-for-net-developer-32ph</guid>
      <description>&lt;h2&gt;
  
  
  What is Excel?
&lt;/h2&gt;

&lt;p&gt;A spreadsheet program called Microsoft Excel is produced by Microsoft and is accessible on Windows, macOS, Android, iOS, and iPad. It has math and calculating abilities, graphing tools, pivot tables, and the Visual Basic for Applications (VBA) macro programming language. The Microsoft 365 software suite includes Excel. To organize data manipulations like arithmetic calculations, spreadsheet programs like Excel use a grid of multiple cells organized in numbered, multiple rows, and letter-named columns. Thanks to a wide range of integrated functions, it can meet needs in engineering, finance, and statistics.&lt;/p&gt;

&lt;p&gt;Also, It can display integrated data as charts, line graphs, and histograms and includes a fully functional three-dimensional graphic presentation. Data can be separated into sections to analyze how different factors affect it from different perspectives.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is .Net framework?
&lt;/h2&gt;

&lt;p&gt;Microsoft created the exclusive software framework known as the.NET Framework, which is largely used with Windows. Up until the cross-platform.NET project took its place, it was the Common Language Infrastructure (CLI) implementation that was most widely used. It offers language compatibility across a number of different programming languages and comes with a sizable class library called the Framework Class Library (FCL).&lt;/p&gt;

&lt;p&gt;The Common Language Runtime (CLR) is the software environment in which programs created for the.NET Framework run. Security, memory management, and exception handling are just a few of the functions offered by the CLR, an application virtual machine. As a result, "managed code" refers to computer code created using the.NET Framework. Together, FCL and CLR make up the.NET Framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  FastExcel
&lt;/h2&gt;

&lt;p&gt;FastExcel is a flexible and strong library for reading, writing, editing, and other crucial Excel tasks. All.NET project templates, including ASP.NET, Windows Applications, and.NET Core Applications, are supported. For developers creating.NET applications, FastExcel is incredibly simple to utilize.&lt;/p&gt;

&lt;p&gt;On a local workstation where we need to use the FastExcel library, Microsoft Office does not need to be installed. Additionally, FastExcel does not perform Excel functions using Excel Interop. Working with Excel files in the.NET environment is incredibly simple, quick, and effortless thanks to FastExcel.Without intricate programming knowledge, all Excel operations and calculations are simple to complete using FastExcel.&lt;/p&gt;

&lt;p&gt;With just a few lines of code, developers may use the sum function, multiple rows, and total columns, read and write Excel files, alter Excel tables, add and remove columns and rows, and conduct many other unique Excel actions. The library is open-source. Consequently, it has no pricing structure. You can utilize it for Excel's fundamental features. some code Samples are below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new FileInfo("Template.xlsx"), new FileInfo("OutputData.xlsx")))
{
 //Create a excel worksheets with some rows using List
 var worksheet = new Worksheet();
 var rows = new List();
 for (int rowNumber = 1; rowNumber &amp;lt; 5; rowNumber++)
 {
  List cells = new List();
  for (int columnNumber = 1; columnNumber &amp;lt; 13; columnNumber++)
  {
   cells.Add(new Cell(columnNumber, columnNumber * DateTime.Now.Millisecond));
  }
  cells.Add(new Cell(13,"FileFormat" + rowNumber));
  cells.Add(new Cell(14,"Dog"));
  cells.Add(new Cell(15,"Cat"));
  rows.Add(new Row(rowNumber, cells));
 }
 worksheet.Rows = rows;

 fastExcel.Write(worksheet,"sheet1");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  IronXL
&lt;/h2&gt;

&lt;p&gt;The C# IronXL.NET Excel library allows you to read Microsoft Excel documents and convert them to CSV files. It is not necessary to install Microsoft Office or Microsoft.Office.Interop.Excel in order for IronXL, a standalone.NET software library, to read numerous spreadsheet formats.&lt;/p&gt;

&lt;p&gt;IronXL's straightforward C# API makes it simple to read, edit, and generate Excel spreadsheets in a.NET environment. IronXL offers complete support for Azure,.NET Core,.NET Framework, Xamarin, Mobile, Linux, and macOS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With support for both the.NET Framework and.NET Core, IronXL is among the greatest Excel spreadsheet libraries for C#.&lt;/li&gt;
&lt;li&gt;Virtually every.NET Framework is supported by IronXL, including Windows Forms, console programs, and web programs.&lt;/li&gt;
&lt;li&gt;The Windows, Linux, and macOS operating systems are all compatible with IronXL.&lt;/li&gt;
&lt;li&gt;Read and writing Excel files by using IronXL is quick and easy.&lt;/li&gt;
&lt;li&gt;XLSX, CSV, XLS, XLST, TSV, XLSM, and additional Excel file types can all be read by IronXL. The ability to import, update, and export data tables and datasets is only one of several possibilities available to us.&lt;/li&gt;
&lt;li&gt;Calculations for Excel can be produced by IronXL.&lt;/li&gt;
&lt;li&gt;Text, numbers, formulas, dates, currencies, and percentages are just a few of the Excel column data formats that IronXL supports.&lt;/li&gt;
&lt;li&gt;Excel column data types supported by IronXL include text, integers, formulas, dates, currencies, and percentages.
There are three pricing tiers for IronXL. The entry-level package costs $749. However, it is free for use in development. Also available is a 30-day free trial. The provided image contains further details. The code sample is below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using IronXL;
//reading excel files using Load method
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
//Display cell data one by one
foreach (var cell in sheet["A1:B10"])
{
    Console.WriteLine(cell.Text);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  EPPlus
&lt;/h2&gt;

&lt;p&gt;Access to Excel's objects and operations, including VBA and API, is made possible through the EPPlus C# Excel Library. With EPPlus, programmers may use Excel to create sophisticated applications or quickly create spreadsheets.&lt;/p&gt;

&lt;p&gt;The library has tools for editing pivot table fields, and spreadsheets, producing charts and graphs, managing rows and columns, working with pictures, and exporting data to various formats. Microsoft Excel or any other library is not a dependency on EPPlus. EPPlus is constantly changing to meet user needs and adapt to changes in the Excel spreadsheet environment. It is not just a static library.&lt;/p&gt;

&lt;p&gt;You can track their changelog's development by doing so. NuGet distributes EPPlus. Version 5 of EPPlus is compatible with.NET Framework starting at version 3.5 and.NET Core starting at version 2.0.EPPlus's pricing schemes are a little bit hazy. They didn't give detailed explanations of how the pricing plans operate whether we need to make yearly purchases or if they are ongoing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The top libraries in every discipline are all outstanding. But each library has advantages and disadvantages. Since EPPlus lacks a tutorial manual, developers are unaware of how this library will function. But it has a GitHub repository. Additionally, the pricing structure is unclear.&lt;/p&gt;

&lt;p&gt;Although it is sound, the fast Excel library has few features. However, as it is an open-source library, we are able to use it in projects for profit. A brief Excel library, however, is not, in my opinion, compatible with major projects. If you chose IronXL or EPPlus library to leverage Excel operations in your significant commercial project, that would be beneficial.&lt;/p&gt;

&lt;p&gt;With all the sophisticated capabilities we need for a complex Excel application, the IronXL library is a mature library. The great thing is that it provides a 30-day free trial in the ads, making it simple to check if it is compatible.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
