本日は、Aspose.Words for C++ 19.10 リリースで導入された主な機能を紹介します。

Word 文書を MutiPage TIFF として保存

Word 文書 (DOCX、DOC、RTF など) で行う必要がある便利なことの 1 つは、画像ファイルへの変換です。たとえば、Word 文書を読み取り可能で印刷可能であるが編集可能ではない形式 (Web 上での公開など) で提示する必要がある場合などです。使用できる簡単な方法の 1 つは、マルチページ TIFF ファイルへの変換です。 Aspose.Words for C++ を使用して Word ドキュメントを TIFF 形式に変換する方法については、次の記事を参照してください。 Word 文書を複数ページの TIFF 画像に変換

// 完全な例とデータ ファイルについては、https://github.com/aspose-words/Aspose.Words-for-.NET にアクセスしてください。
// ドキュメントをマルチページ TIFF として保存します。
doc.Save(dataDir + "TestFile Multipage TIFF_out.tiff");

C++ を使用して画像を PDF に変換する

Aspose.Words for C++ API を使用して、イメージから PDF ドキュメントを作成できるようになりました。次の記事で言及されているコード例は、Aspose.Words for C++ を使用することがいかに簡単かを示しています。このコードを使用すると、JPEG、PNG、BMP、EMF、WMF などの単一フレーム画像のほか、複数フレームの TIFF 画像や GIF を PDF に変換できます。 画像を PDF に変換

C++ を使用した TIFF 2 値化のしきい値の制御

グレースケール画像に含まれる情報を 256 階調のグレーから白黒の 2 階調に減らして 2 値画像に変換するプロセスが 2 値化です。ドキュメントが TIFF ファイル形式に変換される場合、ImageSaveOptions.ThresholdForFloydSteinbergDithering プロパティを使用して、TIFF 2 値化のしきい値を制御できます。このプロパティのデフォルト値は 128 です。値が高いほど、画像は暗くなります。次のコード例は、このプロパティを TIFF バイナリ化のしきい値を制御 に使用する方法を示しています。

System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(SaveFormat::Tiff);
options->set_TiffCompression(TiffCompression::Ccitt3);
options->set_ImageColorMode(ImageColorMode::Grayscale);
options->set_TiffBinarizationMethod(ImageBinarizationMethod::FloydSteinbergDithering);
options->set_ThresholdForFloydSteinbergDithering(254);

System::String outputPath = outputDataDir + u"ImageColorFilters.ExposeThresholdControlForTiffBinarization.tiff";
doc->Save(outputPath, options);

C++ を使用して画像を 1 ビット/ピクセルに保存する

次のコード例は、PixelFormat を Format1bppIndexed に設定して、イメージをピクセルあたり 1 ビットで保存する方法を示しています。

System::SharedPtr<ImageSaveOptions> opt = System::MakeObject<ImageSaveOptions>(SaveFormat::Png);
opt->set_PageIndex(1);
opt->set_ImageColorMode(ImageColorMode::BlackAndWhite);
opt->set_PixelFormat(ImagePixelFormat::Format1bppIndexed);

System::String outputPath = outputDataDir + u"ImageColorFilters.SaveImageToOnebitPerPixel.png";
doc->Save(outputPath, opt);

C++ を使用して DOC または DOT ファイルをパスワードで暗号化する

DocSaveOptions クラスは、ドキュメントを DOC または DOT 形式で保存するときに追加オプションを指定するために使用されます。このクラスを使用すると、暗号化されたドキュメントにパスワードを設定し、ドキュメントの保存中に RoutingSlip データを無視できます。以下のコード例は、[RC4 暗号化方式を使用してドキュメントを暗号化するためのパスワードを設定する]方法を示しています3

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<DocSaveOptions> docSaveOptions = System::MakeObject<DocSaveOptions>();
docSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithDoc.EncryptDocumentWithPassword.doc";
doc->Save(outputPath, docSaveOptions);

C++ を使用して DOCX ファイルをパスワードで暗号化する

OoXMLSaveOptions クラスは、パスワードで暗号化されたドキュメントを保存する機会を提供します。このクラスを使用すると、ドキュメントの保存時に OoxmlSaveOptions.Password プロパティを使用してパスワードを設定できます。次のコード例は、パスワードを設定し、ドキュメントを DOCX 形式で保存する方法を示しています。

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<OoxmlSaveOptions> ooxmlSaveOptions = System::MakeObject<OoxmlSaveOptions>();
ooxmlSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithOoxml.EncryptDocxWithPassword.docx";
doc->Save(outputPath, ooxmlSaveOptions);

DocumentVisitor を使用してコンテンツを抽出する

DocumentVisitor クラスを使用して、この使用シナリオを実装できるようになりました。このクラスは、よく知られた Visitor デザイン パターンに対応します。 DocumentVisitor を使用すると、ドキュメント ツリーの列挙を必要とするカスタム操作を定義して実行できます。詳細については、次を確認してください。 DocumentVisitor を使用してコンテンツを抽出する方法

フォントの行間を取得する

フォントの行間隔は、連続する 2 行のテキストのベースライン間の垂直距離です。したがって、行間隔には、文字自体の高さと行間の空白が含まれます。 LineSpacing プロパティは、以下の例に示すように、フォントの行間隔の値を取得する ために Font クラスに導入されました。

// ドキュメントを初期化します。
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->get_Font()->set_Name(u"Calibri");
builder->Writeln(u"qText");

// 行間隔を取得します。
System::SharedPtr<Font> font = builder->get_Document()->get_FirstSection()->get_Body()->get_FirstParagraph()->get_Runs()->idx_get(0)->get_Font();
//Console.WriteLine($"lineSpacing = {font.LineSpacing}");
std::cout << "lineSpacing = " << font->get_LineSpacing() << std::endl;

関連項目 便利なリンク

タスクを完了するために必要なリソース:

Aspose の伝統を守りながら、Aspose.Words for C++ サポート フォーラム に提案や懸念事項を投稿して、Aspose.Words for C++ API の今後のリリースを形作ることができます。