Одна картинка стоит тысячи слов. Поэтому изображения и графика играют важную роль в PDF, а также в других документах. Поскольку PDF стал одним из самых популярных и широко используемых форматов файлов, эта статья посвящена тому, как программно управлять изображениями в файлах PDF. Точнее, вы узнаете, как добавлять, извлекать, удалять и заменять изображения из файлов PDF в C# .NET.
- С# .NET API для работы с изображениями в PDF
- Добавить изображение в PDF с помощью С#
- Извлечение изображений из PDF с помощью C#
- Удалить изображения из PDF с помощью С#
- Заменить изображение в PDF с помощью С#
- Получить бесплатную лицензию
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.
- Добавьте изображение в коллекцию Ресурсы страницы.
- Используйте следующие операторы для размещения изображения на странице:
- GСохранить operator to save the current graphical state.
- ConcatenateMatrix operator to specify where the image is to be placed.
- Делать operator to draw the image on the page.
- GВосстановить operator to save the updated graphical state.
- Сохраните обновленный файл 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 с помощью класса Document.
- Удалите изображения одним из следующих способов.
- Удалить() - Delete all images.
- Удалить (Int32) - Delete image by index.
- Удалить(Строка) - Delete image by name.
- Сохраните обновленный файл PDF с помощью метода Document.Save(String).
В следующем примере кода показано, как удалить изображения из 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, используя документацию.