Los archivos XPS y OXPS se utilizan con frecuencia para imprimir debido a su independencia de resolución. Sin embargo, a veces necesitamos convertir XPS a PDF o OXPS a PDF. Aspose.Page for .NET La API le permite realizar estas conversiones con alta fidelidad y renderizado rápido. Exploremos los siguientes casos de uso:

Convierta XPS a PDF mediante programación usando C#

La conversión de XPS a PDF es simple con Aspose.Page for .NET API. Aprenderemos los siguientes enfoques para realizar la conversión de archivos XPS:

i) Convertir páginas específicas de XPS a PDF en C#

Para convertir páginas seleccionadas de un documento XPS a PDF, siga los pasos a continuación:

  1. Inicializar flujo de entrada XPS
  2. Cargar documento XPS desde flujo
  3. Inicializar el objeto PdfSaveOptions
  4. Especifique los números de página para la conversión
  5. Guarde el documento como archivo PDF

El siguiente fragmento de código sigue estos pasos y muestra cómo convertir XPS a PDF usando C#:

// Inicializar el flujo de salida de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar flujo de entrada XPS
//usando (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))
{
    // Cargue el documento XPS desde la secuencia
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // o cargue el documento XPS directamente desde el archivo. Entonces no se necesita xpsStream.
    // documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inicialice el objeto de opciones con los parámetros necesarios.
    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}
    };
    // Crear dispositivo de renderizado para formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Este fragmento de código utiliza un documento XPS que contiene varias páginas como archivo de entrada. Mientras que solo los números de página 1 y 3 se convierten a PDF como se especifica en el fragmento de código. La siguiente captura de pantalla muestra 2 páginas procesadas en un documento PDF:

XPS a PDF

ii) Convertir todas las páginas de XPS a PDF en C#

Puede convertir un archivo XPS completo a PDF. Siga los pasos a continuación y todas las páginas del archivo XPS se convertirán a un archivo PDF:

  1. Cargar archivo XPS de entrada
  2. Inicializar objeto de opciones con los parámetros necesarios
  3. Cree una instancia de PdfDevice para renderizar
  4. Exportar XPS a documento PDF

El siguiente fragmento de código se basa en todos estos pasos que muestran cómo convertir un archivo XPS a PDF usando el lenguaje C#:

// Inicializar el flujo de salida de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar flujo de entrada XPS
//usando (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))
{
// Cargue el documento XPS desde la secuencia
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// o cargue el documento XPS directamente desde el archivo. Entonces no se necesita xpsStream.
// documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inicialice el objeto de opciones con los parámetros necesarios.
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,
};
// Crear dispositivo de renderizado para formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Convierta OXPS a PDF usando C#

El formato OXPS es una forma actualizada y avanzada del formato de archivo XPS. Sin embargo, estos archivos no son compatibles con algunos sistemas operativos antiguos. Aspose.Page for .NET API también es capaz de convertir archivos OXPS. Procedamos a aprender los siguientes escenarios de uso:

i) Convertir algunas páginas de OXPS a PDF en C#

Un archivo OXPS puede contener muchas páginas y cualquier cantidad de páginas se puede convertir a PDF siguiendo los pasos a continuación:

  1. Cargar archivo OXPS
  2. Declarar el objeto PdfSaveOptions
  3. Establezca los números de página que desea convertir
  4. Renderizar OXPS a PDF

El siguiente fragmento de código muestra cómo convertir OXPS a PDF usando C#. Convierte la primera página del archivo OXPS a PDF como se menciona en el fragmento de código.

// Inicializar el flujo de salida de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar el flujo de entrada de OXPS
//usando (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))
{
    // Cargue el documento OXPS desde la transmisión
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // o cargue el documento XPS directamente desde el archivo. Entonces no se necesita xpsStream.
    // documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inicialice el objeto de opciones con los parámetros necesarios.
    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}
    };
    // Crear dispositivo de renderizado para formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

ii) Convertir todas las páginas de OXPS a PDF en C#

Convertir todas las páginas de OXPS es simple y está relacionado con el ejemplo que hemos considerado anteriormente. Sigamos los pasos a continuación y convirtamos todas las páginas del archivo OXPS en un solo documento PDF:

  1. Inicializar el flujo de entrada de OXPS
  2. Cargue el archivo OXPS desde la transmisión
  3. Crear una instancia de un objeto de la clase PdfSaveOptions
  4. Exportar OXPS a archivo PDF

El siguiente fragmento de código sigue estos pasos uno por uno y convierte OXPS a PDF usando C#:

// Inicializar el flujo de salida de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar el flujo de entrada de OXPS
//usando (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))
{
// Cargue el documento OXPS desde la transmisión
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// o cargue el documento OXPS directamente desde el archivo. Entonces no se necesita xpsStream.
// documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inicialice el objeto de opciones con los parámetros necesarios.
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,
};
// Crear dispositivo de renderizado para formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Conclusión

En este artículo, aprendió cómo convertir XPS a PDF y OXPS a PDF mediante programación usando C#. Ha aprendido con ejemplos de código C# y capturas de pantalla sobre conversión de formato de archivo rápida, eficiente y de alta fidelidad. Puede seguir explorando la API de Aspose.Page for .NET con la ayuda de la documentación de la API y las referencias de la API. Además, siéntase libre de hacer cualquier consulta en Foros de soporte gratuitos.

Ver también