文書の保存とエクスポート
ドキュメントの保存とエクスポート
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) は一致するサブクラスを返します。 |
OoxmlSaveOptions | DOCX、DOCM、DOTX、DOTM、Flat OPC のオプション — パスワード、コンプライアンス、圧縮。 |
MarkdownSaveOptions | Markdownエクスポートのオプション — リスト/リンクのレンダリング、画像の処理。 |
TxtSaveOptions / TxtSaveOptionsBase | プレーンテキストエクスポートのオプション — エンコーディング、改行、テーブルレイアウト。 |
FileFormatUtil.DetectFileFormat | 読み込みまたは変換する前にファイル形式を検出します。 |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | SaveFormat の値とファイル拡張子を変換します。 |