投稿者「後藤 祐一」のアーカイブ

後藤 祐一 について

フリーランスとしてWebプログラミングを行っています。 宜しくお願いします。

jQuery snowfallで画面に雪を降らせる

ここでは画面に雪を降らせるjQuery snowfallの紹介をしていきます。

snowfall

デモはこちら
https://office-goto.info/demo/snowfall/

Jquery Snowfall Plugin 1.4をダンロード
http://www.somethinghitme.com/2010/12/09/jquery-snowfall-plugin-1-4/

Jquery Snowfall Plugin 1.6で画像を降らせる場合クリアがうまく動作しなかったので1.4のソースをカスタマイズしていきます。

headで読み込み

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="./snowfall.jquery/snowfall.jquery.js"></script>

snowfall.jquery.jsを読み込んでください。

snowfall.jquery.jsの編集

73行目を画像が降らせれるように修正します。

var flakeMarkup = "<img src="" + options.image + "" id="flake-" + this.id;
    flakeMarkup += "" style="width: " + this.size + "px; height: " + this.size + "px;";
    flakeMarkup += "; position: absolute; top: " + this.y + "px; left:" + this.x;
    flakeMarkup += "px; font-size: 0px; z-index: " + options.flakeIndex;
    flakeMarkup += ";" class="snowfall-flakes">";

パラメーターの解説

$(function() {
    $(document).snowfall({
        image      : 'img',      // 画像
        // flakeColor : '#ffffff',  // 画像を使用しない場合色で指定
        flakeCount : 20,         // 数
        flakeIndex : 99999,      // スタイルシートのz-indexの値
        maxSpeed   : 3,          // 最大速度
        minSpeed   : 1,          // 最小速度
        maxSize    : 20,         // 最大サイズ
        minSize    : 2,          // 最小サイズ
        shadow     : true        // 影
    });
});

結構たくさんパラメータをいじれるので、お好みにカスタマイズしてください。

クリア

$(document).snowfall('clear');

flakeCount: 99999などと無理なパラメータを渡すとブラウザがクラッシュしてしまうので気をつけてください。

Ubuntu VPS Postfix OpenDKIMインストール

ここではUbuntu VPSでopenDKIMのインストールについて解説しています。

OpenDKIM インストール

$ sudo apt-get install opendkim opendkim-tools

OpenDKIM 設定ファイル1

$ sudo vim /etc/opendkim.conf

設定内容

Domain                  example.com
KeyFile                 /etc/postfix/dkim.key
Selector                mail
SOCKET                  inet:8891@localhost

OpenDKIM 設定ファイル2

$ sudo vim /etc/default/opendkim

設定内容

SOCKET="inet:8891@localhost"

Postfix 設定ファイル

$ sudo vim /etc/postfix/main.cf

追加内容

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

OpenDKIM key作成

$ opendkim-genkey -t -s mail -d example.com

OpenDKIM keyのコピー

$ cp mail.private /etc/postfix/dkim.key

/etc/opendkim.confのKeyFileで設定した場所に移動します。

OpenDKIM レコードを表示

$ cat mail.txt
mail._domainkey IN TXT "v=DKIM1; k=rsa; t=y; p=MKOonifuenisdnisufmn
hiusdoIUHNLOmOpMgdRdu・・・" ; ----- DKIM key mail for example.com

DNSにレコードを追加する

ホスト名 レコード TTL VALUE
mail._domainkey TXT 5 v=DKIM1; k=rsa; t=y; p=MKOonifuenisdnisufmn・・・

サービス スタート・再起動

$ sudo service opendkim start
$ sudo service postfix restart

OpenDKIMレコード確認コマンド

$ dig mail._domainkey.example.com TXT
;; ANSWER SECTION:
mail._domainkey.example.com. 300 IN   TXT
"v=DKIM1\; k=rsa\; t=y\; p=MKOonifuenisdnisufmn・・・"

となれば成功です。

Ubuntu VPS Postfix送信がスパムに入ってしまう対策 SPFレコード

ここではUbuntu VPS Postfix送信がスパムに入ってしまう対策について解説しています。

DNSにSPFレコードを追加する

ホスト名 レコード TTL VALUE
example.com TXT 5 v=spf1 +ip4:201.111.22.22 -all

VALUEの「201.111.22.22」をご自分のサーバーipアドレスに変更してください。

設定確認

$ nslookup -type=TXT example.com
Non-authoritative answer:
example.com   text = "v=spf1 +ip4:201.111.22.22 -all"

となれば成功です。

Ubuntu VPS Postfix インストール

ここではUbuntu VPSにPostfixをインストールする方法について解説しています。

Postfix インストール

$ sudo apt-get update
$ sudo apt-get install postfix

インストール画面が立ち上がるので、「メール設定の一般形式」をインターネットに選択し、
ホスト名を入力してインストール完了です。

設定ファイル

$ sudo vim /etc/postfix/main.cf

設定項目

mail_name = unknown
myhostname = example.com
mydomain = example.com

最低限この項目でメールの送信ができます。

設定ファイル編集後再起動

$ sudo service postfix start   #起動
$ sudo service postfix restart #再起動

