C# Convert PDF File Byte Array

Байтовий масив корисний для зберігання або передачі даних. Подібним чином формат файлу PDF популярний завдяки своїм функціям і сумісності. Ви можете конвертувати PDF-файл у байтовий масив, а також байтовий масив у PDF-файл за допомогою мови C#. Це може допомогти вам більш ефективно зберігати та архівувати PDF-файли в базі даних. Ви також можете серіалізувати дані, працюючи з масивом байтів. Давайте дослідимо взаємоконвертованість цих форматів.

PDF-файл у байтовий масив і перетворення байтового масиву в PDF-файл – встановлення API

Aspose.PDF for .NET API пропонує багато функцій для роботи з документами PDF. Ви можете створювати, редагувати, маніпулювати або конвертувати PDF-файли за допомогою простих і легких викликів API. Щоб конвертувати PDF-файли в байтовий масив або навпаки, вам потрібно інсталювати API, завантаживши його з офіційного веб-сайту або з галереї NuGet за допомогою наведеної нижче команди інсталяції в Visual Studio IDE.

PM> Install-Package Aspose.Pdf

Перетворення PDF-файлу на байтовий масив за допомогою C#

Ви можете конвертувати PDF у байтовий масив, щоб передати або зберегти його для подальшої обробки. Наприклад, вам може знадобитися серіалізувати PDF-документ, а потім перетворити його на байтовий масив. Щоб перетворити PDF на байтовий масив, потрібно виконати наведені нижче дії.

  1. Завантажити вхідний файл PDF
  2. Ініціалізація байтового масиву
  3. Ініціалізувати об’єкт FileStream.
  4. Завантажити вміст файлу в масив байтів

Після виконання всіх цих кроків тепер ви можете обробити файл PDF у формі масиву байтів. Наприклад, ви можете передати його іншій функції, як у прикладі нижче.

У наведеному нижче коді показано, як перетворити PDF-файл на масив байтів за допомогою C#, де результуючий ByteArray передається в метод для перетворення вхідного файлу на зображення:

dataDir = @"D:\Test\";

// Завантажити вхідний файл PDF
string inputFile = dataDir + @"testpdf.pdf";

// Ініціалізація масиву байтів
byte[] buff = null;

// Ініціалізація об'єкта FileStream
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Завантажити вміст файлу в масив байтів
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Робота з файлом PDF в байтовому масиві
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // відкритий документ
    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))
            {
                // Створіть пристрій JPEG із зазначеними атрибутами
                // Ширина, висота, роздільна здатність, якість
                // Якість [0-100], 100 – максимум
                // Створіть об'єкт Resolution

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = новий JpegDevice(500, 700, роздільна здатність, 100);

                // додав наступне, щоб визначити, пейзаж чи ні
                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 =
                //новий Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Перетворіть певну сторінку та збережіть зображення для потокового перегляду

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Закрити потік
                imageStream.Close();
            }
        }
    }
}

Перетворення масиву байтів у файл PDF за допомогою C#

Зробимо ще один крок: байтовий масив можна перетворити на файл PDF. Давайте дізнаємося це на прикладі перетворення зображення як масиву байтів у файл PDF. Щоб перетворити масив байтів у файл PDF, потрібно виконати наступні дії.

  1. Завантажити вхідний файл
  2. Ініціалізувати масив байтів
  3. Завантажити вхідне зображення в масив байтів
  4. Ініціалізувати екземпляр класу Document.
  5. Додайте зображення на сторінку PDF
  6. Зберегти вихідний файл PDF

У наведеному нижче коді пояснюється, як програмно перетворити масив байтів у файл PDF за допомогою C#:

// Завантажити вхідний файл
string inputFile = dataDir + @"Test.PNG";

// Ініціалізувати масив байтів
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Завантажити вхідне зображення в масив байтів
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Додайте сторінку до колекції документів
Page page = doc.Pages.Add();
// Завантажте вихідний файл зображення в об’єкт Stream
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Створення екземпляра об’єкта BitMap із завантаженим потоком зображень
Bitmap b = new Bitmap(mystream);

// Встановіть поля, щоб зображення підходило тощо.
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);
// Створіть об’єкт зображення
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Додайте зображення до колекції абзаців розділу
page.Paragraphs.Add(image1);
// Встановити потік файлу зображення
image1.ImageStream = mystream;

// Збережіть отриманий PDF-файл
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// Закрийте об’єкт memoryStream
mystream.Close();

Висновок

У цій статті ми дослідили, як конвертувати PDF-файл у байтовий масив, а також байтовий масив у PDF-файл за допомогою мови програмування C#. Якщо ви зацікавлені в подальшій роботі з файлом PDF, поділіться з нами своїми вимогами через безкоштовний форум підтримки. Крім того, ви також можете ознайомитися з документацією API і посиланнями на API для поглибленого аналізу функцій, які пропонує API. Ми з нетерпінням чекаємо на зв’язок з вами!

Дивись також