Converti PS, EPS e XPS

Sblocca tutto il potenziale delle tue applicazioni C++ con la nostra versatile soluzione API! Converti senza problemi file PS, EPS e XPS in PDF di alta qualità e immagini straordinarie con la nostra versatile soluzione API per C++!

 

Scopri tutto il potenziale delle tue applicazioni C++ con la nostra versatile soluzione API nativa! Converti file PS, EPS e XPS in PDF di alta qualità e immagini straordinarie in modo rapido e semplice. Che tu abbia bisogno di una trasformazione precisa dei documenti o di contenuti visivi perfetti, la nostra API semplifica il processo, fornendoti gli strumenti per migliorare i tuoi progetti senza sforzo. Migliora la gestione dei tuoi documenti e dai nuova vita ai tuoi elementi visivi. Sperimenta la magia della conversione di documenti PostScript (PS) e Encapsulated PostScript (EPS), così come di documenti XPS, in PDF e immagini con la nostra API C++. Pronto a trasformare i tuoi documenti? Prova la nostra prova gratuita o acquista ora ed eleva i tuoi contenuti oggi stesso!

I programmatori possono utilizzarla facilmente per l'elaborazione batch di documenti PostScript e XPS, manipolando persino aree di disegno (canvases), percorsi (paths) ed elementi glifi (glyphs), oltre a gestire forme di grafica vettoriale e stringhe di testo.

La soluzione API per C++ qui presentata consente di convertire a livello di codice file in formati PDL come PS, EPS e XPS, ma potrebbe essere utile vedere e provare soluzioni cross-platform sviluppate su queste API native. Ecco alcuni scenari di conversione come EPS in immagini, EPS in PDF, PostScript in PDF, PostScript in immagini, XPS in immagini e XPS in PDF.

Convertire PostScript (PS, EPS) in immagini tramite C++.

La libreria C++ consente di convertire file PostScript (PS) ed Encapsulated PostScript (EPS) in immagini su piattaforme Windows, Linux e macOS. Il processo è:

  1. Carica il documento utilizzando il costruttore della classe PsDocument passando il flusso del file di input o il nome del file come parametro.
  2. Crea l’oggetto ImageSaveOptions Class e inizializzalo con le impostazioni richieste. Chiama set_ImageFormat per impostare il formato dell’immagine come valore di ImageFormat .
  3. Salva ogni pagina del file di input in un array di byte dell’immagine con SaveAsImage .
Codice C++ per la conversione da EPS a immagini
    // 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());
        }
    }
 

Conversione da PostScript a PDF tramite C++.

Il processo di conversione di PostScript in PDF è semplice quanto quello di PostScript in immagini:

  1. Carica il documento utilizzando il costruttore della classe PsDocument passando il flusso del file di input o il nome del file come parametro.
  2. Crea un oggetto della PdfSaveOptions Class per definire impostazioni aggiuntive come AdditionalFontsFolder, il valore SuppressError ecc.
  3. Chiama il metodo SaveAsPdf per la conversione in file PDF.
Codice C++ per la conversione da 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());
        }
    }
 

Convertire XPS in immagini tramite C++.

L'API C++ per l'elaborazione di file XPS gestisce la conversione di file XPS in immagini (inclusi BMP, JPG, TIFF, PNG e altri), nonché la conversione di file XPS in PDF su sistemi basati su Windows e Linux. Il processo per convertire XPS in immagine è il seguente:

  1. Crea un’istanza della XpsDocument Class con il nome del file di input e XpsLoadOptions come parametri del costruttore.
  2. Crea l’opzione di salvataggio come istanza di una classe da Aspose::Page::XPS::Presentation::Image .
  3. Chiama il metodo SaveAsImage del documento XPS per salvare ogni pagina del documento in un array di byte dell’immagine.
Codice C++ per la conversione da XPS a immagini
    // 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());
                }
            }
        }
    }

 

Convertire XPS in PDF tramite C++.

L'API C++ per l'elaborazione di file XPS gestisce la conversione di file XPS in immagini (inclusi BMP, JPG, TIFF, PNG e altri), nonché la conversione di file XPS in PDF su sistemi basati su Windows e Linux. Il processo per convertire XPS in PDF è il seguente:

  1. Definisce il flusso di output verso l’output PDF.
  2. Crea un’istanza della XpsDocument Class con il nome del file di input e XpsLoadOptions come parametri del costruttore.
  3. Specifica le opzioni di salvataggio specifiche per il PDF come TextCompression, ImageCompression e JpegQualityLevel utilizzando PdfSaveOptions .
  4. Infine, converti il documento XPS in PDF utilizzando uno dei metodi SaveAsPdf .
Codice C++ per la conversione da 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. Posso convertire Postscript con questa soluzione API?

Aspose.Page ha funzionalità che ti consentono di convertire file PS, XPS ed EPS in altri formati online o a livello di codice. Se hai bisogno di trasformare i tuoi file istantaneamente online, potresti utilizzare l’applicazione multipiattaforma Page Description Language format files Converter .

2. Quali lingue di descrizione della pagina sono supportate dal convertitore?

Questa funzionalità di conversione supporta file con estensione .ps, .eps e .xps. PDL famosi come PDF e SVG sono rappresentati come soluzioni separate in Aspose.products

3. La funzionalità è gratuita?

I convertitori multipiattaforma sono gratuiti, mentre per la soluzione API puoi ottenere una prova gratuita e quindi acquistare il prodotto se necessario.

  

Support and Learning Resources