文書の保存とエクスポート

文書の保存とエクスポート

ドキュメントの保存とエクスポート

Document.Save はドキュメントをターゲット形式でファイルまたはストリームに書き込みます。形式は、ファイル拡張子から推測されるか、SaveFormat 値として明示的に指定されるか、SaveOptions サブクラス(OoxmlSaveOptions、MarkdownSaveOptions、または TxtSaveOptions)によって形式固有の制御が行われます。このガイドでは、Save のオーバーロード、SaveFormat 列挙、OOXML 保存オプション、Markdown およびプレーンテキストのエクスポート、そして変換前の形式検出について解説します。


Document.Save を使用した保存

最もシンプルな呼び出しである Document.Save(fileName) は、ファイルの拡張子からターゲット形式を推測します。Save(fileName, saveFormat) は拡張子に関係なく形式を明示的に指定し、Save(fileName, saveOptions)(または対応する Stream オーバーロード)は形式固有の設定のために SaveOptions サブクラスを受け取ります。SaveOptions.CreateSaveOptions(saveFormat) は静的ファクトリで、指定された SaveFormat に対してデフォルトが設定済みの適切なオプションサブクラスを返します。


SaveFormat を使用した形式の選択

SaveFormat 列挙は、ライブラリが認識するすべての保存形式識別子を一覧化しています。Document.Save は、このエディションのコアドキュメント形式(DOCX、DOCM、DOTX、DOTM、Flat OPC(マクロ有効版とテンプレート版を含む))だけでなく、Markdown およびプレーンテキストへの入出力も完全にサポートします。FileFormatUtil.SaveFormatToExtension(saveFormat) と ExtensionToSaveFormat(extension) は、列挙とファイル拡張子文字列間の変換を行います。

一部の SaveFormat 値は API の完全性のために列挙に存在しますが、この縮小されたオープンソース版では実装されているリーダーやライターがない形式に対応しています。そのような形式に保存しようとすると、出力は元のドキュメントと等価ではありません。信頼できる往復を行うためには、上記の形式のみを使用してください。


OOXML オプション: DOCX、DOCM、DOTX、DOTM、そして Flat OPC

OoxmlSaveOptions は Open XML フォーマットのいずれかへの保存を設定します。その SaveFormat プロパティは書き込む特定のバリアントを選択し、Password は保存されたファイルにオープンパスワードを設定します(Document.Protect の編集制限とは無関係です)。Compliance は OOXML の厳格レベルを選択し、CompressionLevel / Zip64Mode は基礎となる ZIP パッケージングを制御します。new OoxmlSaveOptions(saveFormat) で構築するか、SaveOptions.CreateSaveOptions(saveFormat) を使用してください。


Markdown へのエクスポート

MarkdownSaveOptions は Markdown エクスポートを制御します:ListExportMode と LinkExportMode はリストとハイパーリンクのレンダリング方法を管理し、ImagesFolder / ImagesFolderAlias は抽出された画像の書き込み先と参照方法を制御し、ExportImagesAsBase64 はそれらをインラインで埋め込み、TableContentAlignment は生成されたテーブルのマークアップに影響します。MarkdownSaveOptions インスタンスを Document.Save(fileName, saveOptions) に .md ファイル名で渡すか、SaveFormat を明示的に設定してください。


プレーンテキストへのエクスポート

TxtSaveOptions(その基底 TxtSaveOptionsBase を介して、MarkdownSaveOptions と共有)はプレーンテキストのエクスポートを制御します:Encoding は文字エンコーディングを設定し、ParagraphBreak は改行文字列を設定し、MaxCharactersPerLine は長い行を折り返し、SimplifyListLabels はリストの箇条書きや番号をプレーン文字に正規化し、PreserveTableLayout はスペースを使ってテーブル列の整列を試みます。


変換前にフォーマットを検出する

形式が不明なファイルを変換する前に、FileFormatUtil.DetectFileFormat(fileName) は検出された LoadFormat を含む FileFormatInfo を返します。これを FileFormatUtil.LoadFormatToSaveFormat(loadFormat) と組み合わせて、Document.Save を試みる前に、このエディションがサポートするフォーマット間のラウンドトリップが可能かどうかを判断してください。


