VBScript : TCPDF 用埋め込みフォント作成( 日本語フリーフォント )

  ダウンロードと概要




ブラウザでダウンロード

VBScript : TCPDFで MSフォントが使えるようにする全自動スクリプトで作成したのは、
業務で使う非埋め込みフォントですが、フリーフォントは逆に Windows に一つ一つインスト
ールするかどうかは完全に個人の範疇なので、全て埋め込みである必要があります。

以下のサービスは、フリーフォントに多少のエフェクトを付加して画像化するものですが、
PDF にするには、埋め込みフォントが必要だったので、このスクリプトで全て作成しました
※ windows で作成してからアップロードしています

Freefont_pdf
フリーフォントで簡単ロゴ作成




  実行スクリプト



非埋め込みフォントとの違いは、makefont.php の最後の引数として 0 を渡さない事と、
フォントtypeは、TrueTypeUnicode のままである事と、.z と .ctg.z ファイルを使用する
事です。

<JOB>
<COMMENT>
************************************************************
TCPDF にフォント埋め込み型としてフリーフォントをインストール

■ 1) フリーフォントを選択する
■ 2) TCPDF に登録する

■ 使用方法
   1) strTCPDF に、PHP で使用する時の TCPDF のパスをセット
   2) strPHP に php.exe があるパスをセット
   3) このスクリプトをエクスプローラから「開く」
   4) フリーフォント( ????????.ttf ) を選択

■ 著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私(lightbox)が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。
************************************************************
</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" )
Call laylaLoadFunction( "toolFunction.vbs" )


' ***********************************************************
' 対象
' ***********************************************************
' PHP で使用する時のパス
strTCPDF = "C:\user\web\tcpdf_5_5_008"
' PHP のパス
strPHP = "C:\php"

' ***********************************************************
' Cscript.exe の実行
' ***********************************************************
Crun2 80

strValue = OpenFileName3
if strValue(0) = "" then
	Wscript.Quit
end if

strFont = LCase(Fso.GetBaseName(strValue(0)))
strPath = Fso.GetParentFolderName(strValue(0)) 

if not OkCancel( strValue(0) & " を TCPDF に埋め込みフォントとして登録しますか?" ) then
	Wscript.Quit
end if


' ***********************************************************
' UFM 作成
' ***********************************************************
Call CreateUfm( strValue(0), strPath, strFont )

' ***********************************************************
' 編集
' ***********************************************************
Call EditPhp( strFont )


' ***********************************************************
' 処理終了
' ***********************************************************
MsgOk( "処理が終了しました   " )


' ***********************************************************
' インストール用外部実行関数
' ***********************************************************
Function CreateUfm( str1, str2, str3 )

	strCommand = Dd(strTCPDF & "\tcpdf\fonts\utils\ttf2ufm.exe") & " -a -F " & Dd(str1)
	RunSync(strCommand)
	strCommand = Dd(strPHP & "\php.exe") & " " & Dd(strTCPDF & _
		"\tcpdf\fonts\utils\makefont.php") & _
		" " & Dd(str1) & _
		" " & Dd(str2 & "\" & str3 & ".ufm")
	RunSync(strCommand)

End Function

Function EditPhp( str )

	Set regEx = New RegExp
	regEx.Pattern = "TrueTypeUnicode"
	regEx.IgnoreCase = True
	strFontPhp = GetTextFile(str & ".php")

	regEx.Pattern = "\$dw=.+?;"
	strFontPhp = regEx.Replace(strFontPhp, "$dw=1000;")
	regEx.Pattern = "\$enc=.+?;"
	strFontPhp = regEx.Replace(strFontPhp, "$enc='UniJIS-UTF16-H';" & vbCrLf & _
	"$cidinfo=array('Registry'=>'Adobe', 'Ordering'=>'Japan1','Supplement'=>5);" & vbCrLf & _
	"include(dirname(__FILE__).'/uni2cid_aj16.php');" )
	Call PutTextFile( str & ".php", strFontPhp )
	Call Fso.CopyFile( str & ".php", strTCPDF & "\tcpdf\fonts\" & str & ".php", True ) 
	Call Fso.CopyFile( str & ".ctg.z", strTCPDF & "\tcpdf\fonts\" & str & ".ctg.z", True ) 
	Call Fso.CopyFile( str & ".z", strTCPDF & "\tcpdf\fonts\" & str & ".z", True ) 

End Function


</SCRIPT>

</JOB>





  埋め込みフォント使用字の重要な注意事項

以下のように、インスタンス作成直後に必ず 「部分埋め込みをしない設定」にする必要があります

$pdf = new TCPDF(
	PDF_PAGE_ORIENTATION,
	PDF_UNIT,
	PDF_PAGE_FORMAT,
	true,
	"UTF-8",
	false
);
// 部分埋め込みをしない
$pdf->setFontSubsetting(false);
















   SQLの窓    create:2010/07/03  update:2015/11/02   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