C# Convert PDF File Byte Array

Byte Array je užitečné pro ukládání nebo přenos dat. Stejně tak je formát souboru PDF oblíbený díky svým vlastnostem a kompatibilitě. Soubor PDF můžete převést na Byte Array a také Byte Array na soubor PDF pomocí jazyka C#. To vám může pomoci efektivněji ukládat a archivovat soubory PDF v databázi. Data můžete také serializovat pomocí Byte Array. Pojďme prozkoumat vzájemnou konvertibilitu těchto formátů.

Konverze souboru PDF do bajtového pole a bajtového pole do souboru PDF – instalace API

Aspose.PDF for .NET API nabízí mnoho funkcí pro práci s dokumenty PDF. Pomocí jednoduchých a snadných volání API můžete vytvářet, upravovat, manipulovat nebo převádět soubory PDF. Chcete-li převést soubory PDF do Byte Array nebo naopak, musíte nainstalovat API buď stažením z oficiální webové stránky, nebo z galerie NuGet pomocí níže uvedeného instalačního příkazu ve Visual Studio IDE.

PM> Install-Package Aspose.Pdf

Převést soubor PDF na Byte Array pomocí C#

PDF můžete převést na Byte Array, abyste jej mohli přenést nebo uložit pro další zpracování. Možná budete muset například serializovat dokument PDF a poté jej převést na bajtové pole. Chcete-li převést PDF na bajtové pole, musíte postupovat podle následujících kroků:

  1. Načíst vstupní soubor PDF
  2. Inicializujte bajtové pole
  3. Inicializujte objekt FileStream
  4. Načtěte obsah souboru v poli bajtů

Po provedení všech těchto kroků nyní můžete zpracovat soubor PDF ve formě bajtového pole. Můžete jej například předat jiné funkci, jako je příklad níže.

Následující kód ukazuje, jak převést soubor PDF na Byte Array pomocí C#, kde je výsledný ByteArray předán metodě pro převod vstupního souboru na obrázky:

dataDir = @"D:\Test\";

// Načíst vstupní soubor PDF
string inputFile = dataDir + @"testpdf.pdf";

// Inicializujte bajtové pole
byte[] buff = null;

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

// Načtěte obsah souboru v poli bajtů
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Pracujte se souborem PDF v poli bajtů
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // Otevřete dokument
    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))
            {
                // Vytvořte zařízení JPEG se zadanými atributy
                // Šířka, výška, rozlišení, kvalita
                // Kvalita [0-100], 100 je maximum
                // Vytvořit objekt rozlišení

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = nové JpegDevice(500, 700, rozlišení, 100);

                // přidali následující, abyste určili, zda na šířku nebo ne
                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 =
                //nové Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, rozlišení, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Převeďte konkrétní stránku a uložte obrázek do streamu

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Zavřít stream
                imageStream.Close();
            }
        }
    }
}

Převést Byte Array na soubor PDF pomocí C#

Pokračujme ještě o krok dále, Byte Array lze převést na soubor PDF. Pojďme se to naučit na příkladu převodu obrázku jako Byte Array do souboru PDF. Chcete-li převést Byte Array na soubor PDF, musíte postupovat podle následujících kroků.

  1. Načíst vstupní soubor
  2. Inicializovat bajtové pole
  3. Načtěte vstupní obrázek do Byte Array
  4. Inicializujte instanci třídy Document
  5. Přidejte obrázek na stránku PDF
  6. Uložit výstupní soubor PDF

Následující kód vysvětluje, jak převést Byte Array na soubor PDF programově pomocí C#:

// Načíst vstupní soubor
string inputFile = dataDir + @"Test.PNG";

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

// Načtěte vstupní obrázek do Byte Array
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Přidejte stránku do kolekce stránek dokumentu
Page page = doc.Pages.Add();
// Načtěte zdrojový soubor obrázku do objektu Stream
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Vytvořte instanci objektu BitMap s načteným proudem obrázků
Bitmap b = new Bitmap(mystream);

// Nastavte okraje, aby se obrázek vešel atd.
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);
// Vytvořte objekt obrázku
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Přidejte obrázek do kolekce odstavců sekce
page.Paragraphs.Add(image1);
// Nastavte stream souboru obrázku
image1.ImageStream = mystream;

// Uložte výsledný soubor PDF
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// Zavřete objekt memoryStream
mystream.Close();

Závěr

V tomto článku jsme prozkoumali, jak převést soubor PDF na Byte Array a také Byte Array na soubor PDF pomocí programovacího jazyka C#. Pokud máte zájem dále pracovat se souborem PDF, podělte se s námi o své požadavky prostřednictvím Free Support Forum. Kromě toho můžete také prozkoumat dokumentaci rozhraní API a odkazy na rozhraní API pro hloubkovou analýzu funkcí nabízených rozhraním API. Těšíme se, že se s vámi spojíme!

Viz také