文書をHTML、MHTML、またはEPUBに変換する

HTMLおよびMHTMLフローレイアウト形式の文書も非常に一般的であり、任意のwebプラットフォームで使用できます。 そのため、文書をHTMLおよびMHTMLに変換することはAspose.Wordsの重要な機能です。

EPUB(「Electronic Publication」の略)は、電子書籍の配布に一般的に使用されるHTMLベースの形式です。 この形式は、ほとんどの読書デバイスと互換性のある電子書籍をエクスポートするためにAspose.Wordsで完全にサポートされています。

文書を変換する

HTML、MHTML、またはEPUBへの単純な変換には、Saveメソッドオーバーロードのいずれかが使用されます。 ドキュメントをファイルまたはストリームに保存し、出力ドキュメントの保存形式を明示的に設定したり、ファイル名拡張子から定義したりできます。

次の例は、保存形式を指定してDOCXをHTMLに変換する方法を示しています:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (docx).docx");
// Save the document into HTML.
doc->Save(outputDataDir + u"Document_out.html", SaveFormat::Html);

文書をMHTMLまたはEPUBに変換するには、それぞれSaveFormat.MhtmlまたはSaveFormat.Epubを使用します。

往復情報を含む文書を変換する

HTML形式は多くのMicrosoft Word機能をサポートしておらず、可能な限り元のものに近いドキュメントモデルを復元する必要がある場合は、HTMLファイル内に追加情報を保存する必要があります。 このような情報は、“往復情報"とも呼ばれます。 この目的のために、Aspose.Wordsは、ExportRoundtripInformationプロパティを使用してHTML、MHTML、またはEPUBに保存するときにラウンドトリップ情報をエクスポートする機能を提供します。 往復情報を保存すると、リストされた書式のドキュメントをDocumentオブジェクトにロードするときに、タブ、コメント、ヘッダー、フッターなどのドキュメントプ

デフォルト値は、HTMLの場合はtrue、MHTMLとEPUBの場合はfalseです:

  • trueの場合、往復情報は対応するHTML要素の-aw-*CSSプロパティとしてエクスポートされます
  • falseの場合、生成されたファイルに出力されるラウンドトリップ情報はありません

次のコード例は、ドキュメントをDOCXからHTMLに変換するときに往復情報をエクスポートする方法を示しています:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (doc).doc");
System::SharedPtr<HtmlSaveOptions> options = System::MakeObject<HtmlSaveOptions>();
// HtmlSaveOptions.ExportRoundtripInformation property specifies
// Whether to write the roundtrip information when saving to HTML, MHTML or EPUB.
// Default value is true for HTML and false for MHTML and EPUB.
options->set_ExportRoundtripInformation(true);
doc->Save(outputDataDir + u"ConvertDocumentToHtmlWithRoundtrip.html", options);

HTMLへの変換時に保存オプションを指定する

Aspose.Words既定またはカスタム保存オプションを使用してWord文書をHTMLに変換できます。 以下では、カスタム保存オプションの例をいくつか説明します。

リソースを保存するためのフォルダを指定します

Aspose.Wordsを使用すると、ドキュメントがHTMLに変換されるときに、画像、フォント、外部CSSなどのすべてのリソースが保存される物理フォルダを指定できます。 デフォルトでは、これは空の文字列です。

ResourceFolderプロパティを指定することは、すべてのリソースを書き込むフォルダを設定する最も簡単な方法です。 フォントを指定したフォルダに保存するFontsFolderや画像を指定したフォルダに保存するImagesFolderなど、個々のプロパティを使用できます。 相対パスが指定されている場合、FontsFolderImagesFolderはコードアセンブリが配置されているフォルダーを参照し、ResourceFolderCssStyleSheetFileNameはHTMLドキュメントが配置されている出力フォル

この例では、ResourceFolderは相対パスを指定します。 このパスは、HTMLドキュメントが保存されている出力フォルダーを参照します。 ResourceFolderAliasプロパティの値は、すべてのリソースに対してURLsを作成するために使用されます。

