Преобразование изображений в PDF — важный и полезный сценарий для приложений обработки файлов. В этой статье мы научимся конвертировать изображения JPG, PNG, TIFF, EMF, WMF и BMP в формат PDF с использованием C# или VB.NET. Ниже приведены шаги установки и несколько возможных вариантов использования для преобразования изображений:

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, выполнив следующие действия:

  1. Инициализировать объект класса Document
  2. Добавить новую страницу в документ PDF
  3. Загрузите изображение JPG и добавьте к абзацу
  4. Сохранить выходной 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, но в выходном документе PDF применяются размеры страницы и поля по умолчанию. Aspose.PDF for .NET API позволяет управлять размерами страницы и полями, что помогает создавать PDF-файлы точно такого же размера, как размеры изображения. Давайте приступим к изучению этой функции:

Преобразование изображения в PDF с той же высотой и шириной страницы

Продолжая этот пример из приведенного выше варианта использования, вы можете заметить больший размер страницы на приведенном выше снимке экрана. Давайте узнаем, как преобразовать изображение в PDF с той же высотой и шириной страницы. Мы получим размеры изображения и соответственно установим размеры страницы PDF-документа, выполнив следующие действия:

  1. Загрузить входной файл изображения
  2. Получить высоту и ширину изображения
  3. Установка высоты, ширины и полей страницы
  4. Сохраните выходной 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, выполнив следующие действия:

  1. Загрузить вход PNG изображение
  2. Чтение значений высоты и ширины
  3. Создайте новый документ и добавьте страницу
  4. Установить размеры страницы
  5. Сохранить выходной файл

Кроме того, приведенный ниже фрагмент кода показывает, как преобразовать 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-документ со следующими шагами:

  1. Создать экземпляр класса Document
  2. Загрузить входное изображение TIFF
  3. Получить FrameDimension кадров
  4. Добавить новую страницу для каждого кадра
  5. Наконец, сохраните изображения на страницах 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, выполнив следующие действия:

  1. Во-первых, инициализируйте объект класса Document.
  2. Загрузите файл изображения EMF
  3. Добавьте загруженное изображение EMF на страницу
  4. Сохранить 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:

  1. Инициализировать новый документ
  2. Загрузить исходное BMP-изображение
  3. Наконец, сохраните выходной 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 при настройке размера страницы и полей. Кроме того, если у вас все еще есть какие-либо запросы или вопросы, обратитесь к нам на Форум бесплатной поддержки.

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