1

C# VSTO アドイン プロジェクトでは、コンテンツ コントロールを Word ドキュメントに追加して、ドキュメント構造を追跡します。コンテンツ コントロールを使用して、ドキュメントのさまざまな要素をネストできるようにします。ネスティングは基本的に、章、節、段落などのさまざまなレベルにさまざまな要素を持つ本のようなものです。この構造を保存して、XSD に対して検証したい特定の XML 形式にエクスポートして、ドキュメントの構造を検証できるようにする必要があります。

多くのコンテンツ コントロールが必要な大きなドキュメントを処理する必要がある場合を除いて、すべてがコンテンツ コントロールで正常に機能します。2000 を超えるコンテンツ コントロールについて話しているので、Word で処理するのは大変だと思います。その場合、Word は非常に遅くなります。たとえば、文書の一番下までスクロールすると、Word が改ページ位置を変更してスペル チェックを実行していると言う間、しばらく時間がかかります。そのようなドキュメントを開くと、Word がクラッシュすることさえあります。

非常に大きなドキュメントで Word の速度が低下する可能性があることをどこかで読んだので、ドキュメントから元に戻す情報を削除しようとしました。その後、ドキュメントサイズは少し縮小しましたが、パフォーマンスの問題は解決しません。これをスピードアップするために他にできることはありますか、それともこの量が必要な場合 (つまり、コンテンツ コントロールが 500 個を超える場合) にコンテンツ コントロールを使用することはできませんか?

また、コンテンツ コントロールがうまくいかない場合、ドキュメントの構造を追跡するための代替手段はありますか? スタイルを使用してみましたが、ドキュメントの個々の要素のネスト情報が失われるため、解析がはるかに難しくなります。また、すべてのグループ化要素の先頭にブックマークを付けてみましたが、入力中にブックマークを削除できることに気付きました。

アイデア、ヒント、ヒントは大歓迎です。前もって感謝します!

ルベン。

4

2 に答える 2

0

コンテンツコントロールのtagプロパティを使用していない場合、代わりにマージフィールドを使用しているように見えましたか?コンテンツコントロールを使用してドキュメントを処理する方法によっては、同じ機能をはるかに優れたパフォーマンスで提供できる場合があります。マージフィールドは必要なメモリスペースが少なく、コンテンツコントロールよりもはるかに速く入力されます。

于 2012-03-27T07:40:46.213 に答える
0

http://docx.codeplex.com/を使用してみてください。そうすれば、MS Word をインストールする必要さえありません。

于 2012-03-14T02:25:25.570 に答える