PDF to Image .NET Examples

These examples demonstrate common PDF to Image API workflows in .NET.


Basic examples

PDF file to PNG file

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and save the result to a file.
            client.convertFileToFile("/path/to/invoice.pdf", "invoice.zip");
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

PDF file to in-memory PNG

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and store the result in the `png` variable.
            byte[] png = client.convertFile("/path/to/invoice.pdf");

            // at this point the "png" variable contains PNG raw data and
            // can be sent in an HTTP response, saved to a file, etc.
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

PDF file to PNG stream

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Create an output stream for the conversion result
            FileStream outputStream = new FileStream("invoice.zip", FileMode.CreateNew);

            // run the conversion and write the result to the output stream.
            client.convertFileToStream("/path/to/invoice.pdf", outputStream);

            // Close the output stream.
            outputStream.Close();
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

PDF url to PNG file

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and save the result to a file.
            client.convertUrlToFile("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf", "invoice.zip");
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

PDF url to in-memory PNG

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and store the result in the `png` variable.
            byte[] png = client.convertUrl("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf");

            // at this point the "png" variable contains PNG raw data and
            // can be sent in an HTTP response, saved to a file, etc.
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

PDF url to PNG stream

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Create an output stream for the conversion result
            FileStream outputStream = new FileStream("invoice.zip", FileMode.CreateNew);

            // run the conversion and write the result to the output stream.
            client.convertUrlToStream("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf", outputStream);

            // Close the output stream.
            outputStream.Close();
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

In-memory PDF to PNG file

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and save the result to a file.
            client.convertRawDataToFile(File.ReadAllBytes("/path/to/hello_world.pdf"), "invoice.zip");
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

In-memory PDF to in-memory PNG

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Run the conversion and store the result in the `png` variable.
            byte[] png = client.convertRawData(File.ReadAllBytes("/path/to/hello_world.pdf"));

            // at this point the "png" variable contains PNG raw data and
            // can be sent in an HTTP response, saved to a file, etc.
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

In-memory PDF to PNG stream

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setForceZip(true);

            // Create an output stream for the conversion result
            FileStream outputStream = new FileStream("invoice.zip", FileMode.CreateNew);

            // run the conversion and write the result to the output stream.
            client.convertRawDataToStream(File.ReadAllBytes("/path/to/hello_world.pdf"), outputStream);

            // Close the output stream.
            outputStream.Close();
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

Get info about the current conversion

using System;
using System.IO;

public class ApiTest
{
    public static void Main()
    {
        try
        {
            // Create an API client instance.
            pdfcrowd.PdfToImageClient client =
                new pdfcrowd.PdfToImageClient("demo", "demo");

            // If unsure whether the input is a single-page file, enforce ZIP output.
            client.setOutputFormat("png");
            client.setDebugLog(true);
            client.setForceZip(true);

            // Run the conversion and save the result to a file.
            client.convertFileToFile("/path/to/invoice.pdf", "invoice.zip");
            
            // print URL pointing to the debug log for this request.
            System.Console.WriteLine("Debug log url: " + client.getDebugLogUrl());
            
            // print number of conversion credits remaining in your account.
            System.Console.WriteLine("Remaining credit count: " + client.getRemainingCreditCount());
            
            // print number of credits consumed for this conversion.
            System.Console.WriteLine("Consumed credit count: " + client.getConsumedCreditCount());
            
            // print unique identifier assigned to this conversion job.
            System.Console.WriteLine("Job id: " + client.getJobId());
            
            // print total number of pages in the output document.
            System.Console.WriteLine("Page count: " + client.getPageCount());
            
            // print size of the output data in bytes.
            System.Console.WriteLine("Output size: " + client.getOutputSize());
        }
        catch(pdfcrowd.Error why)
        {
            System.Console.Error.WriteLine("PDFCrowd Error: " + why);
            throw;
        }
    }
}

ASP.NET Web Forms examples

PDF file to PNG in ASP.NET Web Forms

