Конвертируйте PS, EPS и XPS
Раскройте весь потенциал своих приложений C++ с помощью нашего универсального решения API! Легко конвертируйте файлы PS, EPS и XPS в высококачественные PDF-файлы и потрясающие изображения с помощью нашего универсального решения API для C++!
Раскройте весь потенциал своих приложений на C++ с помощью нашего универсального собственного решения API! Быстро и легко конвертируйте файлы PS, EPS и XPS в высококачественные PDF-файлы и потрясающие изображения. Если вам нужно точное преобразование документа или идеальный визуальный контент, наш API упрощает процесс, предоставляя вам инструменты для легкого улучшения ваших проектов. Улучшите управление документами и вдохните новую жизнь в ваши визуальные эффекты. Испытайте волшебство PostScript (PS) и инкапсулированного PostScript (EPS), а также конвертируйте документы XPS в PDF и изображения с помощью нашего C++ API. Готовы преобразить свои документы? Попробуйте нашу бесплатную пробную версию или купите сейчас и улучшите свой контент уже сегодня!
Программисты могут легко использовать его для пакетной обработки документов PostScript и XPS, даже манипулировать холстами, путями и элементами глифов, а также обрабатывать фигуры векторной графики и текстовые строки.
Решение API для C++, представленное здесь, позволяет программно конвертировать файлы таких форматов PDL, как PS, EPS и XPS, но вам может оказаться полезным увидеть и опробовать кроссплатформенные решения, разработанные на основе этих собственных API. Вот несколько сценариев преобразования, таких как EPS в изображения, EPS в PDF, PostScript в PDF, PostScript в изображения, XPS в изображения и XPS в PDF.
Преобразование PostScript (PS,EPS) в изображения с помощью C++.
Библиотека C++ позволяет конвертировать файлы PostScript (PS) и инкапсулированный PostScript (EPS) в изображения на платформах Windows, Linux и macOS. Процесс:
- Загрузите документ, используя класс PsDocument constructor , имеющий в качестве параметра поток входного файла или имя файла.
- Создайте объект ImageSaveOptions Class и инициализируйте его с необходимыми настройками. Вызовите set_ImageFormat , чтобы установить формат изображения как значение ImageFormat .
- Сохраните каждую страницу входного файла в массив байтов изображения с помощью SaveAsImage .
Код C++ для преобразования EPS в изображения
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithDocumentConversion(); | |
// Initialize PsDocument with the name of PostScript file. | |
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(dataDir + u"inputForImage.ps"); | |
// If you want to convert Postscript file despite of minor errors set this flag | |
bool suppressErrors = true; | |
//Initialize options object with necessary parameters. | |
System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(); | |
//Set output image format. | |
options->set_ImageFormat(Aspose::Page::Drawing::Imaging::ImageFormat::Png); | |
// If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. | |
options->set_AdditionalFontsFolders(System::MakeArray<System::String>({u"{FONT_FOLDER}"})); | |
// Save PS document as array of image bytes, one bytes array for one page. | |
System::ArrayPtr<System::ArrayPtr<uint8_t>> imagesBytes = document->SaveAsImage(options); | |
//Save images bytes arrays as image files. | |
int32_t i = 0; | |
for (System::ArrayPtr<uint8_t> imageBytes : imagesBytes) | |
{ | |
System::String imagePath = System::IO::Path::GetFullPath(dataDir + u"out_image" + System::Convert::ToString(i) + u"." + System::ObjectExt::ToString(options->get_ImageFormat()).ToLower()); | |
{ | |
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(imagePath, System::IO::FileMode::Create, System::IO::FileAccess::Write); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_0({ fs}); | |
// ------------------------------------------ | |
try | |
{ | |
fs->Write(imageBytes, 0, imageBytes->get_Length()); | |
} | |
catch(...) | |
{ | |
__dispose_guard_0.SetCurrentException(std::current_exception()); | |
} | |
} | |
i++; | |
} | |
//Review errors | |
if (suppressErrors) | |
{ | |
for (auto&& ex : System::IterateOver(options->get_Exceptions())) | |
{ | |
System::Console::WriteLine(ex->get_Message()); | |
} | |
} |
Преобразование PostScript в PDF с помощью C++.
Процесс преобразования PostScript в PDF так же прост, как и PostScript в изображения:
- Загрузите документ, используя класс PsDocument constructor , имеющий в качестве параметра поток входного файла или имя файла.
- Создайте объект PdfSaveOptions Class , чтобы определить дополнительные настройки, такие как значение ExtraFontsFolder и SuppressError и т. д.
- Вызовите метод SaveAsPdf для преобразования PDF-файла.
Код C++ для преобразования PostScript в PDF
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithDocumentConversion(); | |
// Initialize PsDocument with the name of PostScript file. | |
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(dataDir + u"input.ps"); | |
// If you want to convert Postscript file despite of minor errors set this flag | |
bool suppressErrors = true; | |
//Initialize options object with necessary parameters. | |
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>(suppressErrors); | |
// If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. | |
options->set_AdditionalFontsFolders(System::MakeArray<System::String>({u"{FONT_FOLDER}"})); | |
// Default page size is 595x842 and it is not mandatory to set it in PdfSaveOptions | |
// But if you need to specify sizeuse following line | |
//PdfSaveOptions options = new PdfSaveOptions(suppressErrorsnew, Aspose.Page.Drawing.Size(595x842)); | |
// or | |
//saveOptions.Size = new Aspose.Page.Drawing.Size(595x842); | |
// Save document as PDF | |
document->SaveAsPdf(dataDir + u"outputPDF_out.pdf", options); | |
//Review errors | |
if (suppressErrors) | |
{ | |
for (auto&& ex : System::IterateOver(options->get_Exceptions())) | |
{ | |
System::Console::WriteLine(ex->get_Message()); | |
} | |
} |
Преобразование XPS в изображения с помощью C++.
API обработки XPS C++ занимается преобразованием XPS в изображения, включая BMP, JPG, TIFF, PNG и другие, а также преобразованием XPS в PDF в системах на базе Windows и Linux. Процесс преобразования XPS в изображение:
- Создайте экземпляр XpsDocument Class с именем входного файла и XpsLoadOptions в качестве параметров конструктора.
- Создайте опцию сохранения как экземпляр одного класса из Aspose::Page::XPS::Presentation::Image .
- Вызовите метод SaveAsImage документа XPS, чтобы сохранить каждую страницу документа в массив байтов изображения.
Код C++ для преобразования XPS в изображения
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithDocumentConversion(); | |
//Outut file | |
System::String outputFileName = dataDir + u"XPStoImage_out.bmp"; | |
// Load XPS document form the XPS file | |
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(dataDir + u"input.xps", System::MakeObject<XpsLoadOptions>()); | |
// Initialize options object with necessary parameters. | |
System::SharedPtr<BmpSaveOptions> options = System::MakeObject<BmpSaveOptions>(); | |
options->set_SmoothingMode(System::Drawing::Drawing2D::SmoothingMode::HighQuality); | |
options->set_Resolution(300); | |
options->set_PageNumbers(System::MakeArray<int32_t>({1, 2, 6})); | |
// Save XPS document to the images byte arrays. The first dimension is for inner documents | |
// and the second one is for pages within inner documents. | |
System::ArrayPtr<System::ArrayPtr<System::ArrayPtr<uint8_t>>> imagesBytes = document->SaveAsImage(options); | |
// Iterate through document partitions (fixed documents, in XPS terms) | |
for (int32_t i = 0; i < imagesBytes->get_Length(); i++) | |
{ | |
// Iterate through partition pages | |
for (int32_t j = 0; j < imagesBytes[i]->get_Length(); j++) | |
{ | |
// Initialize image output stream | |
{ | |
System::SharedPtr<System::IO::Stream> imageStream = System::IO::File::Open(System::IO::Path::GetDirectoryName(outputFileName) + System::IO::Path::DirectorySeparatorChar + System::IO::Path::GetFileNameWithoutExtension(outputFileName) + u"_" + (i + 1) + u"_" + (j + 1) + System::IO::Path::GetExtension(outputFileName), System::IO::FileMode::Create, System::IO::FileAccess::Write); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_0({ imageStream}); | |
// ------------------------------------------ | |
try | |
{ | |
imageStream->Write(imagesBytes[i][j], 0, imagesBytes[i][j]->get_Length()); | |
} | |
catch(...) | |
{ | |
__dispose_guard_0.SetCurrentException(std::current_exception()); | |
} | |
} | |
} | |
} | |
Конвертируйте XPS в PDF с помощью C++.
API обработки XPS C++ занимается преобразованием XPS в изображения, включая BMP, JPG, TIFF, PNG и другие, а также преобразованием XPS в PDF в системах на базе Windows и Linux. Процесс преобразования XPS в PDF заключается в следующем:
- Определите выходной поток для вывода PDF.
- Создайте экземпляр XpsDocument Class с именем входного файла и XpsLoadOptions в качестве параметров конструктора.
- Укажите параметры сохранения PDF-файла, такие как TextCompression, ImageCompression и JpegQualityLevel, с помощью PdfSaveOptions .
- Наконец, преобразуйте документ XPS в PDF, используя любой из методов SaveAsPdf .
Код C++ для преобразования XPS в PDF
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithDocumentConversion(); | |
// Initialize PDF output stream | |
{ | |
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(dataDir + u"XPStoPDF_out.pdf", System::IO::FileMode::OpenOrCreate, System::IO::FileAccess::Write); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_0({ pdfStream}); | |
// ------------------------------------------ | |
try | |
{ | |
// Load XPS document form the XPS file | |
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(dataDir + u"input.xps", System::MakeObject<XpsLoadOptions>()); | |
// Initialize options object with necessary parameters. | |
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions> options = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions>(); | |
options->set_JpegQualityLevel(100); | |
options->set_ImageCompression(Aspose::Page::XPS::Presentation::Pdf::PdfImageCompression::Jpeg); | |
options->set_TextCompression(Aspose::Page::XPS::Presentation::Pdf::PdfTextCompression::Flate); | |
options->set_PageNumbers(System::MakeArray<int32_t>({1, 2, 6})); | |
document->SaveAsPdf(pdfStream, options); | |
} | |
catch(...) | |
{ | |
__dispose_guard_0.SetCurrentException(std::current_exception()); | |
} | |
} |
FAQ
1. Могу ли я преобразовать Postscript с помощью этого решения API?
Aspose.Page имеет функциональные возможности, позволяющие конвертировать файлы PS, XPS и EPS в другие форматы онлайн или программно. Если вам нужно мгновенно преобразовать файлы онлайн, вы можете использовать кроссплатформенное приложение Конвертер файлов формата описания страницы .
2. Какие языки описания страниц поддерживаются конвертером?
Эта функция преобразования поддерживает файлы с расширениями .ps, .eps и .xps. Такие известные PDL, как PDF и SVG, представлены в виде отдельных решений в продуктах Aspose.
3. Функционал бесплатный?
Кросс-платформенные конвертеры бесплатны, когда для решения API вы можете получить бесплатную пробную версию, а затем купить продукт, если это необходимо.
Support and Learning Resources
- Образовательные ресурсы
- Документация
- Исходный код
- Ссылки на API
- Поддержка продукта
- Бесплатная поддержка
- Платная поддержка
- Блог
- Release Notes
- Почему Aspose.Page для C++?
- Список клиентов
- Истории успеха