Байтовий масив корисний для зберігання або передачі даних. Подібним чином формат файлу PDF популярний завдяки своїм функціям і сумісності. Ви можете конвертувати PDF-файл у байтовий масив, а також байтовий масив у PDF-файл за допомогою мови C#. Це може допомогти вам більш ефективно зберігати та архівувати PDF-файли в базі даних. Ви також можете серіалізувати дані, працюючи з масивом байтів. Давайте дослідимо взаємоконвертованість цих форматів.
- PDF-файл у байтовий масив і перетворення байтового масиву в PDF-файл – встановлення API
- Перетворення PDF-файлу на байтовий масив за допомогою C#
- Перетворення масиву байтів у файл PDF за допомогою C#
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 на байтовий масив, потрібно виконати наведені нижче дії.
- Завантажити вхідний файл PDF
- Ініціалізація байтового масиву
- Ініціалізувати об’єкт FileStream.
- Завантажити вміст файлу в масив байтів
Після виконання всіх цих кроків тепер ви можете обробити файл 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, потрібно виконати наступні дії.
- Завантажити вхідний файл
- Ініціалізувати масив байтів
- Завантажити вхідне зображення в масив байтів
- Ініціалізувати екземпляр класу Document.
- Додайте зображення на сторінку PDF
- Зберегти вихідний файл 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. Ми з нетерпінням чекаємо на зв’язок з вами!