在 C++ 中創建 PS EPS XPS 文檔

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 上,也可作為可下載的 二進製文件 使用。可下載的軟件包還包含一個 C++ 控制台應用程序,其中包含基本示例的源代碼。

在 C++ 中創建 XPS 文檔

以下是使用 Aspose.Page for C++ 創建包含文本和圖像的 XPS 文檔的簡單步驟。

以下代碼示例顯示瞭如何在 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 &#xa9; 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");

輸出

編輯 PS EPS XPS 文檔 C++

在 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 文檔並添加附加頁面和文檔的步驟。

以下代碼示例顯示瞭如何使用 C++ 向 XPS 添加其他頁面和文檔。

// 新文檔(1 個固定文檔和 1 個默認尺寸頁面)
auto doc = System::MakeObject<XpsDocument>();
// 在第一個文檔上添加第二頁並設置為活動
doc->AddPage();
// 添加第 2 個文檔,第 1 頁(文件中的第 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");

了解有關 Aspose.Page for C++ 的更多信息

您可以使用 GitHub 上的 文檔源代碼示例 了解有關 Aspose.Page for C++ 的更多信息。