Aspose.Page for C++ 是 Aspose.Page 产品系列 的重要补充,它是为使用 C++ 处理 PostScript (PS/EPS) 和 XPS 文档而开发的。 Aspose.Page for C++ 是一个原生 C++ 库,用于创建新的 XPS 文件以及以编程方式修改和转换现有的 PostScript 和 XPS 文档。 API 还允许您使用 XPS 文档中的页面和元素,例如画布和字形。此外,它还支持将文档转换为 PDF 和光栅图像。本文演示了如何使用 Aspose.Page for C++ 执行以下与 XPS 文档相关的操作。
- 在 C++ 中创建一个新的 XPS 文档
- 用 C++ 编辑现有 XPS 文档
- 在 C++ 中将页面或文档添加到 XPS 文档
为 C++ 安装 XPS API
Aspose.Page for C++ 托管在 NuGet 上,也可作为可下载的 binaries 获得。可下载的软件包还包含一个 C++ 控制台应用程序,其中包含基本示例的源代码。
在 C++ 中创建 XPS 文档
以下是使用 Aspose.Page for C++ 创建包含文本和图像的 XPS 文档的简单步骤。
- 创建 XpsDocument 类的对象。
- 分别使用 XpsGlyphs 和 XpsPath 对象添加文本和图像。
- 使用 Save 方法保存文档。
以下代码示例展示了如何在 C++ 中创建 XPS 文档。
// 创建一个新的 XpsDocument 对象
auto doc = System::MakeObject<XpsDocument>();
// 添加图片
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 450.24,0 0,150.64 -350.24,0 Z"));
// 创建一个可用于正确定位的矩阵。
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
// 创建图像画笔
path->set_Fill(doc->CreateImageBrush(u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 450.24f, 150.64f), System::Drawing::RectangleF(50.f, 20.f, 450.68f, 150.48f)));
// 文本作为页脚
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 18.0f, System::Drawing::FontStyle::Regular, 40.f, 1015.f, u"Copyright © 2006 QualityLogic, Inc.");
glyphs->set_Fill(textFill);
glyphs = doc->AddGlyphs(u"Arial", 15.0f, System::Drawing::FontStyle::Regular, 475.f, 1003.f, u"For information on QualityLogic XPS test products,");
glyphs->set_Fill(textFill);
// 另存为 XPS
doc->Save(u"Create-XPS.xps");
输出
用 C++ 编辑 XPS 文档
以下是编辑现有 XPS 文档的步骤:
- 创建 XpsDocument 类的对象并使用 XPS 文档的路径对其进行初始化。
- 使用 XpsDocument 对象访问文档的元素。
- 使用 Save 方法保存更新的文档。
以下代码示例显示了如何在 C++ 中编辑现有 XPS 文档。
// 加载 XPS 文档
auto doc = System::MakeObject<XpsDocument>(u"Created-XPS.xps");
// 在页面列表末尾添加空白页面
doc->AddPage();
// 在页面列表的开头插入一个空白页面
doc->InsertPage(1, true);
// 保存 XPS 文件
doc->Save(u"Updated-XPS.xps");
在 C++ 中将页面和文档添加到 XPS
Aspose.Page for C++ 还允许您在 XPS 文档中添加页面以及多个文档。以下是创建新 XPS 文档和添加附加页面和文档的步骤。
- 创建 XpsDocument 类的对象。
- 使用 AddPage 和 AddDocument 方法分别添加页面和文档。
- 使用 SelectActiveDocument 方法选择活动文档进行处理。
- 在文档中添加文本或图像。
- 保存文档。
以下代码示例展示了如何使用 C++ 向 XPS 添加其他页面和文档。
// 新文档(1 个固定文档,1 个默认大小页面)
auto doc = System::MakeObject<XpsDocument>();
// 在第一个文档上添加第二页并设置为活动
doc->AddPage();
// 添加第 1 页的第 2 个文档(文件中的第 3 页)
doc->AddDocument(false);
// 第一个文档的第二页仍然有效
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Page 2 (Document 1),");
glyphs->set_Fill(textFill);
// 激活第二个文档
doc->SelectActiveDocument(2);
glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Document 2 (Page #3 in file),");
glyphs->set_Fill(textFill);
// 保存 XPS 文件
doc->Save(u"Create-XPS.xps");