mailコマンド インストール

$ sudo apt-get install mailutils

メール送信 コマンド

$ mail info@example.com
Cc:
Subject: 件名
メッセージ本文

メッセージ本文入力後「Ctrl + d」でメール送信。

メール送信 PHP

<?php

    mb_language('Ja');
    mb_internal_encoding('UTF-8');
    $to = 'to@example.com';
    $subject = '件名';
    $body = "メッセージ内容\n"
          . "¥nは改行を意味します。";
    $from = 'From:'.mb_encode_mimeheader('企業名など').'<from@example.com>';
    mb_send_mail($to, $subject, $body, $from);

メールが届けば設定完了です。

関連記事
Ubuntu VPS Postfix送信がスパムに入ってしまう対策 SPFレコード
https://office-goto.info/linux-ubuntu/postfix-anti-spam/

Ubuntu VPS Postfix OpenDKIMインストール
https://office-goto.info/linux-ubuntu/postfix-opendkim-install/

TCPDF FPDIでPDFファイル生成

ここではTCPDF、FPDIを使ったPHPでのPDFファイルの生成を解説していきます。

tcpdf

TCPDFのダウンロード
http://sourceforge.net/projects/tcpdf/files/

FPDIのダウンロード
http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/
FPDIはFPDIとFPDI_TPLの2つダウンロードしてください。
FPDI_TPLのfpdf_tpl.phpはFPDI直下に置いてください。

UTF-8で日本語フォント

TCPDF標準フォントならkozgopromediumになりますが数字がうまく表示されなかったのでIPAフォント、TTFファイルのIPA Pゴシックをダウンロードします。
http://ossipedia.ipa.go.jp/ipafont/ipafont/download.html

サンプルソース

<?php
  
    require_once('./tcpdf/tcpdf.php');
    require_once('./fpdi/fpdi.php');
  
    $pdf = new FPDI();
  
    // 余白設定
    $pdf->SetMargins(0, 0, 0);
    // セルパディング設定
    $pdf->SetCellPadding(0);
    // 自動改ページ
    $pdf->SetAutoPageBreak(false);
  
    // ヘッダ、フッダを使用しない
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
  
    // 1ページ目を準備
    $pdf->AddPage();
  
    // フォント設定
    $font = $pdf->addTTFfont('./tcpdf/fonts/ipagp.ttf', 'TrueTypeUnicode', '', 32);
    $pdf->SetFont($font, '', 10);
  
    // PDFファイル読み込み
    $pdf->setSourceFile('./pdf/include.pdf');
    $page = $pdf->importPage(1);
    $pdf->useTemplate($page);
  
    // Text
    $pdf->Text(10, 10, 'こんにちは世界');
  
    // 改行
    $pdf->Ln();
  
    // セル
    $pdf->Cell(70, 10, 'セル', 1, 0, 'L');
  
    $pdf->Ln();
  
    // HTML表記
    $pdf->writeHTML('<h1>html表記</h1>', true, 0, true, 0);
  
    // 画像表示
    $pdf->Image('./image/image.jpg', 10, 10);
  
    // PDF出力
    $pdf->Output('sample.pdf', 'D');

解説

$pdf->SetMargins(0, 0, 0); (9行目)
余白の設定をします。

$pdf->SetCellPadding(0); (11行目)
セルパディングを設定します。

$pdf->SetAutoPageBreak(false); (13行目)
自動改ページするかをtrue or falseで指定してください。

$pdf->setPrintHeader(false); (16、17行目)
ヘッダー、フッダーを使用するかをtrue or falseで指定してください。

$pdf->AddPage(); (20行目)
1ペーシ目を準備します。

$pdf->SetFont($font, ”, 10); (24行目)
フォントサイズを設定します。

$pdf->setSourceFile(‘./pdf/include.pdf’); (27~29行目)
テンプレートになるPDFファイルがあれば読み込んでください。

$pdf->Text(10, 10, ‘こんにちは世界’); (32行目)
x座標、y座標、表示する文字列で指定してください。

$pdf->Ln(); (35行目)
PDF内での改行ができます。

$pdf->Cell(70, 10, ‘セル’, 1, 0, ‘L’); (38行目)
セルの幅、高さ、文字列、枠線で囲むかの指定、出力後のカーソルの移動方法、テキストの整列で指定してください。

$pdf->writeHTML(); (43行目)
出力するHTMLテキスト、改行するかしないか、背景の塗つぶし指定、前回の高さ設定を引き継ぐかで指定してください。

$pdf->Image(‘./image/image.jpg’, 10, 10); (46行目)
画像ファイル、x座標、y座標、幅、高さで指定してください。

$pdf->Output(‘sample.pdf’, ‘D’); (49行目)
I: ブラウザに出力する(既定)、保存時のファイル名が$nameで指定した名前になる。
D: ブラウザで(強制的に)ダウンロードする。
F: ローカルファイルとして保存する。
S: PDFドキュメントの内容を文字列として出力する。

関連記事
TCPDF FPDIでPDF読み込みエラーを解消 setSourceFile
https://office-goto.info/php/tcpdf-fpdi-setsourcefile/