C# Converter XPS em PDF | Converter OXPS em PDF em C#

XPS (Open XML Paper Specification) e OXPS (OpenXPS) representam documentos de página fixa. Os documentos XPS são semelhantes aos documentos PDF, pois preservam o layout e a formatação do documento original. No entanto, os documentos XPS não são tão amplamente suportados como os documentos PDF. Documentos PDF (Portable Document Format) são amplamente suportados em uma variedade de plataformas e dispositivos. Neste artigo, mostraremos como converter XPS ou OXPS para PDF em C#.

Este artigo cobre os seguintes tópicos:

  1. API C# para converter XPS em PDF
  2. Converta XPS em PDF usando C#
  3. Converter páginas específicas de XPS em PDF
  4. Conversor OXPS para PDF em C#
  5. Converter páginas específicas de OXPS em PDF
  6. Converta arquivo XPS em PDF online
  7. XPS para PDF - Recursos de aprendizagem gratuitos

API C# para converter XPS em PDF

Usaremos a API Aspose.Page for .NET para converter um documento XPS ou OXPS para o formato PDF. É uma API poderosa que permite aos desenvolvedores criar, editar, manipular e converter documentos XPS e EPS/PS. Aspose.Page for .NET é uma API confiável e autônoma que é fácil de usar e integrar em seus aplicativos .NET.

Por favor, baixe a DLL da API ou instale-a usando o seguinte comando NuGet:

PM> Install-Package Aspose.Page

Converter XPS em PDF usando C#

Podemos converter um documento XPS inteiro para o formato PDF seguindo as etapas abaixo:

  1. Carregue o arquivo XPS de entrada.
  2. Inicialize o objeto de opções com os parâmetros necessários.
  3. Crie uma instância do PdfDevice para renderização.
  4. Exporte XPS para um documento PDF.

O exemplo de código fornecido a seguir mostra como converter um arquivo XPS em PDF usando C#.

// Inicializar fluxo de saída de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar fluxo 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))
{
// Carregar documento XPS do fluxo
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// ou carregue o documento XPS diretamente do arquivo. Nenhum xpsStream é necessário então.
// Documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inicialize o objeto de opções com os parâmetros necessários.
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,
};
// Crie um dispositivo de renderização para formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Converter páginas específicas de XPS em PDF em C#

Também podemos converter páginas selecionadas de um documento XPS para o formato PDF seguindo as etapas abaixo:

  1. Inicialize o fluxo de entrada XPS.
  2. Carregue um documento XPS do fluxo.
  3. Inicialize o objeto PdfSaveOptions.
  4. Especifique os números das páginas para conversão.
  5. Salve o documento como um arquivo PDF.

O exemplo de código a seguir mostra como converter páginas específicas de um XPS em PDF em C#.

// Inicializar fluxo de saída de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar fluxo 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))
{
    // Carregar documento XPS do fluxo
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // ou carregue o documento XPS diretamente do arquivo. Nenhum xpsStream é necessário então.
    // Documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inicialize o objeto de opções com os parâmetros necessários.
    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}
    };
    // Crie um dispositivo de renderização para formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Este trecho de código usa um documento XPS contendo várias páginas como arquivo de entrada. Considerando que apenas os números de página 1 e 3 são convertidos em PDF conforme especificado no trecho de código. A captura de tela a seguir exibe duas páginas renderizadas como um documento PDF:

XPS para PDF

Conversor OXPS para PDF em C#

O formato OXPS é uma forma atualizada e avançada do formato de arquivo XPS. No entanto, esses arquivos não são suportados por alguns sistemas operacionais antigos. Podemos converter facilmente um documento OXPS para o formato PDF seguindo as etapas abaixo:

  1. Inicialize o fluxo de entrada OXPS.
  2. Carregue o arquivo OXPS do stream.
  3. Instanciar um objeto da classe PdfSaveOptions
  4. Exportar OXPS para um arquivo PDF

O exemplo de código a seguir mostra como converter OXPS em PDF em C#.

// Inicializar fluxo de saída de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar fluxo 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))
{
// Carregar documento OXPS do fluxo
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// ou carregue o documento OXPS diretamente do arquivo. Nenhum xpsStream é necessário então.
// Documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Inicialize o objeto de opções com os parâmetros necessários.
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,
};
// Crie um dispositivo de renderização para formato PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Converter páginas específicas de OXPS em PDF em C#

Da mesma forma, também podemos converter páginas específicas de um documento OXPS para o formato PDF seguindo as etapas abaixo:

  1. Carregar um arquivo OXPS
  2. Declare o objeto PdfSaveOptions.
  3. Defina os números das páginas que deseja converter.
  4. Renderize OXPS em PDF.

O trecho de código a seguir mostra como converter páginas específicas de um OXPS em PDF em C#. Ele converte a primeira página do arquivo OXPS em PDF, conforme mencionado no trecho de código.

// Inicializar fluxo de saída de PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar fluxo 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))
{
    // Carregar documento OXPS do fluxo
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // ou carregue o documento XPS diretamente do arquivo. Nenhum xpsStream é necessário então.
    // Documento XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Inicialize o objeto de opções com os parâmetros necessários.
    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}
    };
    // Crie um dispositivo de renderização para formato PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para testar a biblioteca sem quaisquer restrições de avaliação.

Converter arquivo XPS em PDF on-line

Você também pode converter um arquivo XPS em PDF online usando este aplicativo conversor gratuito de XPS para PDF sem instalar nenhum software ou plugin.

Converter documento XPS em PDF - Recursos de aprendizagem

Além de converter documentos XPS ou OXPS para formato PDF, conheça mais sobre a biblioteca e explore diversos outros recursos utilizando os recursos abaixo:

Conclusão

Neste artigo, aprendemos como converter XPS para PDF e OXPS para PDF programaticamente usando C#. Também vimos como exportar páginas específicas de um documento XPS ou OXPS para o formato PDF. Você pode explorar ainda mais a API e otimizar seu fluxo de trabalho de gerenciamento de documentos. Em caso de qualquer ambigüidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também