4

OpenOffice Java API を使用してドキュメント セクションをコピーし、別のドキュメント セクションに貼り付ける必要があります。これまでのところ、ソース ドキュメントのセクションのテキストをコピーして、ターゲット ドキュメントのセクションに貼り付けることができました (以下の例を参照)。

ただし、問題は、テキスト以外の要素 (グラフィック、フォーマット、表など) が貼り付け先のドキュメントに貼り付けられないことです。

ソース セクションのテキストを抽出するために使用したコードは次のとおりです。

// Read source file text
XComponent xComponentSource = this.ooHelper.loadDocument("file://" + fSource);
// Get sections
XTextSectionsSupplier textSectionsSupplierSource = (XTextSectionsSupplier)UnoRuntime.queryInterface(XTextSectionsSupplier.class, xComponentSource);
XNameAccess nameAccessSource = textSectionsSupplierOrigen.getTextSections();
// Get sections by name
XTextSection textSectionSource = (XTextSection)UnoRuntime.queryInterface(XTextSection.class, nameAccessOrigen.getByName("SeccEditable"));
//Get section text
String sectionSource = textSectionSource.getAnchor().getString();

ターゲット セクションにテキストを貼り付けるために、セクションを選択するコードは同じで、文字列を設定します。

textSectionDest.getAnchor().setString(sectionSource);

API Javadoc を読みましたが、セクション全体をコピーする方法が見つかりませんでした。それを行う方法はありますか?

4

1 に答える 1

1

私はこれと同じ問題を抱えていました。私は2つのカーソルを作成することで解決しました。1つは複製したいコンテンツの先頭に、もう1つはコンテンツの最後に使用し、最初のカーソルの選択を2番目に拡張しました。これは、最初のカーソルで gotoRange メソッドを使用し、2 番目のカーソルと True を渡して、選択を展開するように指示します。

カーソルの例: http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_1_Editing_Text

次に、選択範囲を含む autoText コンテナー、グループ、および要素を作成しました。定型句エントリの applyTo メソッドを使用して、カーソル位置にコンテンツを挿入/貼り付けました。autoText コンテナーの名前に GUID を使用して一意になるようにし、完了したらコンテナーを削除しました。

定型句の例: http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_6_Auto_Text

必要に応じてコードを投稿できますが、Python で書かれています。

于 2011-02-22T15:00:07.460 に答える