I file XPS e OXPS vengono spesso utilizzati per la stampa a causa della loro indipendenza dalla risoluzione. Tuttavia, a volte abbiamo bisogno di convertire XPS in PDF o OXPS in PDF. L’API Aspose.Page for .NET ti consente di eseguire queste conversioni con alta fedeltà e rendering rapido. Esaminiamo i seguenti casi d’uso:

Converti XPS in PDF a livello di codice usando C#

La conversione da XPS a PDF è semplice con Aspose.Page per .NET API. Impareremo i seguenti approcci per eseguire la conversione di file XPS:

i) Converti pagine specifiche di XPS in PDF in C#

Per convertire le pagine selezionate del documento XPS in PDF, attenersi alla seguente procedura:

  1. Inizializza il flusso di input XPS
  2. Carica il documento XPS dallo stream
  3. Inizializza l’oggetto PdfSaveOptions.
  4. Specificare i numeri di pagina per la conversione
  5. Salva il documento come file PDF

Di seguito il frammento di codice segue questi passaggi e mostra come convertire XPS in PDF usando C#:

// Inizializza il flusso di output PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inizializza il flusso di input XPS
//utilizzando (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
    // Carica il documento XPS dallo stream
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // o caricare il documento XPS direttamente dal file. Non è necessario xpsStream quindi.
    // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inizializza l'oggetto opzioni con i parametri necessari.
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1, 3}
    };
    // Crea un dispositivo di rendering per il formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Questo frammento di codice utilizza un documento XPS contenente diverse pagine, come file di input. Considerando che solo i numeri di pagina 1 e 3 vengono convertiti in PDF come specificato nel frammento di codice. La schermata seguente mostra 2 pagine renderizzate in un documento PDF:

XPS in PDF

ii) Converti tutte le pagine di XPS in PDF in C#

Puoi convertire un intero file XPS in PDF. Segui i passaggi seguenti e tutte le pagine del file XPS verranno convertite in un file PDF:

  1. Carica il file XPS di input
  2. Inizializza l’oggetto opzioni con i parametri necessari
  3. Crea un’istanza di PdfDevice per il rendering
  4. Esporta XPS in documento PDF

Di seguito il frammento di codice si basa su tutti questi passaggi che mostrano come convertire il file XPS in PDF utilizzando il linguaggio C#:

// Inizializza il flusso di output PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inizializza il flusso di input XPS
//utilizzando (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
// Carica il documento XPS dallo stream
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// o caricare il documento XPS direttamente dal file. Non è necessario xpsStream quindi.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inizializza l'oggetto opzioni con i parametri necessari.
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// Crea un dispositivo di rendering per il formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Converti OXPS in PDF usando C#

Il formato OXPS è una forma aggiornata e avanzata di formato di file XPS. Tuttavia, tali file non sono supportati da alcuni vecchi sistemi operativi. Aspose.Page per .NET API è in grado di convertire anche file OXPS. Procediamo con l’apprendimento dei seguenti scenari di utilizzo:

i) Converti alcune pagine di OXPS in PDF in C#

Un file OXPS può contenere molte pagine e qualsiasi numero di pagine può essere convertito in PDF seguendo i passaggi seguenti:

  1. Carica il file OXPS
  2. Dichiara l’oggetto PdfSaveOptions.
  3. Imposta i numeri di pagina che desideri convertire
  4. Rendering di OXPS in PDF

Il seguente frammento di codice mostra come convertire OXPS in PDF usando C#. Converte la prima pagina del file OXPS in PDF come indicato nel frammento di codice.

// Inizializza il flusso di output PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inizializza il flusso di input OXPS
//utilizzando (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
    // Carica il documento OXPS dallo stream
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // o caricare il documento XPS direttamente dal file. Non è necessario xpsStream quindi.
    // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inizializza l'oggetto opzioni con i parametri necessari.
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1}
    };
    // Crea un dispositivo di rendering per il formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

ii) Converti tutte le pagine di OXPS in PDF in C#

La conversione di tutte le pagine di OXPS è semplice e correlata all’esempio che abbiamo considerato sopra. Seguiamo i passaggi seguenti e convertiamo tutte le pagine del file OXPS in un unico documento PDF:

  1. Inizializza il flusso di input OXPS
  2. Carica il file OXPS dallo stream
  3. Istanziare un oggetto della classe PdfSaveOptions.
  4. Esporta OXPS in file PDF

Di seguito il frammento di codice segue questi passaggi uno per uno e converte OXPS in PDF usando C#:

// Inizializza il flusso di output PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inizializza il flusso di input OXPS
//utilizzando (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
// Carica il documento OXPS dallo stream
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// oppure carica il documento OXPS direttamente dal file. Non è necessario xpsStream quindi.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inizializza l'oggetto opzioni con i parametri necessari.
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// Crea un dispositivo di rendering per il formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Conclusione

In questo articolo, hai imparato come convertire XPS in PDF e OXPS in PDF a livello di codice usando C#. Hai imparato con esempi di codice C# e schermate sulla conversione del formato file ad alta fedeltà, efficiente e rapida. Puoi esplorare ulteriormente l’API Aspose.Page for .NET con l’aiuto di documentazione API e riferimenti API. Inoltre, sentiti libero di chiedere qualsiasi domanda su Forum di supporto gratuito.

Guarda anche