6
votes

I have an application where I need to convert PNG files PDF on the fly. Is there an existing library that will do this? I would like the PDF to look exactly like the PNG--no extra margins, no borders, etc.

I'm using .NET 4.0.

EDIT: I tried iTextSharp and it worked great. Here's the basic code to get what I needed.

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public class ITextPDFHelper
{
    public static void Main(string[] args)
    {
        ITextPDFHelper.CreatePDF("C:\\temp\test.pdf", "C:\\temp\test.png");
    }

    public static void CreatePDF(string fileToCreate, pngFileName)
    {
        Document doc = new Document();
        PdfWriter.GetInstance(doc, new FileStream(fileToCreate, FileMode.Create));
        doc.Open();
        Image png = Image.GetInstance(pngFileName);
        png.SetAbsolutePosition(0, 0);
        doc.Add(png);
        doc.Close();
    }//CreatePDF
}
3
Just out of curiosity, what would be a scenario for such a requirement? In my opinion, PNG is the more "open" format that is readable by a broader range of clients. So putting it into a PDF acutally locks it down (which can be a possible scenario on its own...). - Uwe Keim
@Uwe -- I have an app where I dynamically generate PNG files. I want to put them in a "final" format for my end users. I'm basically creating pamphlets. - Jim

3 Answers

6
votes

You mean, a pdf document containing a single page with your picture in it? Take a look at ITextSharp

1
votes

ImageMagick is how I would usually do something like this...so check out ImageMagick.NET.

I'm not familiar with ImageMagick.NET's syntax, but with ImageMagick, this is the command you would use:

convert source.png dest.pdf

As you can see, it's relatively simple.

0
votes

For various PDF operations, I am using Aspose.Pdf and related products like Aspose.Pdf.Kit.

I think it is not the most direct solution but it should be usable to achieve your desired result.