Question

Je souhaite convertir une image (au format jpg ou png) en PDF.

J'ai vérifié ImageMagickNET , mais c'est beaucoup trop complexe pour mes besoins.

Quels sont les autres solutions .NET ou codes disponibles pour convertir une image au format PDF?

Était-ce utile?

La solution

iTextSharp le fait assez proprement et est open source. En outre, il s'agit de un très bon livre d'accompagnement de l'auteur que je recommande si vous finissez par faire des choses plus intéressantes comme la gestion des formulaires. Pour une utilisation normale, il existe de nombreuses ressources sur les listes de diffusion et les groupes de discussion pour vous familiariser avec les tâches courantes.

EDIT: comme mentionné dans le commentaire de @ Chirag , La réponse de @ Darin a un code qui est définitivement compilé avec les versions actuelles.

Exemple d'utilisation:

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);
        }
    }
}

Autres conseils

Facile avec 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();
        }
    }
}

PDFSharp est un de ceux avec lequel nous avons eu beaucoup de chance (nous l’utilisons tous les jours pour la conversion de fichiers TIFF et de texte en PDF dans des centaines de demandes de remboursement de frais médicaux).

http://pdfsharp.com/PDFsharp/

Un autre code de travail, essayez-le

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());
        }
}

Cette tâche peut être facilement réalisée à l'aide de la bibliothèque Docotic.Pdf .

Voici un exemple qui crée un PDF à partir d'images données (pas uniquement des fichiers JPG, en fait):

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);
    }
}

Avertissement: je travaille pour le fournisseur de la bibliothèque.

ne savez pas si vous recherchez uniquement des solutions libres / à code source ouvert ou envisagez des solutions commerciales. Mais si vous incluez des solutions commerciales, il existe une boîte à outils appelée EasyPDF SDK qui propose une API permettant de convertir des images (ainsi que plusieurs autres types de fichiers) au format PDF. Il supporte C # et peut être trouvé ici:

 http://www.pdfonline.com/

Le code C # ressemblerait à ceci:

 Printer oPrinter = new Printer();

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

Pour être totalement transparent, je dois dire que je travaille pour les concepteurs de EasyPDF SDK (d’où ma poignée), cette suggestion n’est donc pas sans parti pris personnel :) Mais n'hésitez pas à consulter la version eval si vous le souhaitez. re intéressé À la vôtre!

Nombreux outils de diff disponibles. PrimoPDF (FREE) http://www.primopdf.com/ , vous allez imprimer le fichier et vous l’imprimez au format pdf sur votre lecteur. fonctionne sur Windows

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top