Конвертация различных форматов изображений в PDF в .NET

Обзор

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

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

Формат: BMP

Формат: CGM

Формат: DICOM

Формат: EMF

Формат: GIF

Формат: JPG

Формат: PNG

Формат: SVG

Формат: TIFF

Другие темы, рассматриваемые в этой статье

C# Конвертация изображений в PDF

Aspose.PDF для .NET позволяет конвертировать различные форматы изображений в файлы PDF. Наша библиотека демонстрирует фрагменты кода для конвертации самых популярных форматов изображений, таких как - BMP, CGM, DICOM, EMF, JPG, PNG, SVG и TIFF.

Конвертация BMP в PDF

Конвертируйте файлы BMP в документ PDF с помощью библиотеки Aspose.PDF для .NET.

BMP изображения — это файлы с расширением .BMP, представляющие собой файлы формата Bitmap Image, используемые для хранения растровых цифровых изображений. Эти изображения не зависят от графического адаптера и также называются форматом файла независимого от устройства растра (DIB). Вы можете конвертировать BMP в PDF файлы с помощью API Aspose.PDF для .NET. Следовательно, вы можете следовать следующим шагам для конвертации изображений BMP:

Шаги: Конвертация BMP в PDF на C#

  1. Загрузите входное изображение BMP.
  2. В конце сохраните выходной файл PDF.

Таким образом, следующий фрагмент кода следует этим шагам и показывает, как конвертировать BMP в PDF с использованием C#:

//Инициализация пустого PDF документа
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");
}

Конвертация CGM в PDF

CGM — это расширение файла для формата метафайла компьютерной графики, который обычно используется в приложениях компьютерного проектирования (CAD) и графики презентаций. CGM - это расширение файла для формата метафайла компьютерной графики, обычно используемого в приложениях CAD (компьютерное проектирование) и презентационной графике.

Ознакомьтесь со следующим фрагментом кода для конвертации файлов CGM в формат PDF.

Шаги: Конвертация CGM в PDF на C#

  1. Создайте экземпляр класса CgmLoadOptions.
  2. Создайте экземпляр класса Document с указанием исходного имени файла и опций.
  3. Сохраните документ с желаемым именем файла.
public static void ConvertCGMtoPDF()
{
    CgmLoadOptions option = new CgmLoadOptions();
    Document pdfDocument= new Document(_dataDir+"corvette.cgm", option);
    pdfDocument.Save(_dataDir+"CGMtoPDF.pdf");
}

Конвертация DICOM в PDF

DICOM является стандартом медицинской индустрии для создания, хранения, передачи и визуализации цифровых медицинских изображений и документов обследуемых пациентов. Формат DICOM является стандартом медицинской индустрии для создания, хранения, передачи и визуализации цифровых медицинских изображений и документов обследуемых пациентов.

Aspsoe.PDF для .NET позволяет конвертировать изображения DICOM и SVG, но по техническим причинам для добавления изображений необходимо указать тип файла, который будет добавлен в PDF:

Шаги: Конвертация DICOM в PDF на C#

  1. Создайте объект класса Image.
  2. Добавьте изображение в коллекцию Paragraphs страницы.
  3. Укажите свойство FileType.
  4. Укажите путь к файлу или источник.
    • Если изображение находится в месте на жестком диске, укажите местоположение пути с помощью свойства Image.File.
    • Если изображение размещено в MemoryStream, передайте объект, содержащий изображение, в свойство Image.ImageStream.

Следующий фрагмент кода показывает, как конвертировать файлы DICOM в формат PDF с помощью Aspose.PDF. Следующий фрагмент кода показывает, как конвертировать файлы DICOM в формат PDF с помощью Aspose.PDF.

private const string _dataDir = "..\\..\\..\\..\\Samples";
// Конвертация изображений DICOM в PDF с использованием класса Image
public static void ConvertDICOMtoPDF()
{
    // Создание объекта документа
    Document pdfDocument = new Document();

    // Добавление страницы в коллекцию страниц документа
    Page page = pdfDocument.Pages.Add();

    Image image = new Image
    {
        FileType = ImageFileType.Dicom,
        File = System.IO.Path.Combine(_dataDir,"bmode.dcm")
    };
    pdfDocument.Pages[1].Paragraphs.Add(image);
    // Сохранение результата в формате PDF
    pdfDocument.Save(System.IO.Path.Combine(_dataDir,"PDFWithDicomImage_out.pdf"));
}

Конвертация DICOM в PDF с помощью бесплатного приложения Aspose.PDF

Конвертация EMF в PDF

EMFEMF хранит графические изображения независимо от устройства. Метафайлы EMF состоят из записей переменной длины в хронологическом порядке, которые могут воспроизводить сохраненное изображение на любом выходном устройстве. Кроме того, вы можете конвертировать EMF в изображение PDF, используя следующие шаги:

Шаги: Конвертация EMF в PDF на C#

  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");

Конвертировать GIF в PDF

Конвертируйте файлы GIF в документ PDF с помощью библиотеки Aspose.PDF для .NET.

GIF позволяет хранить сжатые данные без потери качества в формате не более 256 цветов. Аппаратно-независимый формат GIF был разработан в 1987 году (GIF87a) компанией CompuServe для передачи растровых изображений по сетям. Вы можете конвертировать GIF в файлы PDF с помощью API Aspose.PDF для .NET. Следуйте следующим шагам для конвертации изображений GIF:

Шаги: Конвертация GIF в PDF на C#

  1. Загрузите входное изображение GIF.
  2. Наконец, сохраните выходной файл PDF.

Таким образом, следующий фрагмент кода следует этим шагам и показывает, как конвертировать BMP в PDF с использованием C#:

//Инициализация пустого PDF документа
using (Document pdfDocument = new Document())
{
    pdfDocument.Pages.Add();
    Aspose.Pdf.Image image = new Aspose.Pdf.Image();

    // Загрузка образца файла изображения GIF
    image.File = dataDir + "Sample.gif";
    pdfDocument.Pages[1].Paragraphs.Add(image);

    // Сохранение выходного PDF документа
    pdfDocument.Save(dataDir + "GIFtoPDF.pdf");
}

Конвертировать JPG в PDF

Не нужно задумываться о том, как конвертировать JPG в PDF, потому что библиотека Apose.PDF для .NET имеет лучшее решение. Не нужно задумываться о том, как конвертировать JPG в PDF, потому что библиотека Apose.PDF для .NET имеет лучшее решение.

Вы можете очень легко конвертировать изображения JPG в PDF с Aspose.PDF для .NET, следуя шагам:

Шаги: Конвертация JPG в PDF на C#

  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");

Затем вы можете увидеть, как конвертировать изображение в 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

Aspose.PDF для .NET поддерживает функцию конвертации изображений PNG в формат PDF. Ознакомьтесь с приведенным ниже фрагментом кода для выполнения вашей задачи.

PNG относится к типу растрового формата файла изображения, который использует безубыточное сжатие, что делает его популярным среди пользователей.

Вы можете конвертировать изображение PNG в PDF, следуя приведенным ниже шагам:

Шаги: Конвертация PNG в PDF на C#

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

Кроме того, приведенный ниже фрагмент кода показывает, как конвертировать 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");

Конвертация SVG в PDF

Aspose.PDF для .NET объясняет, как конвертировать изображения SVG в формат PDF и как получить размеры исходного файла SVG.

Масштабируемая векторная графика (SVG) — это семейство спецификаций XML-базированного формата файла для двумерной векторной графики, как статической, так и динамической (интерактивной или анимированной). Спецификация SVG является открытым стандартом, который разрабатывается Консорциумом Всемирной паутины (W3C) с 1999 года.

Изображения SVG и их поведение определяются в текстовых файлах XML. SVG изображения и их поведение определены в текстовых файлах XML.

Для конвертации файлов SVG в PDF используйте класс под названием SvgLoadOptions, который используется для инициализации объекта LoadOptions. Затем этот объект передается в качестве аргумента при инициализации объекта Document и помогает движку рендеринга PDF определить формат исходного документа.

Шаги: Конвертация SVG в PDF на C#

  1. Создайте экземпляр класса Document с указанием имени исходного файла и опций.
  2. Сохраните документ с желаемым именем файла.

Следующий фрагмент кода показывает процесс конвертации SVG файла в формат PDF с использованием Aspose.PDF для .NET.

public static void ConvertSVGtoPDF()
{
    SvgLoadOptions option = new SvgLoadOptions();
    Document pdfDocument= new Document(_dataDir + "car.svg", option);
    pdfDocument.Save(_dataDir + "svgtest.pdf");
}

Получение размеров SVG

