C# PDF Datei-Byte-Array konvertieren

Byte Array ist hilfreich zum Speichern oder Übertragen von Daten. Ebenso ist das PDF Dateiformat aufgrund seiner Funktionen und Kompatibilität beliebt. Sie können eine PDF Datei in ein Byte-Array sowie ein Byte-Array in eine PDF Datei mithilfe der C# Sprache konvertieren. Dadurch können Sie PDF Dateien effizienter in der Datenbank speichern und archivieren. Sie können die Daten auch serialisieren, indem Sie mit dem Byte-Array arbeiten. Lassen Sie uns die Interkonvertibilität dieser Formate untersuchen.

Konvertierung von PDF Dateien in Byte-Arrays und Byte-Arrays in PDF Dateien – API Installation

Aspose.PDF for .NET API bietet viele Funktionen für die Arbeit mit PDF Dokumenten. Sie können PDF Dateien mit einfachen API-Aufrufen erstellen, bearbeiten, manipulieren oder konvertieren. Zum Konvertieren von PDF Dateien in Byte-Array oder umgekehrt müssen Sie die API installieren, indem Sie sie entweder von der offiziellen Website oder aus der NuGet-Galerie herunterladen, indem Sie den folgenden Installationsbefehl in der Visual Studio-IDE verwenden.

PM> Install-Package Aspose.Pdf

PDF Datei mit C# in Byte-Array konvertieren

Sie können PDF in Byte Array konvertieren, um es zu übertragen oder zur weiteren Verarbeitung zu speichern. Beispielsweise müssen Sie möglicherweise ein PDF Dokument serialisieren, dann kann es hilfreich sein, es in ein Byte-Array zu konvertieren. Sie müssen die folgenden Schritte ausführen, um PDF in ein Byte-Array zu konvertieren:

  1. Eingabe PDF Datei laden
  2. Initialisieren Sie ein Byte-Array
  3. Initialisieren Sie das Objekt FileStream.
  4. Laden Sie den Dateiinhalt in das Byte-Array

Nachdem Sie alle diese Schritte ausgeführt haben, können Sie nun die PDF Datei in Form eines Byte-Arrays verarbeiten. Sie können es beispielsweise wie im folgenden Beispiel an eine andere Funktion übergeben.

Der folgende Code zeigt, wie eine PDF Datei mit C# in ein Byte-Array konvertiert wird, wobei das resultierende ByteArray an eine Methode zum Konvertieren einer Eingabedatei in Bilder übergeben wird:

dataDir = @"D:\Test\";

// Eingabe PDF Datei laden
string inputFile = dataDir + @"testpdf.pdf";

// Initialisieren Sie ein Byte-Array
byte[] buff = null;

// FileStream objekt initialisieren
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Laden Sie den Dateiinhalt in das Byte-Array
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Arbeiten Sie mit der PDF Datei im Byte-Array
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // Dokument öffnen
    using (MemoryStream InputStream = new MemoryStream(PDFBlob))
    {
        Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(InputStream);

        for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
        {

            using (FileStream imageStream = new FileStream(dataDir + "image" + pageCount + "_out" + ".jpg", FileMode.Create))
            {
                // Erstellen Sie ein JPEG-Gerät mit angegebenen Attributen
                // Breite, Höhe, Auflösung, Qualität
                // Qualität [0-100], 100 ist Maximum
                // Resolution objekt erstellen

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = new JpegDevice(500, 700, Auflösung, 100);

                // Folgendes hinzugefügt, um festzustellen, ob Landschaft oder nicht
                Int32 height, width = 0;

                PdfFileInfo info = new PdfFileInfo(pdfDocument);
                width = Convert.ToInt32(info.GetPageWidth(pdfDocument.Pages[pageCount].Number));
                height = Convert.ToInt32(info.GetPageHeight(pdfDocument.Pages[pageCount].Number));


                Aspose.Pdf.Devices.JpegDevice jpegDevice =
                //neu Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Konvertieren Sie eine bestimmte Seite und speichern Sie das Bild zum Streamen

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Stream schließen
                imageStream.Close();
            }
        }
    }
}

Konvertieren Sie ein Byte-Array mit C# in eine PDF Datei

Gehen wir noch einen Schritt weiter, ein Byte-Array kann in eine PDF Datei konvertiert werden. Lassen Sie uns dies am Beispiel der Konvertierung eines Bildes als Byte-Array in eine PDF Datei lernen. Sie müssen die folgenden Schritte ausführen, um ein Byte-Array in eine PDF Datei zu konvertieren.

  1. Eingabedatei laden
  2. Byte-Array initialisieren
  3. Eingabebild in Byte-Array laden
  4. Initialisiert eine Instanz der Klasse Document.
  5. Bild auf einer PDF-Seite hinzufügen
  6. Ausgabe-PDF Datei speichern

Der folgende Code erläutert, wie ein Byte-Array mithilfe von C# programmgesteuert in eine PDF Datei konvertiert wird:

// Eingabedatei laden
string inputFile = dataDir + @"Test.PNG";

// Byte-Array initialisieren
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Eingabebild in Byte-Array laden
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Fügen Sie eine Seite zur Seitensammlung des Dokuments hinzu
Page page = doc.Pages.Add();
// Laden Sie die Quellbilddatei in das Stream objekt
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// BitMap objekt mit geladenem Bildstrom instanziieren
Bitmap b = new Bitmap(mystream);

// Stellen Sie die Ränder so ein, dass das Bild passt usw.
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;

page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height);
// Erstellen Sie ein Bildobjekt
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Fügen Sie das Bild zur Absatzsammlung des Abschnitts hinzu
page.Paragraphs.Add(image1);
// Stellen Sie den Bilddateistream ein
image1.ImageStream = mystream;

// Speichern Sie die resultierende PDF Datei
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// MemoryStream objekt schließen
mystream.Close();

Fazit

In diesem Artikel haben wir untersucht, wie Sie eine PDF Datei in ein Byte-Array sowie ein Byte-Array in eine PDF Datei mit der Programmiersprache C# konvertieren. Wenn Sie daran interessiert sind, weiter mit der PDF Datei zu arbeiten, teilen Sie uns Ihre Anforderungen bitte über Free Support Forum mit. Darüber hinaus können Sie auch die API-Dokumentation und API-Referenzen durchsuchen, um eine eingehende Analyse der von der API angebotenen Funktionen zu erhalten. Wir freuen uns auf Ihre Kontaktaufnahme!

Siehe auch