Кросс-пакетные операции внутри XPS-пакета

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

 

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

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

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

Шаги по управлению страницами внутри XPS-пакета на C#.

  1. Установите путь к каталогу документов.
  2. Создайте файл XPS с помощью класса XpsDocument .
  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-пакета на C#.

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

Код C# для копирования глифа внутри 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()

Код C# для создания глифа с фоновым изображением внутри 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 (XML Paper Specification) — альтернативный Microsoft формат PDF, основанный на XML/HTML, сохраняет макет независимо от платформы.