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

Одна картинка стоит тысячи слов. Поэтому изображения и графика играют важную роль в PDF, а также в других документах. Поскольку PDF стал одним из самых популярных и широко используемых форматов файлов, эта статья посвящена тому, как программно управлять изображениями в файлах PDF. Точнее, вы узнаете, как добавлять, извлекать, удалять и заменять изображения из файлов PDF в C# .NET.

C# API для добавления, удаления и замены изображений в PDF — бесплатная загрузка

Aspose.PDF for .NET — это библиотека классов C#, позволяющая создавать PDF-документы и управлять ими из приложений .NET. Используя API, вы можете легко выполнять как базовые, так и расширенные функции автоматизации PDF. Кроме того, вы можете управлять изображениями в существующих файлах PDF. API можно загрузить как DLL или установить через NuGet.

PM> Install-Package Aspose.Pdf

Добавить изображение в файл PDF на С# .NET

Ниже приведены шаги по добавлению изображения в файл PDF с помощью Aspose.PDF для .NET.

  • Используйте класс Document для создания нового или загрузки существующего файла PDF.
  • Получить ссылку на нужную страницу в объекте Page.
  • Добавьте изображение в коллекцию Ресурсы страницы.
  • Используйте следующие операторы для размещения изображения на странице:
  • Сохраните обновленный файл 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());

// Создание объектов «Прямоугольник» и «Матрица»
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 из коллекции Resources конкретной страницы, используя индекс.
  • Сохраните извлеченное изображение в нужном формате, используя метод 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 в С#

Получив доступ к ресурсам страницы в формате 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 на С#

Aspose.PDF для .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# .NET PDF API — Получите бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать API без ограничений пробной версии.

Вывод

Изображения и графические объекты являются важными элементами PDF-документов. Поэтому в этой статье мы рассмотрели, как манипулировать изображениями в PDF-файле с помощью C# .NET API. В пошаговом руководстве и примерах кода показано, как добавлять, извлекать, удалять и заменять изображения в файлах PDF на C#. Вы можете узнать больше о C# PDF API, используя документацию.

Смотрите также