Top / OpenOffice.org / PDFを出力する

まだ書き途中!!

OpenOffice.orgサーバを起動

Windows:

> cd [OOo_DIR]/program
>soffice -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager

Linux:

/usr/lib/ooo-1.1/program/soffice "-accept=socket,port=8100;urp;"

OpenOffice.orgのドキュメントに、変数追加

OpenOffice.orgのドキュメントに外から置換するための変数を埋め込みます。埋め込む作業自体は、OpenOffice.orgとアドオンのJooTemplates?を使用します。JooTemplates?JOOReportsよりダウンロードできます。2006/3/5現在最新版は1.0b4です。インストールは解凍して

JooReports-AddOnInstaller.sxc

をダブルクリックします。このとき、OOoをinvisibleで起動してると、画面に表示されないので、その場合はいったんプロセスをタスクマネージャからkillします。

実際のプログラム

流れ

  • あらかじめ変数を埋め込んだOpenOffice.orgのファイル(拡張子:sxw)を作っておく。
  • ランタイム時、そのsxwファイルを読み込んで、 com.wonderlogic.jootemplates.Template#createDocument メソッドで、変数をHashMap?で置換したファイル(同じくsxwファイル)をテンポラリで生成。
  • そのファイルを読み込んで
    DocumentConverter converter = DocumentConverterFactory.getConverter();
    converter.convert(inputFile, outputFile,DocumentFormat.PDF_WRITER);
    でPDFに変換。

メモ。挙動。

  • 起動するプロセスはsoffice.bin,soffice.exe。
  • インストール時は、クイック起動は有効?
  • クイック起動が有効だと、サーバを起動してもクイック起動アイコンがでちゃう
  • クイック起動だけだと、サーバは起動してない。
  • クイック起動をOFFにしても、サーバ起動すれば接続可能。
  • やりたいことは、インストール時はクイック起動OFF。使いたいときだけサーバをサイレント起動して、使い終わったらサーバを落とす。

参考


この記事は

選択肢 投票
おもしろかった 2  
そうでもない 1  
  • サイレントで起動したいんだけどなぁ -- きの? 2006-03-04 16:18:44 (土)
  • タスクトレイのアイコンは、クイック起動になってる場合のみ表示されるんだね -- きの? 2006-03-04 16:22:11 (土)
  • OpenOffice.orgのコマンドラインオプションによれば-invisibleってのがある。確かにできたけど、今度はKillする方法が。。Javaから起動が制御できればいいんだよなあ -- きの? 2006-03-04 16:32:07 (土)
  • invisibleだけでなく、headlessってのもあるみたい。OpenOffice.orgで利用可能なコマンドライン引数 によると
-invisible
この引数は、Office APIを読み込むことでドキュメントやダイヤログを開くことを可能にしますが、ユーザーインターフェイスや起動時のビットマップを表示しませんし、最初にデフォルトドキュメントも開きません。。これの引数を使用した場合、Office APIかタスクマネーシャーもしくはkillコマンドを利用しなければ終了できません。
-headless
headlessモードでは、ユーザーインターフェイスやユーザーインターフェイスの相互作用なしにOfficeをスクリプトすることが可能となります。これは、典型的には外部スクリプトクライアントが使用する特殊なモードです。Officeにはユーザーインターフェイスがなく、そのライフタイムは外部スクリプトクライアントが制御します。

んー実行時どっちも画面に何も表示しないけど、invisibleはGUI使えるけど、headlessは使えない、ってこと?? じゃあteratermからheadlessは起動できんのかーと思ったけど、やっぱXに接続できないってでちゃうなあ。 -- きの? 2006-03-04 17:55:02 (土)

  • またまたいがぴょんさんのサイトで情報を見つけました。どうも私が進んでいきたい道の先を進んでることが多いです。JavaからOpenOffice?を起動する方法ですが、いがぴょんさんのサイトにあるOOoLauncher?というのが使えるみたいです。 -- きの? 2006-03-04 22:30:27 (土)
  • やっぱRuntime.execするしかないのかなあ??JavaAPIで起動してーよー -- きの? 2006-03-05 15:58:32 (日)
  • とりあえずサイレントインストールは http://oooauthors.org/en/FAQs/faqinstall/faqinstall/32/talkback/1128990824/discussionitem_view によると
    msiexec.exe /i openofficeorg20.msi /qn 
    というオプションでできることがわかりました。ただし、デフォルト値を変えるには Orca Tool ってのが必要らしい。 -- きの? 2006-03-07 15:03:45 (火)
  • さらに、http://oooauthors.org/en/FAQs/faqinstall/faqinstall/32/view?searchterm=skip%20registration によるとレジストレーションをスキップすることもできるらしい。 -- きの? 2006-03-07 15:06:49 (火)
  • フォントについて。フォントは基本的に、埋め込みになってしまうみたい。 -- きの? 2006-08-20 23:36:45 (日)
  • なのでMS*のフォントはLinuxにないから、他のフォントに置き換えられてPDFにうめこまれてしまう。キレイに出すにはIPAフォントをインストールしておくことだなあ。 -- きの? 2006-08-20 23:37:37 (日)
  • 置き換えられるフォントは設定可能。場所はウィンドウ>>オプションの、OpenOffice.org>>フォントで、設定できる。これがPDF出力時にも参照されるようだ。 -- きの? 2006-08-20 23:39:42 (日)

Top / OpenOffice.org / PDFを出力する

現在のアクセス:14459


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-09 (金) 13:38:20 (1716d)