ヒントとベストプラクティス

  • フォーマット固有の動作(Markdown のリストレンダリングや OOXML 圧縮など)を制御する必要がある場合は、プレーンな Save(fileName, saveFormat) オーバーロードの代わりに Save(fileName, saveOptions) を使用してください。
  • オープンパスワードで保護されたファイルには OoxmlSaveOptions.Password を設定します。これは、編集は制限するがファイルは暗号化しない Document.Protect とは別物です。
  • 単一の自己完結型 Markdown ファイルの場合は MarkdownSaveOptions.ExportImagesAsBase64 を選択し、Markdown と共に抽出された画像ファイルのフォルダーが欲しい場合は ImagesFolder を選択してください。
  • 対象フォーマットが実行時に決定される場合、具体的なオプションクラスを手動で選択する代わりに SaveOptions.CreateSaveOptions(saveFormat) を呼び出してください。
  • 変換前に、誤っている可能性や誤解を招く可能性のある単なるファイル拡張子に依存せず、FileFormatUtil で対象フォーマットを検証してください。

一般的な問題

問題原因修正
Save(fileName) が間違った形式を選択しますファイル拡張子が意図した形式と一致しません形式を明示するには Save(fileName, saveFormat) または Save(fileName, saveOptions) を使用してください
保存した OOXML ファイルがパスワードで開けません保存前に OoxmlSaveOptions.Password が設定されていませんでしたOoxmlSaveOptions を構築し、Password を設定し、Save に渡します
Markdown エクスポートが画像ファイルを予期せず散らばりますデフォルトの MarkdownSaveOptions 動作は画像をファイルに抽出します単一の自己完結型ファイルにするには ExportImagesAsBase64 = true を設定し、画像の保存先を制御するには ImagesFolder を設定します
プレーンテキストエクスポートではテーブルの列揃えが失われますTxtSaveOptions.PreserveTableLayout はデフォルトのままです保存する前に PreserveTableLayout = true を設定してください。

FAQ

ファイル拡張子に関係なく、特定の形式でドキュメントを保存するにはどうすればよいですか?

明示的な SaveFormat 値を指定して Save(fileName, saveFormat) を呼び出すか、対応する SaveOptions サブクラスを使用して Save(fileName, saveOptions) を呼び出します。

このエディションが読み書きできる形式はどれですか?

DOCX、DOCM、DOTX、DOTM、Flat OPC(マクロ対応版とテンプレート版を含む)、Markdown、プレーンテキスト。

保存したファイルにパスワードを設定するにはどうすればよいですか?

OoxmlSaveOptions インスタンスに Password を設定し、Document.Save(fileName, saveOptions) に渡します。

エクスポートしたテキストファイルの改行コードを制御するにはどうすればよいですか?

保存する前に、TxtSaveOptions インスタンスに ParagraphBreak を設定します。

変換する前にファイルの形式が何かを確認するにはどうすればよいですか?

FileFormatUtil.DetectFileFormat(fileName) を呼び出し、返された FileFormatInfo.LoadFormat を読み取ります。


API Reference の概要

クラス/メソッド説明
Document.Save選択した形式で、ドキュメントをファイル、ストリーム、または出力先に書き込みます。
SaveFormat保存操作の対象フォーマットを識別する列挙型。
SaveOptionsフォーマット固有の保存設定の抽象基底クラス;CreateSaveOptions(saveFormat) は一致するサブクラスを返します。
OoxmlSaveOptionsDOCX、DOCM、DOTX、DOTM、Flat OPC のオプション — パスワード、コンプライアンス、圧縮。
MarkdownSaveOptionsMarkdownエクスポートのオプション — リスト/リンクのレンダリング、画像の処理。
TxtSaveOptions / TxtSaveOptionsBaseプレーンテキストエクスポートのオプション — エンコーディング、改行、テーブルレイアウト。
FileFormatUtil.DetectFileFormat読み込みまたは変換する前にファイル形式を検出します。
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatSaveFormat の値とファイル拡張子を変換します。

参照

 日本語