投稿

11月, 2008の投稿を表示しています

【PHP】PHP-ExcelのFPDFを日本語化対応する(失敗編)

ここ の続き。FPDFを日本語対応させて、PHP-ExcelからPDF出力したときに文字化けせずに出力させるように奮闘したときのメモ。 FPDFの日本語対応自体は FPDF-Jのサイト と ここ のブログを読めば分かる。 PHP-ExcelのFPDFで変換している箇所を修正して、変換してみても文字化けが直らず。FPDFを単独で実行すると、日本語も正常に表示できるので、PHP-Excelでは何か特別な対応が必要なのだろうか・・・。 やれることはやったので、とりあえず諦め。 PHP-Excelで操作して、 JODConverter でPDF変換することにした。 前に設定した記事 。 <2009/03/06 追記> PHP-ExcelのPDF作成処理はTCPDFを使うように変更になった。 ここで書いた記事 を参考に。

PHPからエクセルを操作するPHP-Excelを使ってみた

この記事 の続編。 作成したExcelファイルを PDFにも変換できる PHP-Excel。 今のバージョンはExcel2007形式とExcel2003までの形式と両方読み込み+書き込みできるので、PHPでExcelを操作するのに最強のライブラリだと思う。 ダウンロードは ここ から。 まずは環境の準備。 試すだけなら、lamppをインストールすれば環境構築終了。 参考 。 ちなみにinstall.txtには次のように書いてある。 PHP version 5.2 or higher PHP extension php_zip enabled PHP extension php_xml enabled Microsoft Office 2007を持っていない場合は試用版をインストールするか、 Microsoftが配布している互換機能 をインストールすれば2000, XP, 2003のOfficeでも2007のファイルを読み書きできるようになる。 準備完了。 まずはサンプルプログラムを動かす。 Releases からPHPExcelをダウンロード。 Classesのファイルはlamppのライブラリディレクトリにコピー # cp Classes/* /opt/lampp/lib/php/ Testsディレクトリにエイリアスを設定して、Testsは書き込み可能にする。 # chmod 777 Tests これでWebからTests内のPHPファイルにアクセスすると、サンプルの動きを確認できる。runall.phpを実行すると全て実行される。 いろんなサンプルがあるし、ドキュメントも充実しているのでやりやすい。 これで動作確認ができたら、次にやりたいことは、既存のExcelファイルを開いて、特定のセルに値を挿入。 これはサンプルの07reader.phpと03formulas.phpを組み合わせれば簡単に実現。 日本語を扱う場合はUTF8で挿入する必要あり。PHPファイルの文字コードがUTF8ならOK。 最近のバージョンは過去のExcel形式も読み込んだり、書き出したりできる。 このライブラリ絶対流行ると思う。 --- でもPDF変換したときに元のファ

【Linux】OpenOffice.orgとJODConverterでExcelをPDF変換(設定編)

環境はCentOS5.2。 JREのインストールは前に Punoをインストールしようとして失敗したときの記事 を参考に。 JAVA_HOMEを設定してない場合は設定 # vi .bash_profile export JAVA_HOME=/usr/java/latest # source .bash_profile JODConverterは ここ からtomcat付きをダウンロード。 参考記事 # unzip jodconverter-tomcat-2.2.1.zip # cd jodconverter-tomcat-2.2.1 # bin/startup.sh <2009/03/24 追記> Office2007形式に対応するために、コンパイルから やってみた記事 も参考に。 ちなみにJODConverterのライセンスは GNU LGPL 。 これでJODConverterのサービスが起動するので、 http://<サーバ名>:8080/converter にアクセスして起動していることを確認。ポートを空けるのを忘れずに。 参考 。 この段階ではOpenOffice.orgのサービスを起動してないので変換はできない。 OpenOffice.orgは ここ から最新版をダウンロード。SDKとかUNOではなく、まるっとインストールするために「RPM,JREなし」を選択。 # tar xzvf OOo_3.0.0_LinuxIntel_install_ja.tar.gz # cd OOO300_m9_native_packed-1_ja.9358/RPMS/ デスクトップ環境はインストールしてないのでgnomeを削除 # rm -f ooobasis3.0-gnome-integration-3.0.0-9358.i586.rpm # rpm –ivh *.rpm インストール後は/opt/openoffice.org3/に配置される。 OpenOffice.orgをサービスとして起動。 # cd /opt/openoffice.org3/program/ # ./soffice -headles

