C# Konvertera PDF-fil Byte Array

Byte Array är användbart för att lagra eller överföra data. Likaså är PDF-filformatet populärt på grund av dess funktioner och kompatibilitet. Du kan konvertera PDF-fil till Byte Array såväl som en Byte Array till PDF-fil med C#-språket. Detta kan hjälpa dig att lagra och arkivera PDF-filer i databasen, mer effektivt. Du kan också serialisera data genom att arbeta med Byte Array. Låt oss utforska dessa formats interkonvertibilitet.

PDF-fil till byte-array och byte-array till PDF-filkonvertering – API-installation

Aspose.PDF för .NET API erbjuder många funktioner för att arbeta med PDF-dokument. Du kan skapa, redigera, manipulera eller konvertera PDF-filer med enkla och enkla API-anrop. För att konvertera PDF-filer till Byte Array eller vice versa, måste du installera API:t antingen genom att ladda ner det från den officiella webbplatsen, eller från NuGet-galleriet med hjälp av installationskommandot nedan i Visual Studio IDE.

PM> Install-Package Aspose.Pdf

Konvertera PDF-fil till Byte Array med C#

Du kan konvertera PDF till Byte Array för att överföra eller lagra den för vidare bearbetning. Till exempel kan du behöva serialisera ett PDF-dokument och sedan konvertera det till en byte-array kan hjälpa. Du måste följa stegen nedan för att konvertera PDF till en byte-array:

  1. Ladda in PDF-fil
  2. Initiera en Byte Array
  3. Initiera FileStream objekt
  4. Ladda filinnehållet i byte-arrayen

Efter att ha följt alla dessa steg kan du nu bearbeta PDF-filen i form av en byte-array. Du kan till exempel överföra den till en annan funktion som exemplet nedan.

Följande kod visar hur man konverterar en PDF-fil till en Byte Array med C# där den resulterande ByteArrayen skickas till en metod för att konvertera indatafil till bilder:

dataDir = @"D:\Test\";

// Ladda inmatad PDF-fil
string inputFile = dataDir + @"testpdf.pdf";

// Initiera en byte-array
byte[] buff = null;

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

// Ladda filinnehållet i byte-arrayen
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Arbeta med PDF-filen i byte-array
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // Öppna dokumentet
    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))
            {
                // Skapa JPEG-enhet med specificerade attribut
                // Bredd, höjd, upplösning, kvalitet
                // Kvalitet [0-100], 100 är max
                // Skapa upplösningsobjekt

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

                // lade till följande för att avgöra om landskapet eller inte
                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 =
                //new Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Konvertera en viss sida och spara bilden för att streama

                //Aspose.Pdf.PageSize.A4.IsLandscape = sant;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Stäng strömmen
                imageStream.Close();
            }
        }
    }
}

Konvertera Byte Array till PDF-fil med C#

Låt oss gå ytterligare ett steg längre, en Byte Array kan konverteras till en PDF-fil. Låt oss lära oss detta genom exemplet att konvertera en bild som en Byte Array till en PDF-fil. Du måste följa följande steg för att konvertera en Byte Array till en PDF-fil.

  1. Ladda indatafil
  2. Initiera byte array
  3. Ladda indatabilden i Byte Array
  4. Initiera en instans av klassen Dokument
  5. Lägg till bild på en PDF-sida
  6. Spara utdata PDF-fil

Följande kod förklarar hur man konverterar en Byte Array till PDF-fil programmatiskt med C#:

// Ladda indatafil
string inputFile = dataDir + @"Test.PNG";

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

// Ladda indatabilden i Byte Array
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Lägg till en sida till sidsamling av dokument
Page page = doc.Pages.Add();
// Ladda källbildsfilen till Stream-objektet
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Instantiera BitMap-objekt med laddad bildström
Bitmap b = new Bitmap(mystream);

// Ställ in marginaler så att bilden passar osv.
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);
// Skapa ett bildobjekt
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Lägg till bilden i avsnittets styckesamling
page.Paragraphs.Add(image1);
// Ställ in bildfilströmmen
image1.ImageStream = mystream;

// Spara den resulterande PDF-filen
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// Stäng memoryStream-objekt
mystream.Close();

Slutsats

I den här artikeln har vi utforskat hur man konverterar PDF-fil till Byte Array såväl som Byte Array till PDF-fil med programmeringsspråket C#. Om du är intresserad av att arbeta vidare med PDF-filen, vänligen dela dina krav med oss via Free Support Forum. Dessutom kan du också utforska API-dokumentation och API-referenser för en djupgående analys av funktionerna som erbjuds av API. Vi ser fram emot att komma i kontakt med dig!

Se även