Робота з зображеннями в PDF C#

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

Бібліотека C# для додавання та обробки зображень у PDF

Щоб додавати, видаляти та замінювати зображення в PDF, ми будемо використовувати Aspose.PDF for .NET. Це бібліотека класів C#, яка дозволяє створювати PDF-документи та керувати ними з програм .NET. Використовуючи бібліотеку, ви можете легко виконувати як базові, так і розширені функції автоматизації PDF.

Бібліотеку можна завантажити як DLL або встановити через NuGet.

PM> Install-Package Aspose.PDF

Додайте зображення в PDF за допомогою C#

Нижче наведено кроки, щоб додати зображення до файлу PDF у C#.

  • Використовуйте клас Document, щоб створити новий або завантажити наявний файл PDF.
  • Отримайте посилання на потрібну сторінку в об’єкті Сторінка.
  • Додайте зображення до колекції Ресурси сторінки.
  • Щоб розмістити зображення на сторінці, використовуйте такі оператори:
  • Збережіть оновлений файл PDF за допомогою методу Document.Save(String).

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

// Щоб отримати повні приклади та файли даних, перейдіть на сторінку https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// відкритий документ
Document pdfDocument = new Document("AddImage.pdf");

// Встановити координати
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Отримайте сторінку, куди потрібно додати зображення
Page page = pdfDocument.Pages[1];

// Завантажити зображення в потік
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Додайте зображення до колекції зображень ресурсів сторінки
page.Resources.Images.Add(imageStream);

// Використання оператора GSave: цей оператор зберігає поточний стан графіки
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Створення об’єктів Rectangle і Matrix
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Використання оператора ConcatenateMatrix (конкатенована матриця): визначає, як має бути розміщено зображення
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Використання оператора Do: цей оператор малює зображення
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Використання оператора GRestore: цей оператор відновлює стан графіки
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Зберегти оновлений документ
pdfDocument.Save("AddImage_out.pdf");

Видобуток зображень із PDF на C#

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

  • Використовуйте клас Document, щоб завантажити наявний файл PDF.
  • Отримайте потрібне зображення в об’єкті XImage із колекції Ресурси певної сторінки за допомогою індексу.
  • Збережіть витягнуте зображення в потрібному форматі за допомогою методу XImage.Save(FileStream, ImageFormat).

У наведеному нижче прикладі коду показано, як видобувати зображення з PDF на C#.

// Щоб отримати повні приклади та файли даних, перейдіть на сторінку https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// відкритий документ
Document pdfDocument = new Document("ExtractImages.pdf");

// Витягніть певне зображення
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Зберегти вихідне зображення
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Видалення зображень із PDF у C#

Отримавши доступ до ресурсів сторінки в PDF, ви можете видалити з неї зображення. Нижче наведено кроки для видалення зображень із файлу PDF у C#.

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

// Щоб отримати повні приклади та файли даних, перейдіть на сторінку https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// відкритий документ
Document pdfDocument = new Document("DeleteImages.pdf");

// Видалити певне зображення
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Збережіть оновлений файл PDF
pdfDocument.Save("output.pdf");

Замінити зображення в PDF на C#

Aspose.PDF for .NET також дозволяє замінити певне зображення в PDF. Для цього ви можете замінити зображення в колекції зображень сторінки. Нижче наведено кроки для заміни зображення в PDF за допомогою C#.

  • Завантажте PDF-файл за допомогою класу Document.
  • Замініть потрібне зображення за допомогою методу [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Збережіть оновлений файл PDF за допомогою методу Document.Save(String).

У наведеному нижче прикладі коду показано, як замінити зображення в PDF за допомогою C#.

// Щоб отримати повні приклади та файли даних, перейдіть на сторінку https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// відкритий документ
Document pdfDocument = new Document("input.pdf");

// Замінити певне зображення
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Збережіть оновлений файл PDF
pdfDocument.Save("output.pdf");

Безкоштовна бібліотека C# для обробки зображень PDF

Ви можете отримати безкоштовну тимчасову ліцензію і працювати із зображеннями в PDF-файлах без будь-яких обмежень.

Ознайомтеся з бібліотекою C# PDF

Ви можете дізнатися більше про бібліотеку PDF C# за допомогою документації.

Висновок

Зображення та графічні об’єкти є важливими елементами документів PDF. Тому в цій статті ми розглянули, як маніпулювати зображеннями в PDF за допомогою C#. У покроковому посібнику та зразках коду показано, як додавати, витягувати, видаляти та замінювати зображення у файлах PDF у C#.

Дивись також