Soluzione C# per la conversione da PDF a immagine

2024-02-01 08:49:30

C# Solution for PDF to Image Conversion

I file PDF sono ampiamente utilizzati nel lavoro quotidiano grazie al loro layout stabile, facile trasferibilità e alta leggibilità. In alcuni casi, potrebbe essere necessario convertire i PDF in immagini. Il salvataggio dei contenuti come immagini non solo accelera il caricamento, ma riduce anche il rischio di modifiche accidentali. Inoltre, se desideri incorporare file o pagine PDF in altri documenti o pagine Web, convertirli nei formati immagine specificati è una scelta eccellente. Questo passaggio copre i dettagli di utilizzando C# per convertire PDF in immagine. Inoltre, puoi convertire facilmente i PDF nei formati immagine desiderati con il codice C# preservando la fedeltà visiva del contenuto originale.

Libreria C# per la conversione PDF

Questo articolo illustra come convertire PDF in immagine utilizzando Spire.PDF for .NET, una libreria di elaborazione PDF affidabile che consente di manipolare e convertire file PDF all'interno di applicazioni .NET. Con esso, puoi persino regolare le proprietà dell'immagine, come dimensioni e pixel, durante la conversione da PDF a immagine.
Oltre alle immagini, questa libreria ti consente anche di convertire PDF in Word, PDF in HTML, PDF in XPS e così via.

Puoi scaricarlo e fare riferimento manualmente al file DLL oppure installarlo tramite NuGet utilizzando il comando seguente:

PM> Install-Package Spire.PDF

Classificazione dei formati di immagine

Nella computer grafica le immagini possono essere classificate in due categorie principali:

  • Immagini bitmap sono composti da una griglia di singoli pixel, in cui a ciascun pixel viene assegnato un colore specifico. I formati di immagine bitmap comuni includono PNG, JPG, BMP, EMF e TIFF.
  • Grafica vettoriale, d'altra parte, rappresentare immagini utilizzando equazioni matematiche e forme geometriche come linee, curve e poligoni. Formati grafici vettoriali comuni includere SVG ed EPS.

Attualmente, Spire.PDF for .NET supporta i formati PNG/JPG/BMP/EMF/TIFF/SVG. Successivamente, ti fornirò i dettagli di ciascuna conversione.

Converti PDF in PNG/JPG/BMP/EMF/TIFF in C#

Passi

  1. Crea un'istanza PdfDocument e carica un file PDF dal disco utilizzando il metodo LoadFromFile().
  2. Chiama il metodo SaveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) per convertire la pagina specificata in un'immagine.
  3. Infine, salva le immagini come file JPG utilizzando il metodo Image.Save(string filename, ImageFormat format). In questo caso, prendo come esempio il PDF in JPG. Puoi anche cambiare il formato, se lo desideri.

Codice d'esempio

  • C#
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System.Drawing.Imaging;
    
    namespace PDFtoImage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                //Convert the first page to an image and set the image Dpi
                Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap, 500, 500);
    
                //Save images as JPG format to a specified folder 
                image.Save("C:\\Users\\Administrator\\Desktop\\Image\\ToImage.jpg", ImageFormat.Jpeg);
    
                //Close the document
                pdf.Close();
            }
        }
    }

Converti PDF in SVG in C#

Passi

  1. Crea un'istanza PdfDocument e carica un file PDF dal disco utilizzando il metodo LoadFromFile().
  2. Converti la prima pagina in SVG utilizzando il metodo SaveToFile(string filename, int startIndex, int endIndex, FileFormat fileFormat). È possibile specificare l'indice della pagina che si desidera convertire nel parametro.

Codice d'esempio

  • C#
using Spire.Pdf;
    
    namespace PDFtoSVG
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                //Convert the first page to SVG
                pdf.SaveToFile("C:\\Users\\Administrator\\Desktop\\Image\\ToImage.svg", 0, 0, FileFormat.SVG);
    
                //Close the document
                pdf.Close();
            }
        }
    }

Converti PDF in TIFF a più pagine in C#

Rispetto ad altri formati di immagine, TIFF consente di archiviare più immagini o pagine in un unico file. Questa funzionalità lo rende in alcuni casi una scelta popolare tra gli utenti.

