LinuxでOpenOffice.orgファイルのテンプレートからファイルを自動生成
カテゴリー:Linux
OpenOffice.orgでテンプレート(雛形)となるファイルを作り、それを元に自動的にファイルを作成する方法を紹介します。
これを利用すればPHPやPerlなどのWeb申し込みフォームのデータを受信して印刷用の申し込み書のodgファイルを作成するなどの利用方法が考えられます。
まずはテンプレートを用意
OpenOffice.orgでテンプレート(雛形)となるファイルを作ります。雛形としてあとで変更する部分は「##name##」のようにして,後で自動的に置換します。
(##をつけているのはnameだけだと置換部以外にnameという部分がファイル内にあると誤作動してしまうためです。##のほかに%%なども試しましたが##が一番安定して動作するようです。)
*補足
置換語に日本語の文字列のテキストサイズが、置換前に指定したテキストサイズと一致しない問題が起こりました。
(##で囲んだ部分をテキストサイズを設定しても、置換後のテキストサイズが18になる)
原因はまだちょっとわからないので、調査中です。
これは##name##の前後に全角スペースを入力してからテキストサイズを指定すると解決しました。
(2007/04/08追記:全角スペースは前後に入れる必要はなく、テキスト中に含まれていれば大丈夫なようです。デザインが崩れることを考えると後ろのみに入れるのが望ましいと思います。)
例では以下の画像のようにテンプレートを作成しました。
書き換え
1.unzipコマンドでodgファイルの中からxmlファイルを抽出unzip filename.odg2.xmlファイルをsedコマンドで書き換えていく
sed 's/##name##/太郎/g' content.xml > content_temp2.xml
sed 's/##yuubin##/111-1111/g' content_temp2.xml > content_temp3.xml
sed 's/##addreerss##/テスト県テスト市テスト町/g' content_temp3.xml > content_temp4.xml3.sedで書き換えたxmlファイルを元のファイル名に戻す
mv content_temp4.xml content.xml4.zipコマンドでodgファイルにまとめる
zip -r newfile.odg *うまくいくとnewfle.odgは以下の画像のように書き換えられてます
自動化
書き換え時のsedの部分をWebフォームなどから入力した値利用して書きかえるようなプログラムをPHPやperlと連携して作成すれば自動でodgファイルを作成できるようになります。
mubon-blogのアップデート 3/23
カテゴリー:mubon-blog
デザインの「はてなダイアリーのテーマ」との互換
mubon-blogのデザイン機能を拡張し、
「はてなダイアリーのテーマ」と互換性を持つように変更しました。
はてなダイアリーのテーマのスタイルシートをそのまま仕様することができます。
「はてなダイアリーのテーマ」の詳細については以下をご覧ください。
はてなダイアリーのテーマ
しかし完全に対応できているわけではなく以下のような問題があります。
- 「はてなダイアリー」にはヘッダーのパンくずリンクに対応していない
- h1がタイトルになっているためタイトルへのデザインが制限される
上記の問題を解決するにははてなダイアリーのテーマ用のスタイルシートをさらに拡張する必要がありますが、そうすると互換性が損なわれてしまうため現在対策を考えています。
MS-IEでODSファイルにアクセスするとIPで保存される
カテゴリー:HTML & CSS
Internet ExplorerでWebサーバ上(Apache)のOpenOfficeで作成したODSファイルにアクセスすると
ZIPファイルとして扱われ保存画面が開いてファイル名に拡張子:zipがついてしまった。
(FireFoxでは問題なくodsファイルとして扱われた)
Etherealで通信をキャプチャーしてIEでODSファイルにアクセスしたときのheaderを見てみると以下のようにContent-Typeがtext/plaintになっていた。
Connection: close
Content-Type: text/plain
どうやらサーバ側にODSファイルのContent-Typeが登録されていないため
text/plainとしてかえされるようだ。
これがブラウザによってODSがダウンロードできない原因。
そこでODSをおいてあるディレクトリに以下の内容の.htaccessファイルを
作成した。
AddType application/vnd.sun.xml.calc .odsこの状態で確認するとIEでも確認できた。
さらに調べたところ以下の設定のほうが望ましいようです。
参考:Type Detection - Examples(OpenOffice.org)
AddType application/vnd.oasis.opendocument.spreadsheet ods
mubon-blogのアップデート 3/16
カテゴリー:mubon-blog
mubon-blogに以下のようなアップデートを行いました。
- サイドバーの「Recent Topics」に投稿日時も表示するように変更
- ブログのサイドバーの「Recent Comment」に最新のコメント5件表示されるように変更
よろしくお願いします

