
Os arquivos XPS e OXPS são frequentemente usados para impressão devido à sua independência de resolução. No entanto, às vezes precisamos converter XPS para PDF ou OXPS para PDF. Aspose.Page for .NET API permite realizar essas conversões com alta fidelidade e renderização rápida. Vamos explorar os seguintes casos de uso:
- Converter XPS para PDF programaticamente usando C#
- Converter OXPS para PDF programaticamente usando C#
Converter XPS para PDF programaticamente usando C#
A conversão de XPS para PDF é simples com o Aspose.Page para .NET API. Estaremos aprendendo as seguintes abordagens para realizar a conversão de arquivos XPS:
i) Converter páginas específicas de XPS para PDF em C#
Para converter as páginas selecionadas do documento XPS em PDF, siga as etapas abaixo:
- Inicializar o fluxo de entrada XPS
- Carregar documento XPS do fluxo
- Inicialize o objeto PdfSaveOptions
- Especificar números de página para conversão
- Salve o documento como arquivo PDF
O trecho de código abaixo segue estas etapas e mostra como converter XPS para PDF usando C#:
// Inicialize o fluxo de saída do PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar o 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}
};
// Criar 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 snippet de código. A captura de tela a seguir exibe 2 páginas renderizadas no documento PDF:

ii) Converter todas as páginas do XPS para PDF em C#
Você pode converter um arquivo XPS inteiro para PDF. Siga as etapas abaixo e todas as páginas do arquivo XPS serão convertidas em um arquivo PDF:
- Carregar arquivo XPS de entrada
- Inicialize o objeto de opções com os parâmetros necessários
- Crie uma instância de PdfDevice para renderização
- Exportar XPS para documento PDF
O trecho de código abaixo é baseado em todas essas etapas que mostram como converter o arquivo XPS em PDF usando a linguagem C#:
// Inicialize o fluxo de saída do PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicializar o 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,
};
// Criar 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 OXPS para PDF usando 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. Aspose.Page para .NET API também é capaz de converter arquivos OXPS. Vamos prosseguir para aprender os seguintes cenários de uso:
i) Converter algumas páginas de OXPS para PDF em C#
Um arquivo OXPS pode conter muitas páginas e qualquer número de páginas pode ser convertido em PDF seguindo as etapas abaixo:
- Carregar arquivo OXPS
- Declare o objeto PdfSaveOptions
- Defina o(s) número(s) de página que você deseja converter
- Renderizar OXPS para PDF
O trecho de código a seguir mostra como converter OXPS em PDF usando C#. Ele converte a primeira página do arquivo OXPS em PDF conforme mencionado no trecho de código.
// Inicialize o fluxo de saída do PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicialize o 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}
};
// Criar 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);
}
ii) Converter todas as páginas de OXPS para PDF em C#
Converter todas as páginas do OXPS é simples e está relacionado ao exemplo que consideramos acima. Vamos seguir os passos abaixo e converter todas as páginas do arquivo OXPS em um único documento PDF:
- Inicialize o fluxo de entrada OXPS
- Carregue o arquivo OXPS do stream
- Instanciar um objeto da classe PdfSaveOptions
- Exportar OXPS para arquivo PDF
O trecho de código abaixo segue estes passos um por um e converte OXPS para PDF usando C#:
// Inicialize o fluxo de saída do PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Inicialize o 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,
};
// Criar 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);
}
Conclusão
Neste artigo, você aprendeu como converter XPS para PDF e OXPS para PDF programaticamente usando C#. Você aprendeu com exemplos de código C# e capturas de tela sobre conversão de formato de arquivo de alta fidelidade, eficiência e rapidez. Você pode explorar ainda mais a API Aspose.Page for .NET com a ajuda da documentação da API e referências da API. Além disso, sinta-se à vontade para fazer qualquer pergunta em Fóruns de suporte gratuito.