次のコード例は、これらのプロパティを操作する方法を示しています:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
saveOptions->set_CssStyleSheetType(CssStyleSheetType::External);
saveOptions->set_ExportFontResources(true);
saveOptions->set_ResourceFolder(outputDataDir + u"Resources");
doc->Save(outputDataDir + u"ExportResourcesUsingHtmlSaveOptions.html", saveOptions);

ResourceFolderAliasプロパティを使用して、HTMLドキュメントに書き込まれたすべてのリソースのURIsを構築するために使用されるフォルダの名前を指定することもで これは、すべてのリソースファイルに対してURIsを生成する方法を指定する最も簡単な方法です。 ImagesFolderAliasプロパティとFontsFolderAliasプロパティを使用して、画像とフォントに同じ情報を個別に指定することができます。

ただし、CSSには個々のプロパティはありません。 の動作FontsFolder, FontsFolderAlias, ImagesFolder, ImagesFolderAlias およびCssStyleSheetFileNameプロパティは変更されません。 CssStyleSheetFileNameプロパティは、フォルダ名とファイル名の両方を指定するために使用されることに注意してください。

  • ResourceFolderは、FontsFolderImagesFolderCssStyleSheetFileNameで指定されたフォルダよりも優先度が低くなります。 ResourceFolderで指定したフォルダが存在しない場合は、自動的に作成されます。
  • ResourceFolderAliasの優先度はFontsFolderAliasImagesFolderAliasよりも低くなります。 ResourceFolderAliasが空の場合、ResourceFolderプロパティの値はリソースURIsを作成するために使用されます。 ResourceFolderAliasが”."(ドット)に設定されている場合、リソースURIsにはパスを指定せずにファイル名のみが含まれます。

Base64エンコーディングフォントリソースのエクスポート

Aspose.WordsフォントリソースをBase64エンコーディングでHTMLに埋め込むかどうかを指定する機能を提供します。 これを実行するには、ExportFontsAsBase64プロパティを使用します–これはExportFontResourcesプロパティの拡張です。 デフォルトでは、その値はfalseであり、フォントは別々のファイルに書き込まれます。 ただし、このオプションがtrueに設定されている場合、フォントはBase64エンコーディングでドキュメントのCSSに埋め込まれます。 ExportFontsAsBase64プロパティはHTML形式にのみ影響し、EPUBおよびMHTMLには影響しません。

Base64でエンコードされたフォントをHTMLにエクスポートする方法を次のコード例に示します:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
saveOptions->set_ExportFontResources(true);
saveOptions->set_ExportFontsAsBase64(true);
System::String outputPath = outputDataDir + u"ExportFontsAsBase64.html";
doc->Save(outputPath, saveOptions);

EPUBへの変換時に保存オプションを指定する

Aspose.Wordsデフォルトまたはカスタム保存オプションを使用して、Word文書をEPUB形式に変換できます。 HtmlSaveOptionsのインスタンスをSaveメソッドに渡すことで、いくつかのオプションを指定できます。

次のコード例は、いくつかのカスタム保存オプションを指定してWord文書をEPUBに変換する方法を示しています:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.EpubConversion.doc");
// Create a new instance of HtmlSaveOptions. This object allows us to set options that control
// How the output document is saved.
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
// Specify the desired encoding.
saveOptions->set_Encoding(System::Text::Encoding::get_UTF8());
// Specify at what elements to split the internal HTML at. This creates a new HTML within the EPUB
// which allows you to limit the size of each HTML part. This is useful for readers which cannot read
// HTML files greater than a certain size e.g 300kb.
saveOptions->set_DocumentSplitCriteria(DocumentSplitCriteria::HeadingParagraph);
// Specify that we want to export document properties.
saveOptions->set_ExportDocumentProperties(true);
// Specify that we want to save in EPUB format.
saveOptions->set_SaveFormat(SaveFormat::Epub);
// Export the document as an EPUB file.
doc->Save(outputDataDir + u"ConvertDocumentToEPUB.ConvertDocumentToEPUB.epub", saveOptions);