社員旅行でもサプライズ

土日は社員旅行で渥美半島の先端まで行ってきました。 詳細スケジュールは 公式ブログの方 で。 他の社員のブログでも書いてありますが、今回の目玉はなんといっても社員同士の電撃結婚発表。 まさに電撃。 そして衝撃。 あまりの衝撃(感動)に 涙を流す者 も出る始末。 Mさんが入社してきて1ヶ月そこらでそんな展開になっているとは・・・。全く気付きませんでした。 もっと根掘り葉掘り聞いてみたかったですが、その日二人は親に挨拶に行くそうで、泊まらずにいってしまわれた。 二人ともおめでとう。お幸せに。 エクスブリッジの伝説に新たな一頁が追加された瞬間でした。

【Linux】OpenOffice.org-SDK, UREのインストールとPunoを設定(失敗編)

環境はCentOS5.2。 ここの記事 を書いたときに発見した Puno をインストールしようと奮闘したときのメモ。・・・できなかったんだけどね。 必要なツールをインストール。 # yum install gcc-c++ 他にもGNU makeとかzipとかないと後で怒られるけど、そのたびにインストールすればOK。 JavaのJREを ここ からLinux RPM (自己解凍ファイル) をダウンロード→インストール。 # ./jre-6u10-linux-i586-rpm.bin パスを通す # cd # vi ./.bash_profile PATH=$PATH:$HOME/bin:/usr/java/latest/bin # source ./.bash_profile OpenOffice.orgのSDKは ここ の右下にある「OpenOffice.org SDK」からダウンロード→インストール。 # ./OOo-SDK_2.4.0_LinuxIntel_install.sh 解凍場所を聞かれるので適当な場所を選択。 # rpm -ivh unpack_openofficeorg/RPMS/openoffice.org-sdk-2.4.0-9286.i586.rpm 何も聞かれずに/opt/openoffice.org2.4_sdk/にインストールされた。 インストールと設定の仕方は/opt/openoffice.org2.4_sdk/index.htmlを見れば結構詳しく書いてある(英語)。 OpenOffice.orgのUNO Runtime Environment(URE)を同じく ここ の右下にある「UNO Runtime Environment (URE)」からダウンロード→インストール。 (OpenOffice.orgを丸ごとインストールしてもUREがインストールされる) # ./OOo-URE_1.3_LinuxIntel_install_en-US.sh # rpm -ivh unpack_ure/RPMS/openoffice.org-ure-1.3-9221.i586.rpm ちなみにどこにインストールされたか

OpenOfficeのドキュメントをPHPから操作する

前の記事 の関連で調べたときのメモ。 OpenOffice.org のドキュメントはXMLをzip圧縮してあるだけなので、比較的簡単にPHPから扱えると思ったら、いいライブラリが見つからない。 Open Document Formatについては 前の記事 を参考に。 使えそうなのが OpenDocumentPHP 。 でも開発がしばらく止まっているので駄目そう。 とりあえず使ってみたけど(バージョンは0.6)、作ったファイルを読み込んで、特定のセルに値を挿入とかメソッドが見つからなかったので、残念ながらあきらめ。 PHP-Excel は盛んに更新されていて使いやすいので(PDFに変換できるしね→でも日本語は文字化け)、OpenOfficeの方も頑張ってほしい。

OOXML(Office Open XML)とODF(Open Document Format)の違い

