Преобразование изображений в PDF — важный и полезный сценарий для приложений обработки файлов. В этой статье мы научимся конвертировать изображения JPG, PNG, TIFF, EMF, WMF и BMP в формат PDF с использованием C# или VB.NET. Ниже приведены шаги установки и несколько возможных вариантов использования для преобразования изображений:
- Конвертер JPG, PNG, TIFF, EMF и BMP в PDF Converter API — установка
- Преобразование JPG в PDF с помощью C#
- Преобразование изображения в PDF с одинаковой высотой и шириной страницы в С#
- Преобразование PNG в PDF с помощью C#
- Преобразование TIFF в PDF с помощью C#
- Преобразование изображения EMF в PDF с помощью С#
- Преобразование BMP в PDF с помощью C#
C# Image to PDF Converter API — Установка
Мы будем выполнять преобразование этих форматов изображений в PDF с помощью Aspose.PDF for .NET API. Вы можете загрузить его из раздела Releases или через NuGet Gallery с помощью следующей команды:
Install-Package Aspose.Pdf -Version 20.9.0
Итак, API уже успешно установлено. Давайте перейдем к изучению различных вариантов использования:
Преобразование JPG в PDF с помощью C#
Вы можете легко преобразовать изображение JPG в PDF, выполнив следующие действия:
- Инициализировать объект класса Document
- Добавить новую страницу в документ PDF
- Загрузите изображение JPG и добавьте к абзацу
- Сохранить выходной PDF-файл
В приведенном ниже фрагменте кода показано, как преобразовать изображение JPG в PDF с помощью C#:
// Загрузить входной файл JPG
String path = dataDir + "Aspose.jpg";
// Инициализировать новый PDF-документ
Document doc = new Document();
// Добавить пустую страницу в пустой документ
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// Добавить изображение на страницу
page.Paragraphs.Add(image);
// Сохранить выходной PDF-файл
doc.Save(dataDir + "ImagetoPDF.pdf");
Ниже приведен скриншот преобразования JPG в PDF:
Однако на этом снимке экрана вы можете заметить, что изображение преобразуется в страницу PDF, но в выходном документе PDF применяются размеры страницы и поля по умолчанию. Aspose.PDF for .NET API позволяет управлять размерами страницы и полями, что помогает создавать PDF-файлы точно такого же размера, как размеры изображения. Давайте приступим к изучению этой функции:
Преобразование изображения в PDF с той же высотой и шириной страницы
Продолжая этот пример из приведенного выше варианта использования, вы можете заметить больший размер страницы на приведенном выше снимке экрана. Давайте узнаем, как преобразовать изображение в PDF с той же высотой и шириной страницы. Мы получим размеры изображения и соответственно установим размеры страницы PDF-документа, выполнив следующие действия:
- Загрузить входной файл изображения
- Получить высоту и ширину изображения
- Установка высоты, ширины и полей страницы
- Сохраните выходной PDF-файл
В следующем фрагменте кода показано, как преобразовать изображение в PDF с одинаковой высотой и шириной страницы с помощью C#:
// Загрузить входной файл изображения JPG
String path = dataDir + "Aspose.jpg";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
// Чтение высоты входного изображения
int h = srcImage.Height;
// Чтение высоты входного изображения
int w = srcImage.Width;
// Инициализировать новый документ PDF
Document doc = new Document();
// Добавить пустую страницу
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// Установите размеры страницы и поля
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// Сохранить выходной PDF-файл
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");
Таким образом, вы можете заметить разницу в размерах страниц, созданных с помощью обновленного фрагмента кода:
Наконец, вы можете заметить, что размер страницы точно соответствует размерам входного изображения, и теперь поля страницы по умолчанию больше не устанавливаются.
Преобразование PNG в PDF с помощью C#
Формат изображений PNG популярен из-за своих особенностей по сравнению с изображениями JPG. Например, изображения PNG поддерживают прозрачность. Во-первых, давайте конвертируем PNG в PDF, выполнив следующие действия:
- Загрузить вход PNG изображение
- Чтение значений высоты и ширины
- Создайте новый документ и добавьте страницу
- Установить размеры страницы
- Сохранить выходной файл
Кроме того, приведенный ниже фрагмент кода показывает, как преобразовать PNG в PDF с помощью C# в ваших приложениях .NET:
// Загрузить входной файл PNG
String path = dataDir + "Aspose.png";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
int h = srcImage.Height;
int w = srcImage.Width;
// Инициализировать новый документ
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// Установить размеры страницы
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// Сохранить выходной PDF-файл
doc.Save(dataDir + "ImagetoPDF.pdf");
Преобразование TIFF в PDF с помощью C#
Изображение TIFF отличается от обычных JPEG, PNG или других форматов тем, что изображение TIFF может содержать несколько кадров с разными изображениями. Также поддерживается формат файла Aspose.PDF, будь то однокадровое или многокадровое изображение TIFF. Таким образом, вы можете преобразовать изображение TIFF в PDF в своих приложениях .NET. Поэтому мы рассмотрим пример преобразования многостраничного изображения TIFF в многостраничный PDF-документ со следующими шагами:
- Создать экземпляр класса Document
- Загрузить входное изображение TIFF
- Получить FrameDimension кадров
- Добавить новую страницу для каждого кадра
- Наконец, сохраните изображения на страницах PDF
Кроме того, в следующем фрагменте кода показано, как преобразовать многостраничное или многокадровое изображение TIFF в PDF с помощью C#:
// Инициализировать новый документ
Document pdf = new Document();
//Загрузите изображение TIFF в поток
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// Преобразование многостраничного или многокадрового TIFF в PDF
FrameDimension dimension = new FrameDimension(myimage.FrameDimensionsList[0]);
int frameCount = myimage.GetFrameCount(dimension);
// Итерация по каждому кадру
for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
{
Page sec = pdf.Pages.Add();
myimage.SelectActiveFrame(dimension, frameIdx);
MemoryStream currentImage = new MemoryStream();
myimage.Save(currentImage, ImageFormat.Tiff);
Aspose.Pdf.Image imageht = new Aspose.Pdf.Image();
imageht.ImageStream = currentImage;
sec.Paragraphs.Add(imageht);
}
// Сохранить выходной PDF-файл
pdf.Save(dataDir + "TifftoPDF.pdf");
Преобразование изображения EMF в PDF с помощью С#
Изображения EMF, также известные как расширенный формат метафайла, на самом деле являются независимыми от устройства изображениями. Кроме того, вы можете преобразовать изображение EMF в PDF, выполнив следующие действия:
- Во-первых, инициализируйте объект класса Document.
- Загрузите файл изображения EMF
- Добавьте загруженное изображение EMF на страницу
- Сохранить PDF-документ
Кроме того, в следующем фрагменте кода показано, как преобразовать EMF в PDF с помощью C# во фрагменте кода .NET:
// Инициализировать новый PDF-документ
var doc = new Document();
// Укажите путь к входному файлу изображения EMF
var imageFile = dataDir + "drawing.emf";
var page = doc.Pages.Add();
string file = imageFile;
FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(filestream);
long numBytes = new FileInfo(file).Length;
byte[] bytearray = reader.ReadBytes((int)numBytes);
Stream stream = new MemoryStream(bytearray);
var b = new Bitmap(stream);
// Укажите свойства размера страницы
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.PageInfo.Width = b.Width;
page.PageInfo.Height = b.Height;
var image = new Aspose.Pdf.Image();
image.File = imageFile;
page.Paragraphs.Add(image);
//Сохранить выходной PDF-документ
doc.Save(dataDir + "EMFtoPDF.pdf");
Преобразование BMP в PDF с помощью C#
Изображения BMP — это растровые изображения, которые можно преобразовать в PDF с помощью Aspose.PDF для .NET API. Поэтому вы можете выполнить следующие шаги для преобразования изображений BMP:
- Инициализировать новый документ
- Загрузить исходное BMP-изображение
- Наконец, сохраните выходной PDF-файл.
Таким образом, следующий фрагмент кода следует этим шагам и показывает, как преобразовать BMP в PDF с помощью C#:
Initialize empty PDF document
using (Document pdfDocument = new Document())
{
pdfDocument.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
// Загрузите образец файла изображения BMP
image.File = dataDir + @"Sample.bmp";
pdfDocument.Pages[1].Paragraphs.Add(image);
// Сохранить выходной PDF-документ
pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}
Вывод
В конце концов, мы изучили преобразование изображений в PDF с разных сторон с помощью C#. Подробно обсуждались различные преобразования, включая преобразование JPG, PNG, TIFF, EMF и BMP в PDF. Более того, мы узнали, как улучшить рендеринг изображения в формате PDF при настройке размера страницы и полей. Кроме того, если у вас все еще есть какие-либо запросы или вопросы, обратитесь к нам на Форум бесплатной поддержки.