C#-Lösung für die PDF-zu-Bild-Konvertierung

2024-02-01 08:57:44

C# Solution for PDF to Image Conversion

PDF-Dateien werden aufgrund ihres stabilen Layouts, der einfachen Übertragbarkeit und der guten Lesbarkeit häufig in der täglichen Arbeit verwendet. In einigen Fällen müssen Sie möglicherweise PDF-Dateien in Bilder konvertieren. Das Speichern von Inhalten als Bilder beschleunigt nicht nur das Laden, sondern verringert auch das Risiko einer versehentlichen Bearbeitung. Wenn Sie außerdem PDF-Dateien oder -Seiten in andere Dokumente oder Webseiten einbetten möchten, ist die Konvertierung in bestimmte Bildformate eine ausgezeichnete Wahl. Diese Passage behandelt die Details von Verwenden von C# zum Konvertieren von PDF in ein Bild. Und Sie können PDF-Dateien mühelos mit C#-Code in die gewünschten Bildformate konvertieren und dabei die visuelle Wiedergabetreue des Originalinhalts bewahren.

C#-Bibliothek für die PDF-Konvertierung

In diesem Artikel wird gezeigt, wie Sie mit Spire.PDF for .NET, einer zuverlässigen PDF-Verarbeitungsbibliothek, mit der Sie PDF-Dateien in .NET-Anwendungen bearbeiten und konvertieren können, PDF-Dateien in Bilder konvertieren. Damit können Sie während der Konvertierung von PDF in Bild sogar die Eigenschaften des Bildes anpassen, wie z. B. seine Größe und Pixel.
Neben Bildern können Sie mit dieser Bibliothek auch PDF in Word, PDF in HTML, PDF in XPS usw. konvertieren.

Du kannst entweder herunterladen Installieren Sie es und verweisen Sie manuell auf die DLL-Datei oder installieren Sie es über NuGet mit dem folgenden Befehl:

PM> Install-Package Spire.PDF

Klassifizierung von Bildformaten

In der Computergrafik können Bilder in zwei Hauptkategorien eingeteilt werden:

  • Bitmap-Bilder bestehen aus einem Raster einzelner Pixel, wobei jedem Pixel eine bestimmte Farbe zugewiesen ist. Zu den gängigen Bitmap-Bildformaten gehören PNG, JPG, BMP, EMF und TIFF.
  • Vektorgrafiken hingegen stellen Bilder mithilfe mathematischer Gleichungen und geometrischer Formen wie Linien, Kurven und Polygone dar. Gängige Vektorgrafikformate Dazu gehören SVG und EPS.

Derzeit unterstützt Spire.PDF for .NET die Formate PNG/JPG/BMP/EMF/TIFF/SVG. Als nächstes werde ich Ihnen die Details jeder Konvertierung mitteilen.

Konvertieren Sie PDF in PNG/JPG/BMP/EMF/TIFF in C#

Schritte

  1. Erstellen Sie eine PdfDocument-Instanz und laden Sie mithilfe der LoadFromFile()-Methode eine PDF-Datei von der Festplatte.
  2. Rufen Sie die Methode SaveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) auf, um die angegebene Seite in ein Bild zu konvertieren.
  3. Speichern Sie abschließend Bilder als JPG-Dateien mit der Methode Image.Save(string filename, ImageFormat format). In diesem Fall nehme ich als Beispiel PDF zu JPG. Sie können das Format auch ändern, wenn Sie möchten.

Beispielcode

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

Konvertieren Sie PDF in SVG in C#

Schritte

  1. Erstellen Sie eine PdfDocument-Instanz und laden Sie mithilfe der LoadFromFile()-Methode eine PDF-Datei von der Festplatte.
  2. Konvertieren Sie die erste Seite mit der Methode SaveToFile(string filename, int startIndex, int endIndex, FileFormat fileFormat) in SVG. Sie können im Parameter den Seitenindex angeben, den Sie konvertieren möchten.

Beispielcode

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

Konvertieren Sie PDF in ein mehrseitiges TIFF in C#

Im Vergleich zu anderen Bildformaten ermöglicht TIFF die Speicherung mehrerer Bilder oder Seiten in einer einzigen Datei. Diese Funktion macht es in einigen Fällen zu einer beliebten Wahl bei Benutzern.

In diesem Abschnitt zeige ich Ihnen, wie Sie eine PDF-Datei in eine mehrseitige TIFF-Datei konvertieren. Um diese Konvertierung zu erreichen, können wir die folgenden Methoden anpassen.
  • Die Methode SaveAsImage() unterstützt die Konvertierung jeder PDF-Seite in ein Bild und gibt dann ein Array von Bildern zurück.
  • Die Methode GetEncoderInfo() unterstützt das Suchen und Zurückgeben passender Bild-Encoder-Informationen basierend auf dem angegebenen MIME-Typ.
  • Die Methode JoinTiffImages() wird verwendet, um mehrere Bilder in einer einzigen TIFF-Datei zusammenzuführen. Es funktioniert, indem es jedes Bild im Bild-Array durchläuft und es gemäß den angegebenen Encoder-Parametern speichert.

Schritte

  1. Erstellen Sie eine PdfDocument-Instanz und laden Sie mithilfe der LoadFromFile()-Methode eine PDF-Datei von der Festplatte.
  2. Rufen Sie die Methode SaveAsImage() auf, um jede Seite der PDF-Datei in ein Bild zu konvertieren und es im Bildarray zu speichern.
  3. Rufen Sie abschließend die Methode JoinTiffImages() auf, um die konvertierten TIFF-Bilder in einer mehrseitigen TIFF-Datei zusammenzuführen.

Beispielcode

  • 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++;
                }
            }
        }
    }

Kostenlose Testversion der C#-Bibliothek

Spire.PDF for .NET bietet eine kostenlose Nutzung, damit Benutzer Produktfunktionen ohne Einschränkungen besser bewerten können. Sie können eine erhalten Kostenlose 30-tägige temporäre Lizenz Über den folgenden Link können Sie PDF in ein Bild in C# konvertieren.

Abschluss

In diesem Beitrag haben Sie erfahren, wie Sie PDF-Dateien mit C# in gängige Bildformate konvertieren. Spire.PDF for .NET kann Ihnen auch bei anderen PDF-Verarbeitungsaufgaben helfen, wie z Erstellen von PDFs, Zusammenführen von PDFs, Vergleichen von PDFs usw. Kurz gesagt, diese Bibliothek vereinfacht den Prozess und ermöglicht es Entwicklern, sich auf die Erstellung leistungsstarker Anwendungen zu konzentrieren, die PDF-Manipulationsaufgaben beinhalten.

Siehe auch