OOXML ( O ffice O pen XML )はMicrosoft Office 2007で採用されたファイルフォーマット。 wikipedia 。 Office 2003までの互換を考慮しているため仕様が複雑。 ODF ( O pen D ocument F ormat for Office Applications)はオフィススイート用の標準規格として策定されたファイルフォーマット。 OpenOffice.org で採用されたファイルフォーマット。 wikipedia OOXMLに比べシンプル。 実質 MS Office 2007(OOXML) VS OpenOffice.org(ODF) という図式。 両方とも規格の内容は公開されていて、基本XML(と画像などのバイナリ)をzip圧縮しているだけ。 なので、外部アプリケーションからの操作などもやりやすい。 違いを解説しているは次のサイト。 2007 Officeの文書フォーマット「OOXML」を正しく知る OOXML: 何が問題なのか ODFに関するリンク集

XREAサーバへJoomlaのインストール

イメージ
そろそろXoopsからJoomlaへ移行したいと思い立ち。とりあえずJoomlaをインストールしたときのメモ。 Joomlaは ここ からダウンロード。 初めてインストールする場合は日本語パックが付いている方が管理画面の操作がわかりやすい。 XREAサーバにアップロードするときは解凍したのをアップロードすると恐ろしく時間が掛かるので、サーバで解凍した方が全然早い。 やり方はXREAのサーバ管理画面で「ホスト情報登録」しといて、SSHでアクセス。ユーザ名、パスワードはFTPと同じ。SSHでアクセスするツールはTeraTermが便利。 参考 。 サーバで解凍するコマンドは $ tar –xzvf Joomla_1.5.7-Stable-Full_Package.tar.gz カレントディレクトリにすべて解凍されるので、あらかじめディレクトリを作って作業すること。 zipの場合は $ unzip Joomla_1_5_6_ja-JP_Stable.zip データベースはあらかじめUNICODEで作成しておく。 あとはhttp://<サーバ名>/にアクセスすれば自動でインストールが始まる。 設定の確認では次のような.htaccessを置いておけばほとんど「はい」になる。 php_flag register_globals off php_flag output_buffering off php_flag mbstring.encoding_translation On php_value mbstring.language neutral php_value mbstring.http_input auto configuration.phpはいいえのままだけど、これはこのままでOK。 最初configuration.php-distをコピーしておいたら次のFTPの設定で Error: the XML response that was returned from the server is invalid. と怒られたので、用意しておいたら駄目みたい。 FTPの設定はXREAのFTPアカウントそのままでOK.「FTP初期フ

エルゴヒューマン(Ergohuman)の高級椅子

イメージ
2年ぐらい前に買ったエルゴヒューマンの椅子を紹介。 座りながら寝れるような椅子を探していてたどり着いた。 8万円するぐらいあって、座り心地は最高。メッシュで構成されているので、全く蒸れない。高さが調整できるのはもちろん、座る所を前後に調整できたりする。 詳しくは ここ を参照。 椅子は個人によって好みが分かれるので、買うなら試しに座ってから買った方がよい。これは名古屋の東急ハンズに置いてあるので、気になる人は座りに行ってみては? 会社の椅子もこれにしたい・・・。

【PHP】2つのパス(URL)を結合する関数を作ってみた

プログラム内で2つのパス(URL)を結合することがよくありますが、 $sTop = “http://exbridge.jp/”; $sUrl = $sTop . “index.php”; この最初の文字列の最後にスラッシュがあるかないかで結合の仕方が変わってくる。いちいち気にしたくないので、自動で補完して結合してくれるような関数がないものかと探してみたけど、PHPにはないみたい。 VBScriptでは BuildPath .NETでは combine しょうがないので自作して petitwork に組み込みました。円マーク「¥」にも対応しているのでURLでもローカルパスでも使えるはず。 他にスマートな方法があれば教えてほしい。 /** * 2つのURL(パス)を結合するときにスラッシュがある場合でもない場合でも * うまいこと結合して結果を返す * * @access public * @param string $sPath1 結合文字列(前) * @param string $sPath2 結合文字列(後) * @param string $sSeparate 連結文字列。デフォルトは「/」 * @return string/boolean 2つのパスの結合結果(失敗時はfalse) */ function getBuildPath($sPath1, $sPath2, $sSeparate = DS ) { $sReturn = ''; if (strlen($sPath1) == 0) { return false; } $sPath1 = rtrim($sPath1, '\/'); $sPath2 = ltrim($sPath2, '\/'); $sReturn = $sPath1 . $sSeparate . $sPath2; return $sReturn; }

