Файли XPS і OXPS часто використовуються для друку через їхню роздільну здатність. Однак іноді нам потрібно конвертувати XPS у PDF або OXPS у PDF. API Aspose.Page for .NET дозволяє виконувати ці перетворення з високою точністю та швидким відтворенням. Давайте розглянемо наступні випадки використання:

Програмне перетворення XPS у PDF за допомогою C#

З Aspose.Page for .NET API конвертувати XPS у PDF дуже просто. Ми вивчатимемо наступні підходи до перетворення файлів XPS:

i) Перетворення певних сторінок 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 document = new XpsDocument(inputFileName, new 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, як зазначено у фрагменті коду. На наступному знімку екрана показано 2 сторінки, відтворені у PDF-документ:

XPS в PDF

ii) Перетворення всіх сторінок XPS на PDF на C#

Ви можете конвертувати весь файл XPS у PDF. Виконайте наведені нижче дії, і всі сторінки файлу 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 document = new XpsDocument(inputFileName, new 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 — це оновлена та вдосконалена форма формату файлів XPS. Однак такі файли не підтримуються деякими старими операційними системами. Aspose.Page for .NET API також здатний конвертувати файли OXPS. Переходимо до вивчення наступних сценаріїв використання:

i) Перетворення деяких сторінок 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 document = new XpsDocument(inputFileName, new 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);
}

ii) Перетворення всіх сторінок OXPS у PDF на C#

Перетворення всіх сторінок OXPS просте і пов’язане з прикладом, який ми розглянули вище. Давайте виконаємо наведені нижче дії та перетворимо всі сторінки файлу 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 document = new XpsDocument(inputFileName, new 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 і OXPS у PDF за допомогою C#. Завдяки прикладам коду C# і знімкам екрана ви дізналися про високу точність, ефективне та швидке перетворення форматів файлів. Ви можете глибше вивчити API Aspose.Page for .NET за допомогою документації API і посилання на API. Крім того, не соромтеся ставити будь-які запитання на безкоштовних форумах підтримки.

Дивись також