PHP: プリンタ関数 - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<systemprinter_abort>
view the version of this page
Last updated: Tue, 21 Dec 2004

XCVI. プリンタ関数

導入

以下の関数は、Windows 9.x, ME, NT4, 2000でのみ利用可能です。これらの 関数は、PHP 4.0.4で追加されました。

インストール手順

php.ini ファイルにextension=php_printer.dllの 行を追加して下さい。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 1. プリンタ設定オプション

名前デフォルト変更の可否
printer.default_printer""PHP_INI_ALL
PHP_INI_* 定数の詳細と定義については、 ini_set()を参照して下さい。

目次
printer_abort -- プリンタのスプールファイルを削除する
printer_close -- プリンタへの接続を閉じる
printer_create_brush -- 新規ブラシを作成する
printer_create_dc -- 新規デバイスコンテキストを作成する
printer_create_font -- 新規フォントを作成する
printer_create_pen -- 新規ペンを作成する
printer_delete_brush -- ブラシを削除する
printer_delete_dc -- デバイスコンテキストを削除する
printer_delete_font -- フォントを削除する
printer_delete_pen -- ペンを削除する
printer_draw_bmp -- ビットマップを描画する
printer_draw_chord -- 弦を描画する
printer_draw_elipse -- 楕円を描画する
printer_draw_line -- 線を描画する
printer_draw_pie -- 円弧を描画する
printer_draw_rectangle -- 矩形を描画する
printer_draw_roundrect -- 角が丸い矩形を描画する
printer_draw_text -- テキストを描画する
printer_end_doc -- ドキュメントを閉じる
printer_end_page -- アクティブなページを閉じる
printer_get_option -- プリンタ設定データを取得する
printer_list -- サーバで付加されたプリンタの配列を返す
printer_logical_fontheight -- 論理フォントの高さを取得する
printer_open -- プリンタへの接続をオープンする
printer_select_brush -- ブラシを選択する
printer_select_font -- フォントを選択する
printer_select_pen -- ペンを選択する
printer_set_option -- プリンタの接続を設定する
printer_start_doc -- 新規ドキュメントを開始する
printer_start_page -- 新規ページを開始する
printer_write -- プリンタへデータを書き込む


add a note add a note User Contributed Notes
プリンタ関数
arne dot briesenick at soxabo dot de
28-Sep-2004 02:42
Printing in UN*X is possible too:

<?php
function lpr($STR,$PRN) {
 
$prn=(isset($PRN) && strlen($PRN))?"$PRN":C_DEFAULTPRN ;
 
$CMDLINE="lpr -P $prn ";
 
$pipe=popen("$CMDLINE" , 'w' );
  if (!
$pipe) {print "pipe failed."; return ""; }
 
fputs($pipe,$STR);
 
pclose($pipe);
}
// lpr()
?>

You pipe the stream/string/char/sign whatever to the system. In the example shown above you have to add at least the string for printing in the function call. The second arg is a printer name which if you don't set will be set to the C_DEFAULTPRN. This is a constant definition from an ini file.

Hope this will help to save a lot of time ;-)
jason at matteson dot com
11-Mar-2004 11:01
You can print in XP. AND, you can print to a shared printer with XP. The drivers for the printer MUST be installed on ther server as well as on the computer you wish to print with. Also, the printer must be shared on the client computer.

I am using a Zebra LP2844 Thermal Barcode Printer in my application. I am running XP Pro,Apache 1.3.27, PHP 4.3+.

Here is a function I use in our churches checkin system.  I use this to print directly to our printer with out having to use any Javascript.

First, i give the function the name of the shared printer.

Second, I get the client computers host name. You could use just REMOTE_ADDR too I suppose.

Then I return a correctly formatted Windows path to the shared printer for the

function getPrinter($SharedPrinterName) {
   global $REMOTE_ADDR;
   $host  =  getHostByAddr($REMOTE_ADDR);
   return "\\\\".$host."\\".$SharedPrinterName;
}

$handle  =  printer_open(getPrinter("Eltron"));

So, as long as you KNOW the computers are suppose to have a shared printer called "Eltron", you're all set to start sending info to the printer with the other Printer functions.

-j
macagomez at yahoo dot com
27-Jul-2003 09:35
Please notice that what is printed is NOT measured in pixels, it is measured in pronter's dots.
Apply to fonts, coordinates and bit maps.
HW
04-May-2003 10:31
Should be pretty obvious, but in case there is any confusion...
The printer in question is one that is connected to the _server_, not the _client_.
jwlash at acm dot org
20-Feb-2003 07:40
I have noticed the for unix based systems you can also do this:

system("lp $filename")

:)
surak at surak dot eti dot br
04-Feb-2003 06:30
[Editor's Note]
There is another free one available at
[/Note]

As Bert said, a pdf generator wouldn't be bad. There is a free one at , which can do the job. Inspite of the fact it is a little bit rough, it works fine and quite fast. It's just a matter of throwing the pdf file to ghostscript print it.
bertATnerdstockDOTorg
21-Jan-2003 12:22
If you want to address the printer from your PHP-application in a Un*x environment:
This is possible if you use a different method.
In Unix it would not be logical to address your printer directly from php, but you could for instance generate a PDF-file with PDFlib (or a textfile, or a PNG/JPEG image with GD or what have you) and write it from your php-script to a directory that you use as a "printer-outbox."

Next, you write a shellscript that calls some unix tool to print all pdf or other documents in your "outbox" directory and then deletes all files in that directory.

Then you use crontab to run this script every minute or as often as you think it's neccessary.

You could of course also call the shellscript from your php-application with exec() but you'll probably want to avoid using exec() and the like for security reasons.
kincaic at swbell dot net
22-May-2002 04:23
The X and Y co-ordinates are in dots. 

Get the printer resolution BEFORE printing anything and convert all co-orditantes to dots in the current resolution. 

Trying to change the resolution does NOT work in Win2000.

Anybody know where the source to php_printer.dll is kept?  I would like to fix some of the bugs that I have found.

<systemprinter_abort>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page