SQLの窓 イラストAC フリー素材

2014年10月29日

VBScript から実行する PHPコードの PDF処理のサンプル

PDF 処理を行う為に、PHP を利用していますが、実行はエクスプローラから VBScript(WSH) の実行として開始します。

PDF の処理としては少し古いですが、FPDF を使用しています。

php.exe にパスが通っている必要があります

PDF を扱う為のライブラリは、全て WEB 上に置いてますので、インターネットさえ繋がっておれば、どこからでも利用できます。WSH のインラインストリームというか、ソースの中に PHP のソースがあるのがミソです。PHP は、テンポラリファイルとして書き出されて、スクリプトがあるディレクトリに PDF が作成されます。

実行すると、フォルダ選択ダイアログが表示されて、その中のファイルサイズを取得して PDF に出力します。

最後の処理として、PDF を表示する為に、Windows に登録されている .pdf の拡張子に対するアプリケーション(普通は Adobe Reader)で開くようになっていますが、無い場合は対象となるアプリケーションが無いというメッセージが表示されます。



folder_size_phppdf.wsf
<JOB>
<COMMENT>
*********************************
 WEB WSH 実行スケルトン
 ★★★ PDF 作成 ★★★
*********************************
</COMMENT>

<COMMENT>
*********************************
 外部スクリプト定義
*********************************
</COMMENT>
<SCRIPT
	language="VBScript"
	src="http://homepage2.nifty.com/lightbox/laylaClass.vbs">
</SCRIPT>

<SCRIPT language=VBScript>
' *******************************
' 処理開始
' *******************************
Call laylaFunctionTarget( "http://homepage2.nifty.com/lightbox/" )
Call laylaLoadFunction( "baseFunction.vbs" )

target = SelectDir( "対象フォルダを選択して下さい" )
if target = "" then
	Wscript.Quit
end if

strParam = "$DIR," & Replace( ScriptDir, "", "" )
strParam = strParam & ",$TARGET," & Replace(target, "", "")
Call RunPhpParam( "TargetList", False, strParam )

</SCRIPT>

<COMMENT>
*********************************
 実行する PHP ( php.exe にパスが通っている必要があります )
 php5 でテストしています
 php.ini の allow_url_include を On にして下さい
*********************************
</COMMENT>
<RESOURCE id="TargetList">
<![CDATA[
<?php
error_reporting(E_ALL & ~E_DEPRECATED);
require('http://homepage2.nifty.com/lightbox/phppdf/japanese.php');

$GLOBALS['margin'] = 5;

$pdf = new PDF_Japanese( 'P', 'mm', 'A4' );

$pdf->AddSJISFont("MSPGothic");
$pdf->AddPage();
# 塗りつぶす為の色
$pdf->SetFillColor( 200, 230, 185 );

# タイトル印字
$pdf->SetFont('SJIS','B',20);
$text = 'ディレクトリ容量の表示';
$pdf->Text( $GLOBALS['margin'], 13.5, $text );

# 通常印字フォント
$pdf->SetFont('SJIS','',10);
# ページ内の印字開始高さ
$pdf->Ln(10);

$Fso = new COM("Scripting.FileSystemObject");
$Folder = $Fso->GetFolder("$TARGET");
$SubFolder = $Folder->SubFolders;

$pdf->SetX( $GLOBALS['margin'] );
$pdf->SetTextColor( 0, 0, 255 );
$pdf->Cell( 100, 6, "ディレクトリ名称" , 1, 0, 'C', 1 );
$pdf->SetTextColor( 0, 0, 0 );
$pdf->Cell( 20, 6, "サイズ", 1, 0, 'C', 0 );
$pdf->Ln();

foreach($SubFolder as $obj) {

	$pdf->SetX( $GLOBALS['margin'] );
	$pdf->SetTextColor( 0, 0, 255 );
	$pdf->Cell( 100, 6, $obj->Name, 1, 0, 'L', 1 );
	$pdf->SetTextColor( 0, 0, 0 );

	try {
		$pdf->Cell( 20, 6, trim((floor($obj->Size / 1000) / 1000)), 1, 0, 'R', 0 );
	}
	catch( Exception $e ) {
		$pdf->Cell( 20, 6, "エラー", 1, 0, 'L', 1 );
	}

	$pdf->Ln();

}


$pdf->Output("$DIR\sample.pdf");

# *******************************
# Windows 経由の 外部実行
# *******************************
$WshShell = new COM("WScript.Shell");
$command = "RunDLL32.EXE shell32.dll,ShellExec_RunDLL ";
$command .= ""$DIR\sample.pdf"";
$WshShell->Run( $command, 1, TRUE );

print "処理が終了しました\n";

?>
]]>
</RESOURCE>

</JOB>

※ 初回投稿 : 2007-03-14


【VBScriptの最新記事】
posted by at 2014-10-29 01:04 | VBScript | このブログの読者になる | 更新情報をチェックする


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX