Преобразование различных форматов изображений в PDF
Aspose.PDF for C++ позволяет конвертировать различные форматы изображений в PDF файлы. Наша библиотека демонстрирует фрагменты кода для конвертации самых популярных форматов изображений, таких как BMP, DICOM, EMF, JPG, PNG, SVG и TIFF.
Преобразование BMP в PDF
Преобразование файлов BMP в PDF документ с использованием библиотеки Aspose.PDF for C++.
BMP изображения это файлы с расширением. BMP представляют файлы изображений, используемые для хранения растровых цифровых изображений. Эти изображения независимы от графического адаптера и также называются форматом независимого от устройства растрового изображения (DIB). Вы можете конвертировать BMP в PDF файлы с помощью API Aspose.PDF for C++. Таким образом, вы можете следовать следующим шагам для преобразования изображений BMP:
- Создайте Класс String для имени пути и имени файла.
- Создается экземпляр нового объекта Document.
- Добавьте новую Страницу в этот Документ.
- Создается новый Aspose.Pdf BMP.
- Объект Aspose.PDF BMP инициализируется с использованием входного файла.
- Aspose.PDF BMP добавляется на страницу как абзац.
- Наконец, сохраните выходной PDF-файл.
Таким образом, следующий фрагмент кода следует этим шагам и показывает, как преобразовать BMP в PDF с использованием C++:
void ConvertBMPtoPDF()
{
std::clog << "BMP to PDF convert: Start" << std::endl;
// String for path name
String _dataDir("C:\\Samples\\Conversion\\");
// String for input file name
String infilename("sample.bmp");
// String for input file name
String outfilename("ImageToPDF-BMP.pdf");
// Open document
auto document = MakeObject<Document>();
// Add empty page in empty document
auto page = document->get_Pages()->Add();
auto image = MakeObject<Aspose::Pdf::Image>();
image->set_File(_dataDir + infilename);
// Add image on a page
page->get_Paragraphs()->Add(image);
// Save output document
document->Save(_dataDir + outfilename);
std::clog << "BMP to PDF convert: Finish" << std::endl;
}
Попробуйте преобразовать BMP в PDF онлайн
Aspose предлагает вам бесплатное онлайн-приложение “BMP в PDF”, где вы можете попробовать исследовать функциональность и качество его работы.
Конвертировать DICOM в PDF
DICOM формат является стандартом медицинской индустрии для создания, хранения, передачи и визуализации цифровых медицинских изображений и документов обследованных пациентов.
Aspose.PDF for C++ позволяет конвертировать изображения DICOM и SVG, но по техническим причинам для добавления изображений необходимо указать тип файла, который будет добавлен в PDF:
- Создайте String Class для имени пути и имени файла.
- Создайте объект Document.
- Добавьте Page в коллекцию страниц документа.
- Aspose.PDF TDicom добавлен на страницу как абзац.
- Загрузите и сохраните входной файл изображения.
Следующий фрагмент кода показывает, как конвертировать файлы DICOM в формат PDF с помощью Aspose.PDF. Вам следует загрузить изображение DICOM, разместить изображение на странице в PDF-файле и сохранить результат как PDF.
void ConvertDICOMtoPDF()
{
std::clog << "DICOM to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("CR_Anno.dcm");
String outfilename("PDFWithDicomImage_out.pdf");
// Instantiate Document Object
auto document = MakeObject<Document>();
// Add a page to pages collection of document
auto page = document->get_Pages()->Add();
auto image = MakeObject<Aspose::Pdf::Image>();
image->set_File(_dataDir + infilename);
image->set_FileType(Aspose::Pdf::ImageFileType::Dicom);
page->get_Paragraphs()->Add(image);
// Save output as PDF format
document->Save(_dataDir + outfilename);
std::clog << "DICOM to PDF convert: Finish" << std::endl;
}
Попробуйте конвертировать DICOM в PDF онлайн
Aspose предлагает вам бесплатное онлайн-приложение “DICOM to PDF”, где вы можете попробовать изучить функциональность и качество его работы.
Конвертация EMF в PDF
EMFEMF хранит графические изображения независимо от устройства. Метафайлы EMF состоят из записей переменной длины в хронологическом порядке, которые могут воспроизводить хранимое изображение после анализа на любом выходном устройстве. Более того, вы можете конвертировать EMF в PDF изображение, используя следующие шаги:
- Создайте String Class для имени пути и имени файла.
- Создается экземпляр нового объекта Document.
- Добавьте новую страницу в этот Document.
Новый Aspose.Pdf TIFF создан.
- Объект Aspose.PDF TIFF инициализируется с использованием входного файла.
- Aspose.PDF TIFF добавляется на страницу как параграф.
- Загрузите и сохраните входной файл изображения.
Кроме того, следующий фрагмент кода показывает, как конвертировать EMF в PDF с помощью C++ в вашем фрагменте кода:
void ConvertEMFtoPDF()
{
std::clog << "EMF to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("sample.emf");
String outfilename("ImageToPDF_emf.pdf");
auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
auto myimage = MakeObject<System::Drawing::Bitmap>(fileStream);
auto document = MakeObject<Document>();
auto page = document->get_Pages()->Add();
auto currentImage = MakeObject<System::IO::MemoryStream>();
myimage->Save(currentImage, System::Drawing::Imaging::ImageFormat::get_Tiff());
auto imageht = MakeObject<Aspose::Pdf::Image>();
imageht->set_ImageStream(currentImage);
page->get_Paragraphs()->Add(imageht);
document->Save(_dataDir + outfilename);
std::clog << "EMF to PDF convert: Finish" << std::endl;
}
Попробуйте преобразовать EMF в PDF онлайн
Aspose предлагает вам бесплатное онлайн-приложение “EMF to PDF”, где вы можете исследовать функциональность и качество его работы.
## Преобразование JPG в PDF
Нет необходимости задаваться вопросом, как преобразовать JPG в PDF, потому что библиотека **Aspose.PDF для C++** предлагает лучшее решение.
Вы можете очень легко преобразовать изображения JPG в PDF с помощью Aspose.PDF для C++, следуя этим шагам:
1. Создайте [класс String](https://reference.aspose.com/pdf/cpp/class/system.string) для имени пути и имени файла.
1. Создается экземпляр нового объекта Document.
1. Добавьте новую страницу в этот [Document](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.document).
1. Создается новый объект Aspose::Pdf::Image.
1. Объект изображения Aspose.PDF инициализируется с использованием входного файла.
1. Aspose.PDF Image добавляется на страницу как абзац.
1. Загрузите и сохраните входной файл изображения.
Пример кода ниже показывает, как преобразовать JPG изображение в PDF с использованием C++:
```cpp
void ConvertJPEGtoPDF()
{
std::clog << "JPEG to PDF convert: Start" << std::endl;
// Строка для имени пути
String _dataDir("C:\\Samples\\Conversion\\");
// Строка для имени входного файла
String infilename("sample.jpg");
// Строка для имени выходного файла
String outfilename("ImageToPDF-JPEG.pdf");
// Открыть документ
auto document = MakeObject<Document>();
// Добавить пустую страницу в пустой документ
auto page = document->get_Pages()->Add();
auto image = MakeObject<Aspose::Pdf::Image>();
image->set_File(_dataDir + infilename);
// Добавить изображение на страницу
page->get_Paragraphs()->Add(image);
// Сохранить выходной документ
document->Save(_dataDir + outfilename);
std::clog << "JPEG to PDF convert: Finish" << std::endl;
}
Затем вы можете увидеть, как преобразовать изображение в PDF с той же высотой и шириной страницы. Мы будем получать размеры изображения и соответственно задавать размеры страницы PDF-документа с помощью следующих шагов:
- Загрузить входной файл изображения
- Получить высоту и ширину изображения
- Установить высоту, ширину и поля страницы
- Сохранить выходной PDF-файл
Следующий фрагмент кода показывает, как преобразовать изображение в PDF с одинаковой высотой и шириной страницы, используя C++:
void ConvertJPGtoPDF_fitsize()
{
std::clog << "JPEG to PDF convert: Start" << std::endl;
// Строка для имени пути
String _dataDir("C:\\Samples\\Conversion\\");
// Строка для имени входного файла
String infilename("sample.jpg");
// Строка для имени выходного файла
String outfilename("ImageToPDF-JPG.pdf");
// Открыть документ
auto document = MakeObject<Document>();
// Добавить пустую страницу в пустой документ
auto page = document->get_Pages()->Add();
auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
auto bitMap = MakeObject<System::Drawing::Bitmap>(fileStream);
auto image = MakeObject<Aspose::Pdf::Image>();
image->set_File(_dataDir + infilename);
// Добавить изображение на страницу
page->get_Paragraphs()->Add(image);
// Установить размеры и поля страницы
page->get_PageInfo()->set_Height(bitMap->get_Height());
page->get_PageInfo()->set_Width(bitMap->get_Width());
page->get_PageInfo()->get_Margin()->set_Bottom(0);
page->get_PageInfo()->get_Margin()->set_Top(0);
page->get_PageInfo()->get_Margin()->set_Right(0);
page->get_PageInfo()->get_Margin()->set_Left(0);
page->get_Paragraphs()->Add(image);
// Сохранить выходной документ
document->Save(_dataDir + outfilename);
std::clog << "JPEG to PDF convert: Finish" << std::endl;
}
Попробуйте конвертировать JPG в PDF онлайн
Aspose представляет вам бесплатное онлайн-приложение “JPG to PDF”, где вы можете попробовать исследовать функциональность и качество его работы.
Конвертировать PNG в PDF
Aspose.PDF для C++ поддерживает функцию конвертации изображений PNG в формат PDF. Ознакомьтесь со следующим примером кода для выполнения вашей задачи.
PNG относится к типу растрового формата файлов изображений, который использует без потерь сжатие, что делает его популярным среди пользователей.
Вы можете конвертировать PNG в изображение PDF, используя следующие шаги:
- Создайте String Class для имени пути и имени файла.
- Создается экземпляр нового объекта Document.
- Добавьте новую страницу в этот документ.
- Создается новый Aspose.Pdf PNG.
- Объект Aspose.PDF PNG инициализируется с использованием входного файла.
- Aspose.PDF PNG добавляется на страницу как параграф.
- Загрузите и сохраните входной файл изображения.
Кроме того, приведенный ниже фрагмент кода показывает, как конвертировать PNG в PDF в ваших C++ приложениях:
void ConvertPNGtoPDF()
{
std::clog << "PNG to PDF convert: Start" << std::endl;
// Строка для имени пути
String _dataDir("C:\\Samples\\Conversion\\");
// Строка для имени входного файла
String infilename("sample.png");
// Строка для имени выходного файла
String outfilename("ImageToPDF-PNG.pdf");
// Открыть документ
auto document = MakeObject<Document>();
// Добавить пустую страницу в пустой документ
auto page = document->get_Pages()->Add();
auto image = MakeObject<Aspose::Pdf::Image>();
image->set_File(_dataDir + infilename);
// Добавить изображение на страницу
page->get_Paragraphs()->Add(image);
// Сохранить выходной документ
document->Save(_dataDir + outfilename);
std::clog << "PNG to PDF convert: Finish" << std::endl;
}
Попробуйте конвертировать PNG в PDF онлайн
Aspose предлагает вам бесплатное онлайн-приложение “PNG в PDF”, где вы можете попробовать исследовать функциональность и качество его работы.
Конвертировать SVG в PDF
Aspose.PDF для C++ объясняет, как конвертировать SVG-изображения в формат PDF и как получить размеры исходного файла SVG.
Scalable Vector Graphics (SVG) — это семейство спецификаций формата файлов на основе XML для двумерной векторной графики, как статической, так и динамической (интерактивной или анимированной). Спецификация SVG является открытым стандартом, который разрабатывается Консорциумом Всемирной паутины (W3C) с 1999 года.
SVG-изображения и их поведение определяются в текстовых файлах XML. Это означает, что они могут быть найдены, индексированы, скриптованы и, при необходимости, сжаты. Как файлы XML, SVG-изображения можно создавать и редактировать с помощью любого текстового редактора, но часто удобнее создавать их с помощью графических программ, таких как Inkscape.
- Создайте класс String для имени пути и имени файла.
- Создайте экземпляр класса
SvgLoadOptions
. - Создайте экземпляр класса Document с указанием исходного имени файла и опций.
- Сохраните документ с нужным именем файла.
Следующий фрагмент кода показывает процесс преобразования файла SVG в формат PDF с использованием Aspose.PDF для C++.
void ConvertSVGtoPDF()
{
std::clog << "SVG to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("sample.svg");
String outfilename("ImageToPDF-SVG.pdf");
auto options = MakeObject<SvgLoadOptions>();
try {
auto document = MakeObject<Document>(_dataDir + infilename, options);
document->Save(_dataDir + outfilename);
}
catch (System::Exception ex) {
std::cerr << ex->get_Message() << std::endl;
}
std::clog << "SVG to PDF convert: Finish" << std::endl;
}
Сonsider an example with advanced features:
void ConvertSVGtoPDF_Advanced()
{
std::clog << "SVG to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("Sweden-Royal-flag-grand-coa.svg");
String outfilename("ImageToPDF-SVG.pdf");
auto options = MakeObject<SvgLoadOptions>();
options->set_AdjustPageSize(true);
options->ConversionEngine = SvgLoadOptions::ConversionEngines::NewEngine;
try {
auto document = MakeObject<Document>(_dataDir + infilename, options);
document->Save(_dataDir + outfilename);
}
catch (System::Exception ex) {
std::cerr << ex->get_Message() << std::endl;
}
std::clog << "SVG to PDF convert: Finish" << std::endl;
}
Попробуйте преобразовать формат SVG в PDF онлайн
Aspose.PDF for C++ предлагает вам бесплатное онлайн-приложение “SVG to PDF”, где вы можете попробовать исследовать функциональность и качество работы.
Конвертация TIFF в PDF
Формат файла Aspose.PDF поддерживается, будь то однофреймное или многофреймное изображение TIFF. Это означает, что вы можете конвертировать изображение TIFF в PDF в своих приложениях на C++.
TIFF или TIF, Tagged Image File Format, представляет собой растровые изображения, предназначенные для использования на различных устройствах, соответствующих этому стандарту файлового формата. Изображение TIFF может содержать несколько кадров с различными изображениями. Формат файла Aspose.PDF также поддерживается, будь то однофреймное или многофреймное изображение TIFF. Таким образом, вы можете конвертировать изображение TIFF в PDF в своих приложениях на C++. Поэтому мы рассмотрим пример конвертации многостраничного изображения TIFF в многостраничный документ PDF с помощью следующих шагов:
- Создайте Строковый Класс для имени пути и имени файла.
- Создается экземпляр нового объекта Document.
- Добавьте новую страницу в этот Document.
- Создается новый Aspose.Pdf TIFF.
- Объект Aspose.PDF TIFF инициализируется с использованием входного файла.
- Aspose.PDF TIFF добавляется на страницу в качестве абзаца.
- Загрузите и сохраните входной файл изображения.
Кроме того, следующий фрагмент кода показывает, как преобразовать многостраничное или многокадровое изображение TIFF в PDF с использованием C++:
void ConvertTIFFtoPDF()
{
std::clog << "TIFF to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("sample.tiff");
String outfilename("ImageToPDF-TIFF.pdf");
auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
auto myimage = MakeObject<System::Drawing::Bitmap>(fileStream);
auto document = MakeObject<Document>();
auto page = document->get_Pages()->Add();
auto currentImage = MakeObject<System::IO::MemoryStream>();
myimage->Save(currentImage, System::Drawing::Imaging::ImageFormat::get_Tiff());
auto imageht = MakeObject<Aspose::Pdf::Image>();
imageht->set_ImageStream(currentImage);
page->get_Paragraphs()->Add(imageht);
document->Save(_dataDir + outfilename);
std::clog << "TIFF to PDF convert: Finish" << std::endl;
}