Также возможно получить размеры исходного файла SVG. Эта информация может быть полезной, если мы хотим, чтобы SVG полностью покрывал страницу выходного PDF. Свойство AdjustPageSize класса ScgLoadOption удовлетворяет этому требованию. Значение этого свойства по умолчанию - false. Если значение установлено в true, выходной PDF будет иметь те же размеры (размеры), что и исходный SVG.

Следующий фрагмент кода показывает процесс получения размеров исходного файла SVG и создания файла PDF. Следующий фрагмент кода показывает процесс получения размеров исходного файла SVG и генерации файла PDF.

public static void ConvertSVGtoPDF_Advanced()
{
    // Для полных примеров и файлов данных, пожалуйста, посетите https://github.com/aspose-pdf/Aspose.PDF-for-.NET
    // Путь к директории с документами.
    string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    var loadopt = new SvgLoadOptions();
    loadopt.AdjustPageSize = true;
    var svgDoc = new Document(dataDir + "GetSVGDimensions.svg", loadopt);
    svgDoc.Pages[1].PageInfo.Margin.Top = 0;
    svgDoc.Pages[1].PageInfo.Margin.Left = 0;
    svgDoc.Pages[1].PageInfo.Margin.Bottom = 0;
    svgDoc.Pages[1].PageInfo.Margin.Right = 0;
    svgDoc.Save(dataDir + "GetSVGDimensions_out.pdf");
}

Поддерживаемые возможности SVG

