C# Преобразование XPS в PDF | Преобразование OXPS в PDF на C#

XPS (Open XML Paper Specification) и OXPS (OpenXPS) представляют собой документы с фиксированной страницей. Документы XPS похожи на документы PDF в том, что они сохраняют макет и форматирование исходного документа. Однако документы XPS не так широко поддерживаются, как документы PDF. Документы PDF (Portable Document Format) широко поддерживаются на различных платформах и устройствах. В этой статье мы покажем вам, как конвертировать XPS или OXPS в PDF на C#.

В этой статье рассматриваются следующие темы:

  1. C# API для преобразования XPS в PDF
  2. Конвертировать XPS в PDF с помощью C#
  3. Конвертировать определенные страницы XPS в PDF
  4. Конвертер OXPS в PDF на C#
  5. Конвертировать отдельные страницы OXPS в PDF
  6. Конвертировать файл XPS в PDF онлайн
  7. XPS в PDF — бесплатные обучающие ресурсы

API C# для преобразования XPS в PDF

Мы будем использовать API Aspose.Page for .NET для преобразования документа XPS или OXPS в формат PDF. Это мощный API, который позволяет разработчикам создавать, редактировать, манипулировать и конвертировать документы XPS и EPS/PS. Aspose.Page for .NET — это надежный и автономный API, который легко использовать и интегрировать в ваши .NET-приложения.

Пожалуйста, загрузите DLL API или установите его с помощью следующей команды NuGet:

PM> Install-Package Aspose.Page

Преобразование XPS в PDF с помощью C#

Мы можем преобразовать весь документ XPS в формат PDF, выполнив следующие действия:

  1. Загрузите входной файл XPS.
  2. Инициализируйте объект параметров с необходимыми параметрами.
  3. Создайте экземпляр PdfDevice для рендеринга.
  4. Экспортируйте XPS в документ PDF.

В приведенном ниже примере кода показано, как преобразовать файл XPS в PDF с помощью C#.

// Инициализировать выходной поток PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Инициализировать входной поток XPS
//используя (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))
{
// Загрузите документ XPS из потока
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// или загрузите документ XPS непосредственно из файла. Тогда xpsStream не нужен.
// Документ XpsDocument = новый XpsDocument (inputFileName, новый XpsLoadOptions());

// Инициализируйте объект параметров с необходимыми параметрами.
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,
};
// Создать устройство рендеринга для формата PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Преобразование определенных страниц XPS в PDF на C#

Мы также можем преобразовать выбранные страницы документа XPS в формат PDF, выполнив следующие действия:

  1. Инициализируйте входной поток XPS.
  2. Загрузите документ XPS из потока.
  3. Инициализируйте объект PdfSaveOptions.
  4. Укажите номера страниц для конвертации.
  5. Сохраните документ как PDF-файл.

В следующем примере кода показано, как преобразовать определенные страницы XPS в PDF на C#.

// Инициализировать выходной поток PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Инициализировать входной поток XPS
//используя (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))
{
    // Загрузите документ XPS из потока
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // или загрузите документ XPS непосредственно из файла. Тогда xpsStream не нужен.
    // Документ XpsDocument = новый XpsDocument (inputFileName, новый XpsLoadOptions());

    // Инициализируйте объект параметров с необходимыми параметрами.
    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}
    };
    // Создать устройство рендеринга для формата PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

В этом фрагменте кода в качестве входного файла используется документ XPS, содержащий несколько страниц. Принимая во внимание, что только номера страниц 1 и 3 преобразуются в PDF, как указано во фрагменте кода. На следующем снимке экрана показаны две страницы, представленные в виде PDF-документа:

XPS в PDF

Конвертер OXPS в PDF на C#

Формат OXPS — это обновленная и усовершенствованная форма формата файла XPS. Однако такие файлы не поддерживаются некоторыми старыми операционными системами. Мы можем легко преобразовать документ OXPS в формат PDF, выполнив следующие действия:

  1. Инициализируйте входной поток OXPS.
  2. Загрузите файл OXPS из потока.
  3. Создайте экземпляр объекта класса PdfSaveOptions.
  4. Экспорт OXPS в файл PDF

В следующем примере кода показано, как преобразовать OXPS в PDF на C#.

// Инициализировать выходной поток PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Инициализируйте входной поток OXPS
//используя (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))
{
// Загрузите документ OXPS из потока
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// или загрузите документ OXPS непосредственно из файла. Тогда xpsStream не нужен.
// Документ XpsDocument = новый XpsDocument (inputFileName, новый XpsLoadOptions());

// Инициализируйте объект параметров с необходимыми параметрами.
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,
};
// Создать устройство рендеринга для формата PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Преобразование определенных страниц OXPS в PDF на C#

Аналогичным образом мы также можем конвертировать определенные страницы из документа OXPS в формат PDF, выполнив следующие действия:

  1. Загрузите файл OXPS
  2. Объявите объект PdfSaveOptions.
  3. Установите номера страниц, которые вы хотите преобразовать.
  4. Преобразование OXPS в PDF.

В следующем фрагменте кода показано, как преобразовать определенные страницы OXPS в PDF на C#. Он преобразует первую страницу файла OXPS в PDF, как указано во фрагменте кода.

// Инициализировать выходной поток PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Инициализируйте входной поток OXPS
//используя (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))
{
    // Загрузите документ OXPS из потока
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // или загрузите документ XPS непосредственно из файла. Тогда xpsStream не понадобится.
    // Документ XpsDocument = новый XpsDocument (inputFileName, новый XpsLoadOptions());

    // Инициализируйте объект параметров с необходимыми параметрами.
    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}
    };
    // Создать устройство рендеринга для формата PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Получите бесплатную лицензию

Вы можете получить бесплатную временную лицензию для тестирования библиотеки без каких-либо ограничений на ознакомление.

Конвертировать файл XPS в PDF онлайн

Вы также можете конвертировать файл XPS в PDF онлайн с помощью этого бесплатного конвертера XPS в PDF без установки какого-либо программного обеспечения или плагина.

Преобразование документа XPS в PDF — учебные ресурсы

Помимо преобразования документов XPS или OXPS в формат PDF, узнайте больше о библиотеке и изучите различные другие функции, используя ресурсы ниже:

Заключение

В этой статье мы узнали, как программно конвертировать XPS в PDF и OXPS в PDF с помощью C#. Мы также увидели, как экспортировать определенные страницы документа XPS или OXPS в формат PDF. Вы можете дополнительно изучить API и оптимизировать рабочий процесс обработки документов. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме бесплатной поддержки.

Смотрите также