Convertir PS, EPS y XPS
¡Libere todo el potencial de sus aplicaciones de C++ con nuestra versátil solución API! ¡Convierta archivos PS, EPS y XPS sin problemas en archivos PDF de alta calidad e imágenes impresionantes con nuestra versátil solución API para C++!
¡Descubra todo el potencial de sus aplicaciones de C++ con nuestra versátil solución API nativa! Convierta archivos PS, EPS y XPS en PDF de alta calidad e imágenes impresionantes de forma rápida y sencilla. Ya sea que necesite una transformación precisa de documentos o un contenido visual perfecto, nuestra API simplifica el proceso, proporcionándole las herramientas para mejorar sus proyectos sin esfuerzo. Mejore su gestión de documentos y dé nueva vida a sus recursos visuales. Experimente la magia de la conversión de documentos PostScript (PS) y Encapsulated PostScript (EPS), así como documentos XPS a PDF e imágenes con nuestra API de C++. ¿Listo para transformar sus documentos? ¡Pruebe nuestra prueba gratuita o compre ahora y eleve su contenido hoy mismo!
Los programadores pueden usarlo fácilmente para el procesamiento por lotes de documentos PostScript y XPS, incluso manipular lienzos (canvases), trazos (paths) y elementos de glifos (glyphs), y manejar formas de gráficos vectoriales y cadenas de texto.
La solución API para C++ aquí le permite convertir archivos de formatos PDL como PS, EPS y XPS de forma programada, pero puede resultarle útil ver y probar soluciones multiplataforma desarrolladas sobre estas API nativas. Aquí hay algunos escenarios de conversión como EPS a imágenes, EPS a PDF, PostScript a PDF, PostScript a imágenes, XPS a imágenes y XPS a PDF.
Convertir PostScript (PS, EPS) a imágenes vía C++.
La librería de C++ permite convertir archivos PostScript (PS) y Encapsulated PostScript (EPS) a imágenes en las plataformas Windows, Linux y macOS. El proceso es:
- Cargue el documento utilizando el constructor de la clase PsDocument , indicando el flujo de archivo de entrada o el nombre del archivo como parámetro.
- Cree el objeto de la clase ImageSaveOptions e inicialícelo con la configuración requerida. Llame a set_ImageFormat para establecer el formato de imagen como valor de ImageFormat .
- Guarde cada página del archivo de entrada en un array de bytes de imagen con SaveAsImage .
Código C++ para la conversión de EPS a imágenes
// 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());
}
}
Conversión de PostScript a PDF vía C++.
El proceso de conversión de PostScript a PDF es tan simple como el de PostScript a imágenes:
- Cargue el documento utilizando el constructor de la clase PsDocument , indicando el flujo de archivo de entrada o el nombre del archivo como parámetro.
- Cree un objeto de la clase PdfSaveOptions para definir configuraciones adicionales como AdditionalFontsFolder y el valor SuppressError, etc.
- Llame al método SaveAsPdf para la conversión a archivo PDF.
Código C++ para la conversión de PostScript a 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());
}
}Convertir XPS a imágenes vía C++.
La API de procesamiento C++ XPS se encarga de la conversión de XPS a imágenes incluyendo BMP, JPG, TIFF, PNG y más, así como de la conversión de XPS a PDF en sistemas basados en Windows y Linux. El proceso para convertir XPS a imagen es:
- Cree una instancia de la clase XpsDocument con el nombre del archivo de entrada y XpsLoadOptions como parámetros del constructor.
- Cree la opción de guardado como una instancia de una clase de Aspose::Page::XPS::Presentation::Image .
- Llame al método SaveAsImage del documento XPS para guardar cada página del documento en un array de bytes de imagen.
Código C++ para la conversión de XPS a imágenes
// 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());
}
}
}
}
Convertir XPS a PDF vía C++.
La API de procesamiento C++ XPS se encarga de la conversión de XPS a imágenes incluyendo BMP, JPG, TIFF, PNG y más, así como de la conversión de XPS a PDF en sistemas basados en Windows y Linux. El proceso para convertir XPS a PDF es:
- Defina el flujo de salida para la salida PDF.
- Cree una instancia de la clase XpsDocument con el nombre del archivo de entrada y XpsLoadOptions como parámetros del constructor.
- Especifique las opciones de guardado específicas de PDF como TextCompression, ImageCompression y JpegQualityLevel utilizando PdfSaveOptions .
- Finalmente, convierta el documento XPS a PDF utilizando cualquiera de los métodos SaveAsPdf .
Código C++ para la conversión de XPS a 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. ¿Puedo convertir Postscript con esta solución API?
Aspose.Page tiene una funcionalidad que le permite convertir archivos PS, XPS y EPS a otros formatos en línea o mediante programación. Si necesita transformar sus archivos instantáneamente en línea, puede usar la aplicación multiplataforma Convertidor de archivos de formato de lenguaje de descripción de página .
2. ¿Qué idiomas de descripción de página son compatibles con el convertidor?
Esta función de conversión admite archivos con extensiones .ps, .eps y .xps. PDL tan famosos como PDF y SVG se representan como soluciones separadas en Aspose.products
3. ¿La funcionalidad es gratuita?
Los convertidores multiplataforma son gratuitos, cuando para la solución API puede obtener una prueba gratuita y luego comprar el producto si es necesario.
Support and Learning Resources
- Recursos de aprendizaje
- Documentación
- Código fuente
- Referencias de API
- Soporte de producto
- Soporte gratuito
- Soporte pagado
- Blog
- Release Notes
- ¿Por qué Aspose.Page para C++?
- Lista de clientes
- Historias de éxito