Крос-пакетні операції всередині XPS-пакета
Маніпулювання сторінками, кольорами та гліфами всередині XPS-пакета за допомогою C#
Рішення Aspose.Page API для .NET серед інших форматів включає XPS-пакет як окрему бібліотеку для роботи з файлами XPS. Його багата функціональність містить багато корисних і популярних функцій, таких як об’єднання файлів, конвертація, робота з графікою тощо.
XPS може містити в одному документі кілька файлів. Тому будь-який XPS-пакет повинен мати функціональність для маніпулювання цими файлами та їх сторінками всередині документа та між різними документами XPS. Такі маніпуляції називаються крос-пакетними операціями. Їх слід пояснювати окремо.
Тут ви знайдете приклади таких крос-пакетних операцій, як маніпуляції зі сторінками, а також додавання гліфів і кольорів.
Кроки для маніпулювання сторінками всередині XPS-пакета на C#.
- Встановіть шлях до каталогу документів.
- Створіть файл XPS за допомогою класу XpsDocument .
- Щоб вставити активну сторінку з одного документа на початок іншого документа, використовуйте метод InsertPage() .
- Щоб вставити активну сторінку з одного документа в кінець іншого документа, використовуйте метод AddPage() .
- Щоб видалити порожню сторінку, використовуйте метод RemovePage() .
- Для переміщення сторінки з одного документа в інший використовуйте методи InsertPage() та SelectActivePage() .
- Збережіть змінені документи 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#.
- Встановіть шлях до каталогу документів.
- Відкрийте потік файлу XPS.
- Створіть файл XPS за допомогою класу XpsDocument.
- Додайте гліфи до документа за допомогою методу AddGlyphs() .
- Створіть другий файл XPS за допомогою класу XpsDocument.
- Щоб клонувати гліф із першого файлу до другого, використовуйте методи Add() та Clone() .
- Збережіть обидва документи 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#.
- Встановіть шлях до каталогу документів.
- Відкрийте потік файлу XPS.
- Створіть файл XPS за допомогою класу XpsDocument.
- Додайте гліфи до документа за допомогою методу AddGlyphs().
- Щоб заповнити гліфи текстурним пензлем, використовуйте метод CreateImageBrush() .
- Створіть другий файл XPS за допомогою класу XpsDocument.
- Додайте гліфи зі шрифтом із першого документа до другого документа за допомогою методу AddGlyphs().
- Створіть текстурний пензель із заливки першого документа та заповніть гліфи в другому документі за допомогою методу CreateImageBrush().
- Збережіть обидва документи 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, зберігає макет на різних платформах і не залежить від операційної системи.