In questa sezione ti mostrerò come convertire un file PDF in un file TIFF multipagina. Per ottenere questa conversione, possiamo personalizzare i seguenti metodi.
  • Il metodo SaveAsImage() supporta la conversione di ogni pagina PDF in un'immagine e quindi restituisce una serie di immagini.
  • Il metodo GetEncoderInfo() supporta la ricerca e la restituzione di informazioni sul codificatore di immagini corrispondenti in base al tipo MIME specificato.
  • Il metodo JoinTiffImages() viene utilizzato per unire più immagini in un singolo file TIFF. Funziona eseguendo il looping di ciascuna immagine nell'array di immagini e salvandola in base ai parametri del codificatore specificati.

Passi

  1. Crea un'istanza PdfDocument e carica un file PDF dal disco utilizzando il metodo LoadFromFile().
  2. Chiama il metodo SaveAsImage() per convertire ogni pagina del PDF in un'immagine e salvarla nell'array di immagini.
  3. Infine, chiama il metodo JoinTiffImages() per unire le immagini TIFF convertite in un file TIFF multipagina.

Codice d'esempio

  • C#
using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using Spire.Pdf;
    namespace SavePdfAsTiff
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                // Load the PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                // Convert PDF pages to images and save them as an image array
                Image[] images = SaveAsImage(pdf);
    
                // Merge the converted TIFF images into a multi-page TIFF file
                JoinTiffImages(images, "C:\\Users\\Administrator\\Desktop\\Image\\ToImage.tiff", EncoderValue.CompressionLZW);
            }
    
            private static Image[] SaveAsImage(PdfDocument pdf)
            {
                // Create an image array with the size equal to the number of PDF pages
                Image[] images = new Image[pdf.Pages.Count];
    
                //Iterate through each page of PDF
                for (int i = 0; i < pdf.Pages.Count; i++)
                {
                    //Convert these pages to images 
                    images[i] = pdf.SaveAsImage(i);
                }
                return images;
            }
    
            private static ImageCodecInfo GetEncoderInfo(string mimeType)
            {
                // Get all available image encoders
                ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
                for (int j = 0; j < encoders.Length; j++)
                {
                    // Find the encoder that matches the specified mime type
                    if (encoders[j].MimeType == mimeType)
                        return encoders[j];
                }
                // An exception is thrown if no matching encoder is found
                throw new Exception(mimeType + " mime type not found in ImageCodecInfo");
            }
    
            public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)
            {
                //Set the parameters of the image encoder
                Encoder enc = Encoder.SaveFlag;
                EncoderParameters ep = new EncoderParameters(2);
                ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
                ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);
    
                // Initialize the first image as the base for merging
                Image pages = images[0];
                int frame = 0;
    
                // Get the encoder information for TIFF format
                ImageCodecInfo info = GetEncoderInfo("image/tiff");
    
                // Iterate through each image
                foreach (Image img in images)
                {
                    if (frame == 0)
                    {
                        // If it's the first frame, set it as the current base image
                        pages = img;
    
                        // Save the first frame using the specified encoder parameters
                        pages.Save(outFile, info, ep);
                    }
                    else
                    {
                        // For intermediate frames, update the encoder parameter to indicate a new page
                        ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
    
                        // Save the intermediate frame
                        pages.SaveAdd(img, ep);
                    }
                    if (frame == images.Length - 1)
                    {
                        // If it's the last frame, flush the encoder parameters to close the file
                        ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
                        pages.SaveAdd(ep);
                    }
                    frame++;
                }
            }
        }
    }

Prova gratuita della libreria C#

Spire.PDF for .NET fornisce un utilizzo gratuito per aiutare gli utenti a valutare meglio le funzionalità del prodotto senza restrizioni. Puoi ottenere a Licenza temporanea gratuita di 30 giorni dal seguente collegamento per convertire PDF in immagine in C#.

Conclusione

In questo post hai imparato come convertire PDF nei formati di immagine più diffusi utilizzando C#. Spire.PDF for .NET può anche aiutarti con altre attività di elaborazione PDF, come creazione di PDF, unione di PDF, confronto di PDF e così via. In una parola, questa libreria semplifica il processo e consente agli sviluppatori di concentrarsi sulla creazione di potenti applicazioni che implicano attività di manipolazione dei PDF.

Guarda anche