ノリブログ?

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.odg
2.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.xml
3.sedで書き換えたxmlファイルを元のファイル名に戻す
mv content_temp4.xml  content.xml
4.zipコマンドでodgファイルにまとめる
zip -r newfile.odg *

うまくいくとnewfle.odgは以下の画像のように書き換えられてます

自動化

書き換え時のsedの部分をWebフォームなどから入力した値利用して書きかえるような
プログラムをPHPやperlと連携して作成すれば自動でodgファイルを作成できるようになります。


mubon-blogのアップデート 3/23

カテゴリー:mubon-blog

デザインの「はてなダイアリーのテーマ」との互換


mubon-blogのデザイン機能を拡張し、
「はてなダイアリーのテーマ」と互換性を持つように変更しました。

はてなダイアリーのテーマのスタイルシートをそのまま仕様することができます。
「はてなダイアリーのテーマ」の詳細については以下をご覧ください。
はてなダイアリーのテーマ

しかし完全に対応できているわけではなく以下のような問題があります。

  • 「はてなダイアリー」にはヘッダーのパンくずリンクに対応していない
  • h1がタイトルになっているためタイトルへのデザインが制限される

上記の問題を解決するにははてなダイアリーのテーマ用のスタイルシートをさらに拡張する必要がありますが、そうすると互換性が損なわれてしまうため現在対策を考えています。

mubon-blogのアップデート 3/20

カテゴリー:mubon-blog


mubon-blogに以下のようなアップデートを行いました。

  • トップに全記事を表示していたのを、設定した記事件数でページ分けして表示できるようにしました。
  • サイドバーに記事捌アーカイブのボックスを追加しました。
これでスクロールしまくることなく古い記事をみることができるようになりました!
よろしくお願いします。

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件表示されるように変更
次回更新時には最新トラックバックも表示されるように変更する予定です。
よろしくお願いします

<< Before