Word ドキュメントでメモリストリームを読み込んでいます。メモリストリーム内の特定のテキストを変更して、検索や置換機能のように Word ドキュメントに保存できるようにしたいと考えています。Word Interop ライブラリを使用したくないので、誰か助けてください。ドキュメントを読み込んで保存するためのコードは既にあります。以下を参照してください。問題は、メモリ文字列を文字列に変換して文字列置換メソッドを使用すると、文字列を保存すると、Word 文書内のすべての書式が失われ、文書を開くと、あちこちに黒いボックスが表示されることです。
private void ReplaceInFile(string filePath, string searchText, string replaceText)
{
byte[] inputFile = File.ReadAllBytes(filePath);
MemoryStream memory = new MemoryStream(inputFile);
byte[] data = memory.ToArray();
string pathStr = Request.PhysicalApplicationPath + "\\Docs\\OutputDocument.doc";
FileInfo wordFile = new FileInfo(pathStr);
FileStream fileStream = wordFile.Open(FileMode.Create, FileAccess.Write, FileShare.None);
fileStream.Write(data, 0, data.Length);
fileStream.Close();
memory.Close();
}
インターネット上のサンプルコードからコードをコピーしました。そのため、方法がわからなかったので、メモリストリームが使用されました。私の問題は、私が働いている会社が相互運用という言葉を使用したくないということです。なぜなら、単語がコード化された機能の実行を妨げるポップアップダイアログボックスを時々表示できることがわかったからです。これが、差し込み印刷機能をプログラムで実現する方法を検討したい理由です。私は何年も前にここでやりたいことと非常によく似たことをしましたが、C# ではなく Delphi で、通常はコードを失いました。誰かがこれに光を当てることができれば、私は感謝します.