0

私の悪い英語でごめんなさい

私の質問は、printer_draw_text関数を使用して長い文字列を出力するにはどうすればよいですか? (例を参照) Epson Billing Printerで。

すべての例が機能します (ソース: http://www.php.net/manual/en/book.printer.php )

しかし、Logo.bmp + 長いテキスト行を組み合わせたい場合、ロゴと 1 行の文字のみが出力されます。

例:

<?php

# DEMO PRINTER

//http://fr.php.net/manual/en/function.printer-write.php
/*
$_SESSION['PrintBuffer']='';         //printer buffer
  print_sub_1();
  print_sub_2();
  print_sub_3();

  $_SESSION['PrintBuffer']

*/

$Printer_name = $_GET['Printer'];
$text = $_GET['value'];

$text = str_replace( '/r/n',PHP_EOL, $text);

$handle = printer_open($Printer_name);  // Open Pritner by Name
printer_set_option($handle, PRINTER_MODE, "raw"); 
//printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);

printer_start_doc($handle, "Print"); // Name Document 

printer_start_page($handle); // Start Logo
printer_draw_bmp($handle, "c:\\logo.bmp", 60, 0);  // Logo Dir, lenght H , With V
printer_end_page($handle);  // End Logo

printer_start_page($handle);    
printer_draw_text($handle, $text,1,1);
printer_end_page($handle);  //

printer_end_doc($handle);   // Close document 
printer_close($handle);     // Close Pritner

?>

出力例:

ロゴ.bmp

Test.... // しかし 1 行だけ :(

printer_write($handle, "印刷するテキスト"); 動作します!!! それは穴文字列 + \r\n を印刷しますが、新しい紙にロゴを印刷します:(

必要な例

ロゴ <-- こちら

1 x 製品 <-- 長い文字列 1 x 製品 \r\n (動作中の printer_write 関数) 2 x 製品 ecr.

printer_draw_text($handle, $text,1,1);1 x 製品 2 x のみを印刷しています

4

1 に答える 1

1

ここでの作業例 (* + Print.Dll および Win 7 OS で)

  <?php

# DEMO PRINTER

//http://fr.php.net/manual/en/function.printer-write.php
/*
$_SESSION['PrintBuffer']='';         //printer buffer
  print_sub_1();
  print_sub_2();
  print_sub_3();

  $_SESSION['PrintBuffer']

*/

$Printer_name = $_GET['Printer'];
$text = $_GET['value'];

$text = str_replace( "-"," ", $text);
$text = str_replace( "/r/n"," \r\n , ", $text); // replace and make string Array

$lineofText = explode(',',$text); // Array to stand to for


# Examples 

// testing font
//echo printer_logical_fontheight($printer, 72);

//printer_set_option($printer, PRINTER_MODE, "RAW");



$handle = printer_open($Printer_name);  // Open Pritner by Name
printer_set_option($handle, PRINTER_MODE, "raw"); 
//printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);


printer_start_doc($handle, " Print"); // Name Document 


printer_start_page($handle); // Start Logo
printer_draw_bmp($handle, "c:\\logo.bmp", 60, 0);  // Logo Dir, lenght H , With V
printer_end_page($handle);  // End Logo

printer_start_page($handle);    // Text

$asize=sizeof($lineofText);             // Make NewLine per Array 
   for($i=0; $i<$asize; $i++)    {
                                    printer_draw_text($handle, $lineofText[$i],1,1);
                                }

printer_end_page($handle);  // End Text

//printer_start_page($handle); // Start Logo QR
//printer_draw_bmp($handle, "c:\\QR.bmp", 60, 0);  // Logo Dir, lenght H , With V
//printer_end_page($handle);  // End Logo QR

printer_end_doc($handle);   // Close document 
printer_close($handle);     // Close Pritner


?>
于 2012-06-17T09:57:04.920 に答える