Top > OOoBasic > Writer > insertDocument

ドキュメントの挿入 Edit

外部のファイルをドキュメントに挿入します。

テキストカーソルやビューカーソルの insertDocumentFromURL メソッドを利用します。

Sub insertDocument_1
  oDoc = ThisComponent
  oText = oDoc.getText()
  oCursor = oText.createTextCursor()
  oCursor.insertDocumentFromURL("file:///C:/usr/2.odt",Array())
End Sub

引数はドキュメントを読み込む際の loadComponentFromURL メソッドのものと同じものを利用します。が、http://extensions.openoffice.org/issues/show_bug.cgi?id=83449 のため OOo 2.4 での修正待ちです。

オプションが動かないため、InputStream などを利用してドキュメント挿入が動きません (issue 修正待ち)。

2.4 以降では InputStream から insertDocument メソッドでドキュメントを挿入できます。

Sub insertDocument_2
  sHtml = "<html><body>Formatted HTML <b>BOLD</b>.</body></html>"

  oTemp = CreateUnoService("com.sun.star.io.TempFile")
  oOut = oTemp.getOutputStream()

  oTxtOut = CreateUnoService("com.sun.star.io.TextOutputStream")
  oTxtOut.setOutputStream(oOut)
  oTxtOut.writeString(sHtml)
  oTxtOut.flush()

  oIn = oTemp.getInputStream()

  ' insert data to a new writer document from the InputStream
  oNewDoc = StarDesktop.loadComponentFromURL( _
      "private:factory/swriter", "_blank", 0, Array() )

  oController = oNewDoc.getCurrentController()

  oViewCursor = oController.getViewCursor()
  oText = oNewDoc.getText()

  oCursor = oText.createTextCursorByRange(oViewCursor.getEnd())
  Dim args(1) As New com.sun.star.beans.PropertyValue
  args(0).Name = "InputStream"
  args(0).Value = oIn
  args(1).Name = "FilterName"
  args(1).Value = "writer_web_HTML"'"writer_Rich_Text_Format"

  oCursor.insertDocumentFromURL("",args)
End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes