Domanda

Vorrei convertire da un'immagine (come jpg o png) in PDF.

Ho verificato ImageMagickNET , ma è troppo complesso per le mie esigenze.

Quali altre soluzioni o codici .NET esistono per convertire un'immagine in PDF?

È stato utile?

Soluzione

iTextSharp lo fa in modo abbastanza pulito ed è open source. Inoltre, ha un ottimo libro di accompagnamento dell'autore che consiglio se finisci per fare cose più interessanti come la gestione dei moduli. Per un uso normale, ci sono molte risorse su mailing list e newsgroup per esempi su come fare cose comuni.

EDIT: come accennato in @ commento di Chirag , La risposta di @ Darin ha un codice che si compila sicuramente con le versioni attuali.

Esempio di utilizzo:

public static void ImagesToPdf(string[] imagepaths, string pdfpath)
{
    using(var doc = new iTextSharp.text.Document())
    {
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pdfpath, FileMode.Create));
        doc.Open();
        foreach (var item in imagepaths)
        {
            iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(item);
            doc.Add(image);
        }
    }
}

Altri suggerimenti

Facile con iTextSharp :

class Program
{
    static void Main(string[] args)
    {
        Document document = new Document();
        using (var stream = new FileStream("test.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
        {
            PdfWriter.GetInstance(document, stream);
            document.Open();
            using (var imageStream = new FileStream("test.jpg", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                var image = Image.GetInstance(imageStream);
                document.Add(image);
            }
            document.Close();
        }
    }
}

Uno di cui abbiamo avuto grande fortuna è PDFSharp (lo usiamo per la conversione da TIFF e da Text a PDF per centinaia di richieste mediche ogni giorno).

http://pdfsharp.com/PDFsharp/

Un altro codice funzionante, provalo

public void ImagesToPdf(string[] imagepaths, string pdfpath)
{
        iTextSharp.text.Rectangle pageSize = null;

        using (var srcImage = new Bitmap(imagepaths[0].ToString()))
        {
            pageSize = new iTextSharp.text.Rectangle(0, 0, srcImage.Width, srcImage.Height);
        }

        using (var ms = new MemoryStream())
        {
            var document = new iTextSharp.text.Document(pageSize, 0, 0, 0, 0);
            iTextSharp.text.pdf.PdfWriter.GetInstance(document, ms).SetFullCompression();
            document.Open();
            var image = iTextSharp.text.Image.GetInstance(imagepaths[0].ToString());
            document.Add(image);
            document.Close();

            File.WriteAllBytes(pdfpath+"cheque.pdf", ms.ToArray());
        }
}

Tale compito può essere facilmente svolto con l'aiuto della libreria Docotic.Pdf .

Ecco un esempio che crea PDF da determinate immagini (non solo JPG, in realtà):

public static void imagesToPdf(string[] images, string pdfName)
{
    using (PdfDocument pdf = new PdfDocument())
    {
        for (int i = 0; i < images.Length; i++)
        {
            if (i > 0)
                pdf.AddPage();

            PdfPage page = pdf.Pages[i];
            string imagePath = images[i];
            PdfImage pdfImage = pdf.AddImage(imagePath);

            page.Width = pdfImage.Width;
            page.Height = pdfImage.Height;
            page.Canvas.DrawImage(pdfImage, 0, 0);
        }

        pdf.Save(pdfName);
    }
}

Dichiarazione di non responsabilità: lavoro per il fornitore della libreria.

non sono sicuro se stai cercando solo soluzioni free / open source o se stai prendendo in considerazione anche quelle commerciali. Ma se includi soluzioni commerciali, c'è un toolkit chiamato EasyPDF SDK che offre un'API per convertire le immagini (oltre a una serie di altri tipi di file) in PDF. Supporta C # e può essere trovato qui:

 http://www.pdfonline.com/

Il codice C # sarebbe simile al seguente:

 Printer oPrinter = new Printer();

 ImagePrintJob oPrintJob = oPrinter.ImagePrintJob;
 oPrintJob.PrintOut(imageFile, pdfFile);

Per essere completamente trasparente, dovrei negare che lavoro per i produttori di SDK EasyPDF (quindi il mio handle), quindi questo suggerimento non è privo di pregiudizi personali :) Ma sentiti libero di dare un'occhiata alla versione di valutazione se ' sei interessato. Cheers!

Molti strumenti diff disponibili. Uno che uso è PrimoPDF (GRATUITO) http://www.primopdf.com/ vai a stampare il file e lo stampi in formato pdf sul tuo disco. funziona su Windows

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top