【PHP】Webで帳票を作成するのにPDF変換を利用する方法

システムで入力したデータを帳票として印刷したいという要望はどこにでもありますが、それを実現するための方法は様々です。 Google先生に聞いてみると 有償のツールがいろいろと出てきます。 GUIで操作できるし、開発工数も削減できるので、トータルでみると買ったほうがいいかも。 以下はフリーで使い勝手のいいPDF作成・変換ツールがないものかと探したメモ。 環境はLinux(CentOS5.2) + Apache + PHP 名称 説明 FPDF 簡単にPHPからPDFを出力できるPHPのクラス。簡単なものならこれで十分。でも日本語対応が不十分らしい。UTF-8に対応していない。日本語対応するのは難しくない。 FPDI を使えば既存PDFの読み込みも可能に。 本家サイト 。 日本語サイト 。 TCPDF FPDFを元に開発された。UTF-8に標準で対応。 こっちも日本語対応が不十分らしい 。 FPDI を使えば既存PDFの読み込みも可能に。今ならFPDFよりこっちがおすすめ。 本家サイト 。 日本語解説サイト 。 HTML2FPDF その名の通りHTMLをPDFに変換できる。 サンプル を見る限りかなり便利そう。 中身はFPDFが動いていて、HTMLタグに合わせて位置を調整しているらしい。 本家サイト 。 Sorceforge 。 Apache FOP XMLからPDFに変換するためのJavaライブラリ。実行するためにはJavaの実行環境が必要。 詳しくは wikipedia を読む。 XML→ XSL-FO →PDFという流れらしい。 参考サイト 可能性は無限大。難易度も無限大。 PHPで利用する場合はXMLを作っておいて、コマンドラインで実行 本家サイト 。

懐かしのHappy Hacking Keyboard上位モデルに日本語配列

大学時代にHappy Hacking Keyboard(英語配列)を使っていて、その使い勝手が忘れられず Happy Hacking Keyboard Lite2 とかに手を出していましたが、上位モデルが日本語配列になって新登場するらしいです。 PFU、“Happy Hacking Keyboard”上位モデルに日本語配列製品を追加 日本語配列だけど、Controlキーがちゃんとaの横にあるのが素晴らしい。 (この辺は変更できるみたい) Windowsを使う限りファンクションキーとテンキーは手放せないですが、LinuxやUnixを使う場合は正に最適なキーボードなので、サーバ用に一つ買っておきたい(と思ってます)。 でも2万5000円はちょっときついなー。

オンサイトサポートとは(=出張サポート)

オンサイトサポート(on-site support)(site=現場)とは、製品が故障した際に技術者が現地に行くサポート方式。 用語説明 。 事前準備なしに現場に行って対応するサポート に対して用いることが多い 要は「出張サポート」 メーカーの場合、電話サポートと区別するためによく使われる。 システム開発では 不具合の連絡 → 開発環境で現象確認 → ネットワーク対応 or 現地対応 となるため、あまり聞き慣れない言葉。

【Linux】CentOSでFAX送信サーバ構築

