XPS 包内的跨包操作

通过 C# 在 XPS 包中操作页面、颜色和字形

 

.NET 的 Aspose.Page API 解决方案以及其他格式包括 XPS 包作为一个单独的库来处理 XPS 文件。其丰富的功能包含许多有用和流行的功能,如合并文件、转换、处理图形等。

XPS 可以在一个文档中保存多个文件。因此,任何 XPS 包都应该具有在文档内和不同 XPS 文档之间操作这些文件及其页面的功能。这种操作称为跨包操作。它们应该单独解释。

在这里,您将找到诸如页面操作以及添加字形和颜色等跨包操作的示例。

在 XPS 包 C# 中操作页面的步骤。

  1. 设置文档目录的路径。
  2. 使用 XpsDocument 类 创建一个 XPS 文件。
  3. 要将活动页面从一个文档插入到另一个文档的开头,请使用 InsertPage() 方法。
  4. 要将活动页面从一个文档插入到另一个文档的末尾,请使用 AddPage() 方法.
  5. 要删除空白页面,请使用 RemovePage() 方法。
  6. 要将页面从一个文档删除到另一个文档,请使用 InsertPage()SelectActivePage() 方法。
  7. 使用 XPsDocument.Save 保存更改的 XPS 文档。

用于跨包操作的 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. 使用 XpsDocument 类 创建一个 XPS 文件。
  4. 使用 AddGlyphs() 方法将字形添加到文档中。
  5. 使用 XpsDocument 类 创建第二个 XPS 文件。
  6. 要将字形从第一个文件克隆到第二个文件,请使用 Add()Clone() 方法。
  7. 通过 XPsDocument.Save() 方法保存两个 XPS 文档。

在 XPS 包中复制 glyth 的 C# 代码

    // 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. 使用 XpsDocument 类 创建一个 XPS 文件。
  4. 使用 AddGlyphs() 方法将字形添加到文档中。
  5. 要使用图像画笔填充字形,请使用 CreateImageBrush() 方法。
  6. 使用 XpsDocument 类 创建第二个 XPS 文件。
  7. 使用 AddGlyphs() 方法将带有字体的字形从第一个文档添加到第二个文档。
  8. 使用 CreateImageBrush() 方法从第一个文档的填充创建一个图像画笔并在第二个文档中填充字形。
  9. 通过 XPsDocument.Save() 方法保存两个 XPS 文档

在 XPS 包中创建图像填充字形的 C# 代码

    // 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 Package 是一个用于管理 XPS 文件的单独库。使用它来创建您自己的转换器、阅读器或其他应用程序来编辑 XPS。

2. 我如何获得 XPS 包?

XPS 包包含在 Aspose.Page 解决方案中。

3. 有哪些跨包操作可用?

使用 Aspose XPS Package,您可以将页面从一个文档传输到另一个文档,克隆字形、样式或设置等对象。

4. 如何操作XPS文档之间的页面?

要使用此 XPS 包传输文件,请使用 XpsDocument 类的 InsertPage()AddPage()RemovePage()SelectActivePage() 方法。

XPS 什么是XPS文件格式

XPS 格式类似于 PDF 格式。两者都是页面描述语言 (PDL) 格式。 EPS 基于 HTML 而不是 PostScript 语言。 .eps 文件能够包含文档结构的标记以及有关文档外观的信息。还添加了有关如何打印和呈现文档的说明。该格式的特点是它修复了文档的描述,这意味着无论谁以及从哪个操作系统打开它,它看起来都是一样的。