C++でPSEPSXPSドキュメントを作成する

Aspose.Page for C++は、C++を使用してPostScript(PS / EPS)およびXPSドキュメントを操作するために開発されたAspose.Page製品ファミリーへの貴重な追加です。 Aspose.Page for C++は、新しいXPSファイルを作成したり、既存のPostScriptおよびXPSドキュメントをプログラムで変更および変換したりするためのネイティブC++ライブラリです。 APIを使用すると、XPSドキュメント内のページやキャンバスやグリフなどの要素を操作することもできます。さらに、ドキュメントのPDFおよびラスターイメージへの変換をサポートします。この記事では、Aspose.Page forC++を使用してXPSドキュメントに関連する次の操作を実行する方法を示します。

  • C++で新しいXPSドキュメントを作成します
  • C++で既存のXPSドキュメントを編集する
  • C++でXPSドキュメントにページまたはドキュメントを追加する

C++用のXPSAPIのインストール

Aspose.Page for C++は、NuGetでホストされているだけでなく、ダウンロード可能なbinariesとしても利用できます。ダウンロード可能なパッケージには、基本的な例のソースコードを含むC++コンソールアプリケーションも含まれています。

C++でXPSドキュメントを作成する

以下は、C++用のAspose.Pageを使用してテキストと画像を含む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 &#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");

出力

PSEPSXPSドキュメントC++を編集します

XPSドキュメントをC++で編集する

以下は、既存の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>();
// 1番目のドキュメントに2番目のページを追加し、アクティブに設定します
doc->AddPage();
// 1ページの2番目のドキュメントを追加します(ファイルの3番目のページ)
doc->AddDocument(false);
// 1番目のドキュメントの2番目のページはまだアクティブです
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);
// 2番目のドキュメントをアクティブ化
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 forC++の詳細

Aspose.Page for C++の詳細については、GitHubで入手できるドキュメントソースコードの例を使用してください。