使用PHP打印 - 不同的字体大小?

时间:2014-07-03 06:32:52

标签: php printing

我在一所学校工作,正在为我们的服务台写一个向导式的前端。学生将抓住平板电脑,填写他们的名字,选择他们所拥有的问题,并在系统上打开一张票。

我们在办公桌上共享了一张收据打印机并使用了PHP的printer_ *功能,我能够使用RAW模式打印简单的收据。学生将把收据带回课堂,向老师展示他们与我们在一起的证明。到目前为止,我的代码效果很好:

$handle = printer_open("EPSON TM-T88IV Receipt"); // The name of our printer on Windows
printer_set_option($handle, PRINTER_PAPER_FORMAT, PRINTER_FORMAT_CUSTOM); // Custom paper format
printer_set_option($handle, PRINTER_PAPER_WIDTH, "80"); // 80mm wide
printer_set_option($handle, PRINTER_MODE, "RAW"); // And raw printing mode
printer_write($handle, "Hello world\nPrinting is fun\nGoodbye"); // Sample text
printer_close($handle);

但我想知道的是,我如何进行花哨的格式化,例如更大的字体大小,粗体文字甚至徽标? (后者,不是那么重要,它只是一个愿望清单)

我看到你可以将模式设置为文本和EMF(增强型图元文件格式?),但似乎无法找到有关从PHP生成EMF的更多信息。我在一些网站上看到了转义码,但这些似乎是特定于打印机的而且不是人类可读的。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您似乎应该同时使用printer_create_fontprinter_draw_test这两个函数,并且可以使用它们(PHP手册中的代码):

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

答案 1 :(得分:0)

您可以执行此操作。

$font1 = printer_create_font("Arial", 600, 400, 4000, false, false, false, 0); 
$font2 = printer_create_font("Arial", 200, 150, 1500, false, false, false, 0); 
printer_select_font($handle, $font1); 
printer_draw_text($handle, '1', 100, 100); 
printer_select_font($handle, $font2); 
printer_draw_text($handle, '2', 1000, 500);