C# Convertir XPS a PDF | Convertir OXPS a PDF en C#

XPS (Especificación de papel XML abierto) y OXPS (OpenXPS) representan documentos de páginas fijas. Los documentos XPS son similares a los documentos PDF en que ambos conservan el diseño y el formato del documento original. Sin embargo, los documentos XPS no son tan compatibles como los documentos PDF. Los documentos PDF (formato de documento portátil) son ampliamente compatibles con una variedad de plataformas y dispositivos. En este artículo, le mostraremos cómo convertir XPS u OXPS a PDF en C#.

Este artículo cubre los siguientes temas:

  1. API de C# para convertir XPS a PDF
  2. Convertir XPS a PDF usando C#
  3. Convertir páginas específicas de XPS a PDF
  4. Convertidor de OXPS a PDF en C#
  5. Convertir páginas específicas de OXPS a PDF
  6. Convertir archivo XPS a PDF en línea
  7. XPS a PDF - Recursos de aprendizaje gratuitos

API de C# para convertir XPS a PDF

Usaremos la API Aspose.Page for .NET para convertir un documento XPS u OXPS a formato PDF. Es una API potente que permite a los desarrolladores crear, editar, manipular y convertir documentos XPS y EPS/PS. Aspose.Page for .NET es una API confiable e independiente que es fácil de usar e integrar en sus aplicaciones .NET.

Por favor descargue la DLL de la API o instálela usando el siguiente comando NuGet:

PM> Install-Package Aspose.Page

Convertir XPS a PDF usando C#

Podemos convertir un documento XPS completo a formato PDF siguiendo los pasos a continuación:

  1. Cargue el archivo XPS de entrada.
  2. Inicialice el objeto de opciones con los parámetros necesarios.
  3. Cree una instancia de PdfDevice para renderizar.
  4. Exporte XPS a un documento PDF.

El ejemplo de código que se proporciona a continuación muestra cómo convertir un archivo XPS a PDF usando C#.

// Inicializar 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 el 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))
{
// Cargar 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 = nuevo XpsDocument(inputFileName, nuevo 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 páginas específicas de XPS a PDF en C#

También podemos convertir páginas seleccionadas de un documento XPS a formato PDF siguiendo los pasos a continuación:

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

El siguiente ejemplo de código muestra cómo convertir páginas específicas de un XPS a PDF en C#.

// Inicializar 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 el 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))
{
    // Cargar 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 = nuevo XpsDocument(inputFileName, nuevo 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 dos páginas representadas como un documento PDF:

XPS a PDF

Convertidor de OXPS a PDF en C#

El formato OXPS es una forma actualizada y avanzada del formato de archivo XPS. Sin embargo, algunos sistemas operativos antiguos no admiten estos archivos. Podemos convertir fácilmente un documento OXPS a formato PDF siguiendo los pasos a continuación:

  1. Inicialice el flujo de entrada OXPS.
  2. Cargue el archivo OXPS de la secuencia.
  3. Crear una instancia de un objeto de la clase PdfSaveOptions
  4. Exportar OXPS a un archivo PDF

El siguiente ejemplo de código muestra cómo convertir OXPS a PDF en C#.

// Inicializar 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 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))
{
// Cargar el documento OXPS desde la secuencia
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 = nuevo XpsDocument(inputFileName, nuevo 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 páginas específicas de OXPS a PDF en C#

Del mismo modo, también podemos convertir páginas específicas de un documento OXPS a formato PDF siguiendo los pasos a continuación:

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

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

// Inicializar 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 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))
{
    // Cargar el documento OXPS 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 = nuevo XpsDocument(inputFileName, nuevo 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);
}

Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar la biblioteca sin restricciones de evaluación.

Convertir archivos XPS a PDF en línea

También puede convertir un archivo XPS a PDF en línea usando esta aplicación convertidor gratuito de XPS a PDF sin instalar ningún software o complemento.

Convertir documento XPS a PDF - Recursos de aprendizaje

Además de convertir documentos XPS u OXPS a formato PDF, obtenga más información sobre la biblioteca y explore otras funciones utilizando los recursos a continuación:

Conclusión

En este artículo, hemos aprendido cómo convertir XPS a PDF y OXPS a PDF mediante programación usando C#. También hemos visto cómo exportar páginas específicas de un documento XPS u OXPS a formato PDF. Puede explorar más a fondo la API y optimizar su flujo de trabajo de manejo de documentos. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también