Межпакетные операции в пакете XPS

Управление страницами, цветами и глифами в пакете XPS с помощью C#

 

Решение Aspose.Page API для .NET среди других форматов включает пакет XPS в виде отдельной библиотеки для работы с файлами XPS. Его богатый функционал содержит множество полезных и популярных функций, таких как слияние файлов, конвертация, работа с графикой и т.д.

XPS может содержать в одном документе несколько файлов. Таким образом, любой пакет XPS должен иметь функциональные возможности для управления этими файлами и их страницами внутри документа и между различными документами XPS. Такие манипуляции называются межпакетными операциями. Их следует пояснить отдельно.

Здесь вы найдете примеры таких межпакетных операций, как манипуляции со страницами и добавление глифов и цветов.

Порядок действий по управлению страницами в XPS Package C#.

  1. Укажите путь к каталогу документов.
  2. Создайте XPS-файл, используя XpsDocument Class .
  3. Чтобы вставить активную страницу из одного документа в начало другого документа, используйте функцию InsertPage() Метод.
  4. Чтобы вставить активную страницу из одного документа в конец другого документа, используйте метод AddPage() .
  5. Чтобы удалить пустую страницу, используйте метод RemovePage() .
  6. Чтобы удалить страницу из одного документа в другой документ, используйте InsertPage() и SelectActivePage() Методы.
  7. Сохраните измененные документы XPS с помощью XPsDocument.Save .

Код C# для межпакетных манипуляций со страницами

    using Aspose.Page.XPS;
    using Aspose.Page.XPS.XpsModel;
    using System.Drawing;
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithCrossPackageOperations();

    // Create the first XPS Document
    XpsDocument doc1 = new XpsDocument(dataDir + "input1.xps");

    // Create the second XPS Document
    XpsDocument doc2 = new XpsDocument(dataDir + "input2.xps");

    // Create the third XPS Document
    XpsDocument doc3 = new XpsDocument(dataDir + "input3.xps");

    // Create the fourth XPS Document
    XpsDocument doc4 = new XpsDocument();

    // Insert the active page (1 in this case) from the second document to the beginning of the fourth document
    doc4.InsertPage(1, doc2.Page, false);

    // Insert the active page (1 in this case) from the third document to the end of the fourth document
    doc4.AddPage(doc3.Page, false);

    // Remove page 2 from the fourth document. This is an empty page that was created when the document had been created.
    doc4.RemovePageAt(2);

    // Insert page 3 from the first document to the second postion of the fourth document
    doc4.InsertPage(2, doc1.SelectActivePage(3), false);

    // Save the fourth XPS document
    doc4.Save(dataDir + "out.xps");

Порядок действий по добавлению клона глифа в XPS Package C#.

  1. Укажите путь к каталогу документов.
  2. Откройте поток файла XPS.
  3. Создайте файл XPS, используя класс XpsDocument.
  4. Добавьте глифы в документ с помощью метода AddGlyphs() .
  5. Создайте второй файл XPS, используя класс XpsDocument.
  6. Чтобы клонировать глиф из первого файла во второй файл, используйте Add() и Clone() Методы.
  7. Сохраните оба XPS-документа с помощью метода XPsDocument.Save().

Код С# для копирования глифа в пакете XPS

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithCrossPackageOperations();

    // Create the first XPS Document
    XpsDocument doc1 = new XpsDocument();

    // Add glyphs to the first document
    XpsGlyphs glyphs = doc1.AddGlyphs("Times New Roman", 200, FontStyle.Bold, 50, 250, "Test");

    // Fill glyphs in the first document with one color
    glyphs.Fill = doc1.CreateSolidColorBrush(Color.Green);

    // Create the second XPS Document
    XpsDocument doc2 = new XpsDocument();

    // Add glyphs cloned from the one's from the first document
    glyphs = doc2.Add(glyphs.Clone());

    // Fill glyphs in the second document with another color
    ((XpsSolidColorBrush)glyphs.Fill).Color = doc2.CreateColor(Color.Red);

    // Save the first XPS document
    doc1.Save(dataDir + "out1.xps");

    // Save the second XPS document
    doc2.Save(dataDir + "out2.xps");

Шаги по добавлению заполненного изображением глифа C#.

  1. Укажите путь к каталогу документов.
  2. Откройте поток файла XPS.
  3. Создайте файл XPS, используя класс XpsDocument.
  4. Добавьте глифы в документ с помощью метода AddGlyphs().
  5. Чтобы заполнить глифы кистью изображения, используйте метод CreateImageBrush() .
  6. Создайте второй файл XPS, используя класс XpsDocument.
  7. Добавьте глифы со шрифтом из первого документа во второй документ с помощью метода AddGlyphs().
  8. Создайте кисть изображения из заливки первого документа и заполните глифы во втором документе, используя метод CreateImageBrush().
  9. Сохраните оба XPS-документа с помощью метода XPsDocument.Save().

Код С# для создания глифа, заполненного изображением, в пакете XPS

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithCrossPackageOperations();

    // Create the first XPS Document
    XpsDocument doc1 = new XpsDocument();

    // Add glyphs to the first document
    XpsGlyphs glyphs1 = doc1.AddGlyphs("Times New Roman", 200, FontStyle.Bold, 50, 250, "Test");

    // Fill the glyphs with an image brush
    glyphs1.Fill = doc1.CreateImageBrush(dataDir + "R08SY_NN.tif", new RectangleF(0f, 0f, 128f, 192f),
        new RectangleF(0f, 0f, 64f, 96f));
    ((XpsImageBrush)glyphs1.Fill).TileMode = XpsTileMode.Tile;

    // Create the second XPS Document
    XpsDocument doc2 = new XpsDocument();

    // Add glyphs with the font from the first document to the second document
    XpsGlyphs glyphs2 = doc2.AddGlyphs(glyphs1.Font, 200, 50, 250, "Test");

    // Create an image brush from the fill of the the first document and fill glyphs in the second document
    glyphs2.Fill = doc2.CreateImageBrush(((XpsImageBrush)glyphs1.Fill).Image, new RectangleF(0f, 0f, 128f, 192f),
        new RectangleF(0f, 0f, 128f, 192f));
    ((XpsImageBrush)glyphs2.Fill).TileMode = XpsTileMode.Tile;

    // Save the first XPS document
    doc1.Save(dataDir + "out1.xps");

    // Save the second XPS document
    doc2.Save(dataDir + "out2.xps");



Часто задаваемые вопросы

1. Что такое пакет XPS?

Пакет XPS — это отдельная библиотека для управления файлами XPS. Используйте его для создания собственных конвертеров, программ чтения или других приложений для редактирования XPS.

2. Как я могу получить пакет XPS?

Пакет XPS включен в решение Aspose.Page .

3. Какие межпакетные операции доступны?

Используя пакет Aspose XPS, вы можете переносить страницы из одного документа в другой, клонировать объекты, такие как глифы, стили или настройки.

4. Как манипулировать страницами между документами XPS?

Для передачи файлов с помощью этого пакета XPS используйте методы InsertPage(), AddPage(), RemovePage() и SelectActivePage() класса XpsDocument.

XPS Формат файла XPS

Формат XPS похож на формат PDF. Оба являются форматами языка описания страниц (PDL). EPS основан на HTML, а не на языке PostScript. Файл .eps может содержать разметку структуры документа вместе с информацией о том, как документ будет выглядеть. Также добавлены инструкции о том, как распечатать и визуализировать документ. Особенность формата в том, что он фиксирует описание документа, а значит, он будет выглядеть одинаково независимо от того, кто и из какой операционной системы его открывает.