Create PDF From Byte Array C# iTextSharp (vs PDF Focus .Net)

To create a PDF from a byte array using iTextSharp in C#, you can use the following code:

Write the conversion code:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public void CreatePDFFromByteArray(byte[] byteArray, string outputPath)
{
    // Create a new MemoryStream from the byte array
    using (var stream = new MemoryStream(byteArray))
    {
        using (var document = new Document())
        {
            // Create a new PdfWriter
            using (var writer = PdfWriter.GetInstance(document, new FileStream(outputPath, FileMode.Create)))
            {
                // Open the document
                document.Open();

                // Set the content type and size of the page
                document.Add(new Chunk());

                // Create a new PdfContentByte from the writer
                var cb = writer.DirectContent;

                // Create a new PdfReader using the MemoryStream
                using (var reader = new PdfReader(stream))
                {
                    // Loop through each page of the PDF and add it to the new document
                    for (int pageNumber = 1; pageNumber <= reader.NumberOfPages; pageNumber++)
                    {
                        // Get the page size
                        var pageSize = reader.GetPageSize(pageNumber);

                        // Create a new page in the new document
                        document.SetPageSize(pageSize);
                        document.NewPage();

                        // Create a PdfImportedPage from the PdfReader
                        var importedPage = writer.GetImportedPage(reader, pageNumber);

                        // Add the imported page to the new document
                        cb.AddTemplate(importedPage, 0, 0);
                    }
                }

                // Close the document and writer
                document.Close();
                writer.Close();
            }
        }
    }
}

To use this code, you need to have iTextSharp installed in your project. You can install it via NuGet by running the following command in the NuGet Package Manager Console:

Install-Package iTextSharp

Make sure to replace `byteArray` with your actual byte array and `outputPath` with the path where you want to save the resulting PDF file.

After running this code, a PDF file will be created at the specified `outputPath`, containing the pages from the byte array.

Please note that the iTextSharp library is no longer maintained by its original developers and there are other alternatives available for PDF to image conversion in C#.

To create a PDF from a byte array in C# using the PDFFocus .NET library, you can follow the steps below:

  1. Install the PDFFocus .NET library by adding a NuGet package reference to your project.
    - Open the NuGet Package Manager Console.
    - Run the following command to install the PDFFocus package:
    Install-Package SautinSoft.PdfFocus
  2. Import the necessary namespaces in your C# code file:
    using SautinSoft.PdfFocus;
  3. Use the PDFFocus class to convert the byte array into a PDF document:
    byte[] pdfBytes = ... // Your byte array containing PDF data
       PdfFocus pdfFocus = new PdfFocus();
       pdfFocus.OpenPdf(pdfBytes);
       if (pdfFocus.PageCount > 0)
       {
           // Output path where the PDF file will be saved
           string outputPath = "path/to/output.pdf";
           pdfFocus.ToPdf(outputPath);
           Console.WriteLine($"PDF created successfully at {outputPath}");
       }
       else
       {
           Console.WriteLine("No pages found in the PDF byte array.");
       }
    
  4. Replace `"path/to/output.pdf"` with your desired output file path.