Крос-пакетні операції всередині 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");



FAQ

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

Пакет XPS — це окрема бібліотека для керування файлами XPS. Ви можете використовувати його для створення власних конвертерів, програм для читання файлів або інших програм для редагування XPS.

2. Як я можу отримати пакет XPS?

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

3. Які міжпакетні операції доступні?

Використовуючи пакет Aspose XPS, ви можете переносити сторінки з одного документа в інший, клонувати такі об’єкти, як гліфи, стилі чи налаштування.

4. Як маніпулювати сторінками між документами XPS?

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

XPS What is XPS File Format

XPS (XML Paper Specification) — альтернатива Microsoft до PDF. Заснований на XML/HTML, зберігає макет на різних платформах і не залежить від операційної системи.