システムからFaxを送信する必要があったので、調査&設定したメモ。 環境はCentOS5.2。 FAXモデムは外付けの オムロンME5614D を選択、外付けの方がやりやすいらしい。参考になるのは ここ と ここ と ここ 。 以下実行したコマンド。 まずは、faxを送信するソフトウェアを導入。 #yum install efax ちなみにバージョンは0.9-27.2.1。 その後、PDFとかPostScriptを操作するツールを導入。 # yum install poppler-utils ghostscript faxモデムはシリアルポート(com1)に接続し、デバイスの接続権限を設定。 # chmod 666 /dev/ttyS0 シェルスクリプト(/usr/bin/fax)のFaxデバイス名が/dev/modemになっているので、シンボリックリンクを作る。 # ln -sf /dev/ttyS0 /dev/modem ロックファイルの置き場所の権限を設定 # chmod 777 /var/lock efaxを使ったシェルスクリプトが/usr/bin/faxにあるのでこれを さっきのリンク を参考に修正(バックアップをとってから)。 # cp /usr/bin/fax /usr/bin/fax-bak # vi /usr/bin/fax 変更箇所↓ FROM="+81 052 111 2222" #81は国番号。052-111-2222の場合 NAME="from AURORA.Fax" PAGE=a4 TELCVT='sed -e s/+81 */0/'            # Japan PDFを作成して動作確認。 # pdftops /tmp/Book1.pdf # fax make Book1.ps # fax send 052-111-2222 Book1.ps.001 番号は「-(ハイフン)」があってもなくても送れる。複数ページに分かれる場合は # fax send 052-111-2222 Book1.ps.* とすれば一括

DBDesignerをダウンロード

社内でER図を DBDesigner で書いているので、それをダウンロードするためのメモ。 アメリカの会社がオープンソースで開発していたらしいけど、今は停止しているみたい。その最新版は DBDesigner4 。 日本語化は ここ 。 そっからforkしてSourceForgeで開発されているのが DBDesigner-fork 。こっちではPostgreSQLでも対応するよう開発が進められているようですが、最近はリリースされてないみたい。 なるべく早くリリースされてほしいなぁ。 アニキ に先を越されたけど、せっかく書いたのでアップ。 PHP用DB接続支援ライブラリ「somfa」

オープンソースでシンクライアントを実現する「openThinClient」

前の記事 とかでシンクライアントについて書きましたが、オープンソースのソフトウェアを使ってシンクライアント化を実現できるみたいです。 openThinClient 導入する手順は こちら 。 専用OSを各クライアントで起動するため、使えるソフトウェアに制限があるみたい。まだまだ実用レベルまでは時間がかかりそう。 その他VMwareなどで実現したシンクライアントの導入事例は ここ から。 suganuma@エクスブリッジ.jp

Googleカレンダーの予定を携帯に通知する

イメージ
Googleカレンダーのアラートを携帯に送れるようなので設定してみた。 Googleカレンダーの設定で「モバイルの設定」から自分の携帯のアドレスを入れて、確認コードを送信。携帯に確認コードが届くので、それを入力して作業完了。 ↓こんな画面。 メールの転送機能でも同じことが実現できますが、とりあえず設定しとくと後で役に立ちそう。 ここ でも書いたけど、携帯でGoogleカレンダーにアクセスするには http://www.google.com/calendar/m あとは携帯でGoogleカレンダーの予定を新規作成できるようになってほしい。 名古屋のおもしろ会社エクスブリッジ

Linux上で.NETアプリケーションを動作させるMONOプロジェクト

.NETをLinux上で動作させようと頑張っている MONOプロジェクト 。 現在の最新版は2.0で多くの.NETアプリケーションが動くようになったみたいですが、まだ実用レベルではないようです。 MONOプロジェクトについて知りたい場合は wikipedia を読むのが早い。 もし、MONOプロジェクトが完全に.NET Frameworkと互換性を持つようになれば、開発工数削減のためにVisual Studioで開発して、CALの節約のためにLinuxサーバで動かすシステムが出てくるような気がします。 たぶん、まだまだ先の話だと思いますが。 名古屋でプロのSEを目指す