```
     </tr>
    <tr>
        <td>
            <p>tref</p>
        </td>
        <td>
            <p>&lt;defs&gt;&nbsp; <br> &nbsp;&nbsp;&nbsp; &lt;text
                id="ReferencedText"&gt;&nbsp; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                Ссылочные символьные данные&nbsp; <br> &nbsp;&nbsp;&nbsp;
                &lt;/text&gt;&nbsp; <br> &lt;/defs&gt;&nbsp; <br
                    class="atl-forced-newline"> &lt;text x="10" y="100" font-size="15" fill="red" &gt;&nbsp; <br
                    class="atl-forced-newline"> &nbsp;&nbsp;&nbsp; &lt;tref
                xlink:href="#ReferencedText"/&gt;&nbsp; <br> &lt;/text&gt;</p>
        </td>
    </tr>
    <tr>
        <td>
            <p>use</p>
        </td>
        <td>
            <p>&lt;defs&gt;&nbsp; <br> &nbsp;&nbsp;&nbsp; &lt;text id="Text" x="400"
                y="200"&nbsp; <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-family="Verdana" font-size="100"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-family="Verdana" font-size="100"
text-anchor="middle" &gt;&nbsp; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Маскированный текст&nbsp; <br> &nbsp;&nbsp;&nbsp; &lt;/text&gt;&nbsp; <br
    class="atl-forced-newline"> &lt;use xlink:href="#Text" fill="blue"&nbsp; /&gt;</p>
</td>
</tr>
<tr>
<td>
    <p>эллипс&nbsp;</p>
</td>
<td>
    <p>&lt;ellipse cx="2.5" cy="1.5" rx="2" ry="1" fill="red" /&gt;</p>
</td>
</tr>
<tr>
<td>
    <p>g&nbsp;</p>
</td>
<td>
    <p>&lt;g fill="none" stroke="dimgray" stroke-width="1.5" &gt;&nbsp; <br>
        &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;line x1="-7"
        y1="-7" x2="-3" y2="-3"/&gt;&nbsp; <br> &nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;line x1="7" y1="7" x2="3"
``` ``` ## Конвертация TIFF в PDF

Aspose.PDF поддерживает формат файла, будь то однокадровое или многокадровое изображение TIFF. Это означает, что вы можете конвертировать изображение TIFF в PDF в ваших .NET приложениях.

TIFF или TIF, формат файла с тегированными изображениями, представляет растровые изображения, предназначенные для использования на различных устройствах, соответствующих этому стандарту формата файла. TIFF или TIF, формат файла с тегами изображения, представляет собой растровые изображения, предназначенные для использования на различных устройствах, соответствующих этому стандарту формата файла.

Вы можете конвертировать TIFF в PDF так же, как и другие растровые форматы графики:

Шаги: Конвертация TIFF в PDF на C#

  1. Создайте новый объект класса Document и добавьте страницу.
  2. Загрузите входное изображение TIFF.
  3. Сохраните документ PDF.
Инициализация пустого документа PDF
using (Document pdfDocument = new Document())
{
    pdfDocument.Pages.Add();
    Aspose.Pdf.Image image = new Aspose.Pdf.Image();

    // Загрузка образца файла изображения Tiff
    image.File = dataDir + "sample.tiff";
    pdfDocument.Pages[1].Paragraphs.Add(image);

    // Сохранение результирующего документа PDF
    pdfDocument.Save(dataDir + "TIFFtoPDF.pdf");
}

В случае, если вам нужно конвертировать многостраничное изображение TIFF в многостраничный документ PDF и управлять некоторыми параметрами, например, Если вам нужно конвертировать многостраничное изображение TIFF в многостраничный документ PDF и управлять некоторыми параметрами, например:

  1. Создайте экземпляр класса Document
  2. Загрузите входное изображение TIFF
  3. Получите FrameDimension кадров
  4. Добавьте новую страницу для каждого кадра
  5. Наконец, сохраните изображения на страницах PDF

Следующий фрагмент кода показывает, как конвертировать многостраничное или многофреймовое изображение TIFF в PDF с использованием C#:

public static void TiffToPDF2()
{
    // Инициализация нового Document
    Document pdf = new Document();

    // Загрузка изображения TIFF в поток
    Bitmap bitmap = new Bitmap(File.OpenRead(_dataDir+"multipage.tif"));
    // Конвертация многостраничного или многофреймового TIFF в PDF
    FrameDimension dimension = new FrameDimension(bitmap.FrameDimensionsList[0]);
    int frameCount = bitmap.GetFrameCount(dimension);

    // Итерация по каждому кадру
    for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
    {
        Page page = pdf.Pages.Add();

        bitmap.SelectActiveFrame(dimension, frameIdx);

        MemoryStream currentImage = new MemoryStream();
        bitmap.Save(currentImage, ImageFormat.Tiff);

        Aspose.Pdf.Image imageht = new Aspose.Pdf.Image
        {
            ImageStream = currentImage,
            // Применение других опций
            //ImageScale = 0.5
        };
        page.Paragraphs.Add(imageht);
    }

    // Сохранение выходного файла PDF
    pdf.Save(_dataDir + "TifftoPDF.pdf");
}

Применимо к

Тег SVG

Пример использования

круг

<circle id="r2" cx="10" cy="10" r="10" stroke="blue" stroke-width="2">

определения

<defs> 
<rect id="r1" width="15" height="15" stroke="blue" stroke-width="2" /> 
<circle id="r2" cx="10" cy="10" r="10" stroke="blue" stroke-width="2"/> 
<circle id="r3" cx="10" cy="10" r="10" stroke="blue" stroke-width="3"/> 
</defs> 
<use x="25" y="40" xlink:href="#r1" fill="red"/> 
<use x="35" y="15" xlink:href="#r2" fill="green"/> 
<use x="58" y="50" xlink:href="#r3" fill="blue"/>

изображение

<image id="ShadedRelief" x="24" y="4" width="64" height="82" xlink:href="relief.jpg" /> 

линия

<line style="stroke:#eea;stroke-width:8" x1="10" y1="30" x2="260" y2="100"/> 

линия

<line style="stroke:#eea;stroke-width:8" x1="10" y1="30" x2="260" y2="100"/> 

путь

<path style="fill:#daa;fill-rule:evenodd;stroke:red" d="M 230,150 C 290,30 10,255 110,140 z "/> 

стиль

<path style="fill:#daa;fill-rule:evenodd;stroke:red" d="M 230,150 C 290,30 10,255 110,140 z "/>

многоугольник

<polygon style="stroke:#24a;stroke-width:1.5;fill:#eefefe" points="10,10 180,10 10,250 10,10" />

полилиния

```

полилиния

<polyline fill="none" stroke="dimgray" stroke-width="1" points="-3,-6 3,-6 3,1 5,1 0,7 -5,1 -3,1 -3,-5"/>

прямоугольник 

<rect x="0" y="0" width="400" height="600" stroke="none" fill="aliceblue" />

svg

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="10cm" height="5cm" >

текст

<text font-family="sans-serif" fill="dimgray" font-size="22px" font-weight="bold" x="58" y="30" pointer-events="none">Название карты</text>

Платформа Поддерживается Комментарии
Windows .NET Framework 2.0-4.6
Windows .NET Core 2.0-3.1
.NET 5 Windows
Linux .NET Core 2.0-3.1
.NET 5 Linux

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

Эта статья также охватывает следующие темы. Коды такие же, как указано выше.

Формат: BMP

Формат: CGM

Формат: DICOM

Формат: EMF