メモリに System.IO.Packaging.Package があり (これは WordprocessingDocument です)、それをブラウザーにストリーミングして保存したいと考えています。word 文書は MVC ベースのアプリケーションによって変更されており、結果のファイルは現在の要求に対して変更されています。
私は、パッケージがいくつかのパーツを含む「zip」ファイルを表していることを理解しています。これらのパーツには、ヘッダー、フッター、および本文ドキュメントが含まれます。それぞれを個別に変更したので、パッケージをユーザーにストリーム配信したいと考えています。
個々のパーツ ストリームを取得できます... package.GetPart(new Uri("/word/document.xml", UriKind.Relative)).GetStream()
ただし、ファイル システムに書き込むことなく、ドキュメント (パッケージ) 全体で出力ストリームを取得する方法がありません。
前もって感謝します
いいえ、私が必要だと思うのはこのようなものです...私はすでにテンプレートドキュメントを読み込んで、メモリに変更を加えました。ここで、変更されたドキュメントを (テンプレートはそのままにして) ユーザーにストリーム配信したいと考えています。
MemoryStream stream = new MemoryStream();
WordprocessingDocument docOut =
WordprocessingDocument.Create( stream, WordprocessingDocumentType.Document);
foreach (var part in package.GetParts())
{
using (StreamReader streamReader = new StreamReader(part.GetStream()))
{
PackagePart newPart = docOut.Package.CreatePart(
part.Uri, part.ContentType );
using (StreamWriter streamWriter = new StreamWriter(newPart.GetStream(FileMode.Create)))
{
streamWriter.Write(streamReader.ReadToEnd());
}
}
}
残念ながら、これにより「破損した」Word文書が生成されます...