Converta PS, EPS e XPS
Libere todo o potencial de seus aplicativos C++ com nossa versátil solução de API! Converta perfeitamente arquivos PS, EPS e XPS em PDFs de alta qualidade e imagens impressionantes com nossa solução API versátil para C++!
Descubra todo o potencial de seus aplicativos C++ com nossa versátil solução de API nativa! Converta arquivos PS, EPS e XPS em PDFs de alta qualidade e imagens impressionantes com rapidez e facilidade. Se você precisa de uma transformação precisa de documentos ou de um conteúdo visual perfeito, nossa API simplifica o processo, fornecendo as ferramentas para aprimorar seus projetos sem esforço. Melhore o gerenciamento de documentos e dê nova vida aos seus recursos visuais. Experimente a magia do PostScript (PS) e do PostScript Encapsulado (EPS), bem como da conversão de documentos XPS em PDF e imagens com nossa API C++. Pronto para transformar seus documentos? Experimente nosso teste gratuito ou compre agora e eleve seu conteúdo hoje mesmo!
Os programadores podem usá-lo facilmente para processamento em lote de documentos PostScript e XPS, até mesmo manipular telas, caminhos e elementos de glifos e lidar com formas gráficas vetoriais e sequências de texto.
A solução API para C++ aqui permite converter arquivos de formatos PDL como PS, EPS e XPS programaticamente, mas pode ser útil ver e experimentar a plataforma cruzada desenvolvida nessas APIs nativas. Aqui estão alguns cenários de conversão, como EPS para imagens, EPS para PDF, PostScript para PDF, PostScript para imagens, XPS para imagens e XPS para PDF
Converta PostScript (PS,EPS) em imagens via C++.
A biblioteca C++ permite converter arquivos PostScript (PS) e Encapsulated PostScript (EPS) em imagens nas plataformas Windows, Linux e macOS. O processo é:
- Carregue o documento usando PsDocument class constructor tendo fluxo de arquivo de entrada ou nome de arquivo como parâmetro.
- Crie o objeto ImageSaveOptions Class e inicialize-o com as configurações necessárias. Chame set_ImageFormat para definir o formato da imagem como valor de ImageFormat .
- Salve cada página do arquivo de entrada em uma matriz de bytes de imagem com SaveAsImage .
Código C++ para conversão de EPS em imagens
// 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()); | |
} | |
} |
Conversão de PostScript para PDF via C++.
O processo de conversão de PostScript em PDF é tão simples quanto PostScript em Imagens:
- Carregue o documento usando PsDocument class constructor tendo fluxo de arquivo de entrada ou nome de arquivo como parâmetro.
- Crie o objeto da classe PdfSaveOptions para definir configurações adicionais, como valor AdicionalFontsFolder e SuppressError, etc.
- Chame o método SaveAsPdf para conversão de arquivo PDF.
Código C++ para conversão de PostScript em 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()); | |
} | |
} |
Converta XPS em imagens via C++.
A API de processamento C++ XPS lida com a conversão de XPS em imagens, incluindo BMP, JPG, TIFF, PNG e muito mais, bem como a conversão de XPS em PDF em sistemas baseados em Windows e Linux. O processo de conversão de XPS em imagem é:
- Crie uma instância de XpsDocument Class com o nome do arquivo de entrada e XpsLoadOptions como parâmetros do construtor.
- Crie uma opção de salvamento como uma instância de uma classe de Aspose::Page::XPS::Presentation::Image .
- Chame o método SaveAsImage do documento XPS para salvar cada página do documento em uma matriz de bytes de imagem.
Código C++ para conversão de XPS em imagens
// 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()); | |
} | |
} | |
} | |
} | |
Converta XPS para PDF via C++.
A API de processamento C++ XPS lida com a conversão de XPS em imagens, incluindo BMP, JPG, TIFF, PNG e muito mais, bem como a conversão de XPS em PDF em sistemas baseados em Windows e Linux. O processo de conversão de XPS em PDF é:
- Defina o fluxo de saída para saída em PDF.
- Crie uma instância de XpsDocument Class com o nome do arquivo de entrada e XpsLoadOptions como parâmetros do construtor.
- Especifique as opções de salvamento específicas do PDF, como TextCompression, ImageCompression e JpegQualityLevel usando PdfSaveOptions .
- Por fim, converta o documento XPS em PDF usando qualquer um dos métodos SaveAsPdf .
Código C++ para conversão de XPS em 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. Posso converter Postscript com esta solução de API?
Aspose.Page tem funcionalidade que permite converter arquivos PS, XPS e EPS para outros formatos online ou programaticamente. Se você precisar transformar seus arquivos instantaneamente on-line, talvez queira usar o aplicativo de plataforma cruzada Conversor de arquivos de formato de linguagem de descrição de página .
2. Quais idiomas de descrição de página são suportados pelo conversor?
Essa funcionalidade de conversão oferece suporte a arquivos com extensões .ps, .eps e .xps. PDLs famosos como PDF e SVG são representados como soluções separadas no Aspose.products
3. A funcionalidade é gratuita?
Os conversores de plataforma cruzada são gratuitos, quando para a solução de API você pode obter uma avaliação gratuita e comprar o produto, se necessário.
Support and Learning Resources
- Recursos de aprendizagem
- Documentação
- Código fonte
- Referências de API
- Suporte ao produto
- Suporte gratuito
- Suporte pago
- Blogue
- Release Notes
- Por que Aspose.Page para C++?
- Lista de clientes
- Histórias de sucesso