Конвертація PS, EPS та XPS
Розкрийте повний потенціал ваших додатків на C++ за допомогою нашого універсального API-рішення! Безперешкодно конвертуйте файли PS, EPS та XPS у високоякісні PDF-файли та чудові зображення за допомогою нашого універсального API-рішення для C++!
Відкрийте для себе повний потенціал ваших додатків на C++ за допомогою нашого універсального нативного API-рішення! Швидко та легко конвертуйте файли PS, EPS та XPS у високоякісні PDF-файли та чудові зображення. Незалежно від того, чи потрібна вам точна трансформація документів чи ідеальний візуальний контент, наш API спрощує процес, надаючи вам інструменти для легкого покращення ваших проектів. Покращуйте управління документами та вдихніть нове життя у ваші візуальні ефекти. Відчуйте магію конвертації документів PostScript (PS) та Encapsulated PostScript (EPS), а також документів XPS у PDF та зображення за допомогою нашого C++ API. Готові трансформувати свої документи? Спробуйте нашу безкоштовну пробну версію або купіть зараз та підніміть свій контент на новий рівень уже сьогодні!
Програмісти можуть легко використовувати його для пакетної обробки документів PostScript та XPS, навіть маніпулювати полотнами (canvases), шляхами (paths) та елементами гліфів (glyphs), а також обробляти фігури векторної графіки та текстові рядки.
Представлене тут API-рішення для C++ дозволяє програмно конвертувати файли таких форматів PDL, як PS, EPS та XPS, але вам може бути корисно побачити та спробувати кросплатформні рішення, розроблені на основі цих нативних API. Ось кілька сценаріїв конвертації, таких як EPS у зображення, EPS у PDF, PostScript у PDF, PostScript у зображення, XPS у зображення та XPS у PDF.
Конвертація PostScript (PS, EPS) у зображення через C++.
Бібліотека C++ дозволяє конвертувати файли PostScript (PS) та Encapsulated PostScript (EPS) у зображення на платформах Windows, Linux та macOS. Процес наступний:
- Завантажте документ, використовуючи конструктор класу PsDocument , що приймає потік вхідного файлу або ім’я файлу як параметр.
- Створіть об’єкт класу ImageSaveOptions та ініціалізуйте його необхідними налаштуваннями. Викличте 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 , що приймає потік вхідного файлу або ім’я файлу як параметр.
- Створіть об’єкт класу PdfSaveOptions для визначення додаткових налаштувань, таких як AdditionalFontsFolder, значення 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++.
C++ XPS Processing API забезпечує конвертацію XPS у зображення, включаючи BMP, JPG, TIFF, PNG та інші, а також конвертацію XPS у PDF у системах на базі Windows та Linux. Процес конвертації XPS у зображення наступний:
- Створіть екземпляр класу XpsDocument , використовуючи ім’я вхідного файлу та 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++.
C++ XPS Processing API забезпечує конвертацію XPS у зображення, включаючи BMP, JPG, TIFF, PNG та інші, а также конвертацію XPS у PDF у системах на базі Windows та Linux. Процес конвертації XPS у PDF наступний:
- Визначте вихідний потік для PDF-файлу.
- Створіть екземпляр класу XpsDocument , використовуючи ім’я вхідного файлу та 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.products
3. Чи безкоштовна ця функціональність?
Кросплатформні конвертери безкоштовні, тоді як для рішення API ви можете отримати безкоштовну пробну версію, а потім придбати продукт, якщо це необхідно.
Support and Learning Resources
- Навчальні ресурси
- Документація
- Вихідний код
- Посилання на API
- Підтримка продукту
- Безкоштовна підтримка
- Платна підтримка
- Блог
- Release Notes
- Чому Aspose.Page для C++?
- Список клієнтів
- Історії успіху