using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.Mvc;

namespace PdfcrowdDemo
{
    public partial class Default: System.Web.UI.Page
    {
        protected override void Render(HtmlTextWriter writer)
        {
            try
            {
                // Create an API client instance.
                pdfcrowd.PdfToImageClient client =
                    new pdfcrowd.PdfToImageClient("demo", "demo");

                // If unsure whether the input is a single-page file, enforce ZIP output.
                client.setOutputFormat("png");
                client.setForceZip(true);

                // Run the conversion and store the result in the `png` variable.
                byte[] png = client.convertFile("/path/to/invoice.pdf");

                // Set HTTP response headers.
                Response.ContentType = "image/png";
                Response.Headers.Add("Cache-Control", "max-age=0");
                Response.Headers.Add("Accept-Ranges", "none");
                Response.Headers.Add("Content-Disposition", "attachment; filename*=UTF-8''" + Uri.EscapeUriString("invoice.zip"));

                // Send the result in the HTTP response.
                Response.OutputStream.Write(png, 0, png.Length);
                Response.Flush();
            }
            catch(pdfcrowd.Error why)
            {
                // Send the error in the HTTP response.
                Response.StatusCode = why.getStatusCode();
                Response.StatusDescription = why.ToString();
            }
        }
    }
}

PDF url to PNG in ASP.NET Web Forms

using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.Mvc;

namespace PdfcrowdDemo
{
    public partial class Default: System.Web.UI.Page
    {
        protected override void Render(HtmlTextWriter writer)
        {
            try
            {
                // Create an API client instance.
                pdfcrowd.PdfToImageClient client =
                    new pdfcrowd.PdfToImageClient("demo", "demo");

                // If unsure whether the input is a single-page file, enforce ZIP output.
                client.setOutputFormat("png");
                client.setForceZip(true);

                // Run the conversion and store the result in the `png` variable.
                byte[] png = client.convertUrl("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf");

                // Set HTTP response headers.
                Response.ContentType = "image/png";
                Response.Headers.Add("Cache-Control", "max-age=0");
                Response.Headers.Add("Accept-Ranges", "none");
                Response.Headers.Add("Content-Disposition", "attachment; filename*=UTF-8''" + Uri.EscapeUriString("invoice.zip"));

                // Send the result in the HTTP response.
                Response.OutputStream.Write(png, 0, png.Length);
                Response.Flush();
            }
            catch(pdfcrowd.Error why)
            {
                // Send the error in the HTTP response.
                Response.StatusCode = why.getStatusCode();
                Response.StatusDescription = why.ToString();
            }
        }
    }
}

In-memory PDF to PNG in ASP.NET Web Forms

using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.Mvc;

namespace PdfcrowdDemo
{
    public partial class Default: System.Web.UI.Page
    {
        protected override void Render(HtmlTextWriter writer)
        {
            try
            {
                // Create an API client instance.
                pdfcrowd.PdfToImageClient client =
                    new pdfcrowd.PdfToImageClient("demo", "demo");

                // If unsure whether the input is a single-page file, enforce ZIP output.
                client.setOutputFormat("png");
                client.setForceZip(true);

                // Run the conversion and store the result in the `png` variable.
                byte[] png = client.convertRawData(File.ReadAllBytes("/path/to/hello_world.pdf"));

                // Set HTTP response headers.
                Response.ContentType = "image/png";
                Response.Headers.Add("Cache-Control", "max-age=0");
                Response.Headers.Add("Accept-Ranges", "none");
                Response.Headers.Add("Content-Disposition", "attachment; filename*=UTF-8''" + Uri.EscapeUriString("invoice.zip"));

                // Send the result in the HTTP response.
                Response.OutputStream.Write(png, 0, png.Length);
                Response.Flush();
            }
            catch(pdfcrowd.Error why)
            {
                // Send the error in the HTTP response.
                Response.StatusCode = why.getStatusCode();
                Response.StatusDescription = why.ToString();
            }
        }
    }
}