IT-Tecスクラップ

IT技術に関する覚え書き。
Hu-BasicからVistaまで、思いついたら都度更新。

キャッシュを行わないようにするには(画像編)

2006年08月30日 15時07分24秒 | HTML
メタタグでコンテンツそのもののキャッシュをしない場合でも、画像はローカルのものが使われることがある。
その場合は、Javascriptで画像ファイルにTimeStamp(現在時刻)を付与して呼び出すとよい。
常に最新の画像が表示されるようになる。

(例)
<html>
<head>

<!-- こいつらだけでは心もとない -->
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META EQUIV="expires" CONTENT="0">

<script language="JavaScript">
function reloadImage() {
     var fName = "logo_img.jpg?"+(new Date()).getTime();
     document.images["logo"].src = fName;
}
</script>

</head>

<body onload="javascript:reloadImage()">
<img src="上でセットするからここはなんでもよい" name="logo">
</body>
</html>

PDFlibの導入

2006年08月29日 14時36分47秒 | PHP
  • 概要

  • PHPlibはPHPでPDFファイルをハンドルするための有償ライブラリである。
    下記の3形態がある。
    A PDFlib単体(73,500円) 真っ白なPDFファイルに自分で座標を指定して文字や線を引くことしかできない。
    B PDFlib+PDI(147,000円) Aに加えて、既存の
    PDFファイルを読み込むことができる。
    C PPS[PDFlibパーソナライゼーションサーバ](220,000円) Bに加えて、AdobeAcrobatのプラグインとして「ブロック」を設置できるようになる。PHPからはブロック名を直接指定できるので、座標を意識する必要がなくなる。


    通常の帳票出力では「ひな型を使用して可変項目をプログラムから出力する」というのが一般的だろう。
    それを行うためには最低でもB、デザインとプログラムを分離して行うのであればCが必要となる。

  • 座標単位について

  • 座標の単位は「PDFポイント」と呼ばれる独自単位である。「1ポイント≒0.3528mm」なので、当然誤差が発生する。
    また、マニュアルでは座標をメートル法に拡大する関数(PDF_scale(p, 28.3465, 28.3465))が紹介されているが、このAPIを使うとフォントのポイントや線の幅などにも影響するようなので、自分で変換用のメソッドを作った方が無難だ。

    /* ================================================== */
    /* 指定値をセンチメートルからPDFポイントに変更する
    /* 指定する箇所は直感的に分かりやすいcm単位で指定し、
    /* APIに渡す直前にPDFポイントに変換する
    /* ================================================== */
    function ChangeScaleFromCentiMeter($val) {
    $val = $val * 28.3465;
    return $val;
    }
    /* ================================================== */

  • 始点・終点について

  • 通常の座標系のように(x1,y1)=左上、(x2,y2)=右下ではなく、(x1,y1)=左下、(x2,y2)=右上となる。
    y軸が反転しているので要注意。

  • 技術サポートについて

  • ライセンス購入前は、技術的質問は受け付けてくれない。
    例えば「指定領域への均等割付を行う」場合に、「Q:均等割付はできますか?」→「A:できる」と答えてくれるが、その方法は教えてもらえない。

    またライセンス購入後は5インシデントあたり5万円で技術的質問を受け付けている。
    コスト的に見て「技術的サポートは受けられない」という場合が多いのではないだろうか。

  • FPDFについて

  • パッケージのCを購入できず、自分で座標を指定することになった場合は、フリーウェアの「FPDF」の利用も検討してみてはどうだろうか。

    FPDF日本語サイト

    キャッシュを行わないようにするには

    2006年08月28日 16時56分34秒 | HTML
    【方法】
    <HEAD>タグ内に下記の<META>タグを記述する。

    <HEAD>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META EQUIV="expires" CONTENT="0">
    </HEAD>

    【補足】
    このエントリでも使用しているが、
    開始タグのエスケープ文字列は「&lt;」
    終了タグのエスケープ文字列は「&gt;」
    である。

    NULLの置換

    2006年08月28日 16時41分44秒 | PostgreSQL
  • COALESCE

  • 【機能】
    NULL値の置換

    【例】
    SELECT COALESCE(ITEM_CD,'') AS ITEM_CD FROM M_ITEM;
    →ITEM_CDのNULLを''に変換して取得する。

    【補足】
    NULLが含まれるカラムを||で連結すると、連結後の値はNULLになる。
    このような場合は、全カラムをCOALESCEで置換してから連結すればよい。

    Postmasterの再起動

    2006年08月28日 12時36分57秒 | PostgreSQL
  • Postmasterの停止

  • 【コマンド】
    pg_ctl -D datadir stop

  • 「-D」オプション
  • データベースファイルの場所を指定。省略した場合は、環境変数PGDATAが使われる。

    【例】
    datadirが「/usr/local/pgsql/data」の場合
    pg_ctl -D /usr/local/pgsql/data stop

  • Postmasterの起動

  • 【コマンド】
    pg_ctl -o -i -D datadir start

  • 「-D」オプション
  • データベースファイルの場所を指定。省略した場合は、環境変数PGDATAが使われる。

  • 「-o」オプション
  • 追加オプションの指定。
    追加パラメータは通常、1つのグループとして渡ることを保障するために、単一もしくは二重引用符で囲まれる。
    TCP/IPでデータベースにアクセスする場合、-iオプションを指定する。

    【例】
    datadirが「/usr/local/pgsql/data」の場合
    pg_ctl -o -i -D /usr/local/pgsql/data start

  • 補足

  • --help オプションで、pg_ctl のオプション一覧を表示できる。
    また、postmaster --help で postmaster のオプションを表示できる。