web-dev-qa-db-fra.com

comment convertir des fichiers pdf en image

J'ai des fichiers. Son format est PDF . Il existe maintenant un projet, ce projet doit convertir le fichier PDF en image. Si le PDF est composé de plusieurs pages , Je n'ai besoin que d'une image contenant toutes les pages PDF . Quelques réponses de Google, mais certains outils sont facturés.

Alors, comment le résoudre avec C #? Merci beaucoup!

Je sais, utiliser Acrobat.dll en C # peut résoudre ce problème, mais il faut installer Adobe Acrobat et ce n’est pas gratuit. 

6
loveForEver

Le fil suivant est adapté à votre requête . convertir un fichier pdf en une image jpeg

Une solution consiste à utiliser une bibliothèque tierce. ImageMagick est un logiciel très populaire et disponible gratuitement. Vous pouvez obtenir un wrapper .NET pour cela ici . La page de téléchargement originale d'ImageMagick est ici .

Et vous pouvez également consulter ce fil de discussion: comment ouvrir une page à partir d’un fichier pdf dans PictureBox en C #

Si vous utilisez ce processus pour convertir un PDF en tiff , vous pouvez utiliser cette classe pour extraire le bitmap de tiff.

public class TiffImage
{
    private string myPath;
    private Guid myGuid;
    private FrameDimension myDimension;
    public ArrayList myImages = new ArrayList();
    private int myPageCount;
    private Bitmap myBMP;

    public TiffImage(string path)
    {
        MemoryStream ms;
        Image myImage;

        myPath = path;
        FileStream fs = new FileStream(myPath, FileMode.Open);
        myImage = Image.FromStream(fs);
        myGuid = myImage.FrameDimensionsList[0];
        myDimension = new FrameDimension(myGuid);
        myPageCount = myImage.GetFrameCount(myDimension);
        for (int i = 0; i < myPageCount; i++)
        {
            ms = new MemoryStream();
            myImage.SelectActiveFrame(myDimension, i);
            myImage.Save(ms, ImageFormat.Bmp);
            myBMP = new Bitmap(ms);
            myImages.Add(myBMP);
            ms.Close();
        }
        fs.Close();
    }
}

Utilisez-le comme suit:

private void button1_Click(object sender, EventArgs e)
{
    TiffImage myTiff = new TiffImage("D:\\Some.tif");
    //imageBox is a PictureBox control, and the [] operators pass back
    //the Bitmap stored at that position in the myImages ArrayList in the TiffImage
    this.pictureBox1.Image = (Bitmap)myTiff.myImages[0];
    this.pictureBox2.Image = (Bitmap)myTiff.myImages[1];
    this.pictureBox3.Image = (Bitmap)myTiff.myImages[2];
}
12
Gaurav Deochakke

Vous pouvez utiliser Ghostscript pour convertir PDF en images.

Pour utiliser Ghostscript à partir de .NET, vous pouvez jeter un oeil à Ghostscript.NET library (encapsuleur géré autour de la bibliothèque Ghostscript).

Pour produire image à partir de PDF à l'aide de Ghostscript.NET, consultez RasterizerSample .

Pour combiner plusieurs images en une seule image, consultez cet exemple: http://www.niteshluharuka.com/2012/08/combine-several-images-to-form-a-single-image-using-c/ #

11
HABJAN

Quant à 2018, toujours pas de réponse simple à la question de savoir comment convertir PDF en image en C #; de nombreuses bibliothèques utilisent GhostScript sous licence AGPL et dans la plupart des cas, une licence commerciale coûteuse est nécessaire pour une utilisation en production.

Une bonne alternative pourrait être d'utiliser l'utilitaire poppler 'pdftoppm' qui possède une licence GPL; il peut être utilisé à partir de C # comme outil de ligne de commande exécuté avec System.Diagnostics.Process. Les outils Poppler sont bien connus dans le monde Linux, mais windows build est également disponible.

Si vous ne souhaitez pas intégrer pdftoppm vous-même, vous pouvez utiliser mon PdfRenderer poppler wrapper (supporte à la fois le .NET Framework classique et le .NET Core).

3

(Avertissement j'ai travaillé sur ce composant chez Software Siglo XXI)}

Vous pouvez utiliser Super Pdf2Image Converter pour générer un fichier multipage TIFF avec toutes les pages rendues du fichier PDF en haute résolution. Il est disponible pour les 32 et 64 bits et est très économique et efficace. Je vous recommande de l'essayer.

Juste une ligne de code ...

GetImage(outputFileName, firstPage, lastPage, resolution, imageFormat)

Converts specifies pages to image and save them to outputFileName (tiff allows multi-page or creates several files)

Vous pouvez jeter un oeil ici: http://softwaresigloxxi.com/SuperPdf2ImageConverter.html

0
M. Cota