2014-02-17 63 views
1

我使用打印机功能打印出包含中文和英文单词的文本文件(.txt)中的一些数据。它们都可以在网页中正确显示。打印时,英文单词看起来不错,但中文单词不显示正确的输出。任何解决这个问题的建议?下面是我的编码。请帮帮我。PHP中的打印机功能无法打印中文字符(UTF-8)

<?php 
$print = file_get_contents("print.txt"); 
$printer = "XP-80"; //printer name 
echo $print; 
if($ph = printer_open($printer)) 
{ 
    printer_set_option($ph, PRINTER_MODE, "RAW"); 
    printer_write($ph, $print); 
    printer_close($ph); 
} 

?> 
+1

这个例子你确定你的打印机支持UTF-8字符的中国?仅仅因为你的文本显示在屏幕上,并不意味着它必然会在其他地方正确显示。 – 2014-02-17 08:29:06

+0

ya。打印机可以支持中文字符。 如果我使用window.print,中文字符会很好,但如果我在PHP中使用打印机功能,它不起作用 – Billy

回答

0

有几件事我能想到的可能是问题的原因:

  • 您选择的字体不是UTF-8兼容。
  • 还有关于printer_set_option()关于bug的manual page的注意事项。从2009年开始,所以不确定它是否仍然有效。之后你

编辑点评:

尝试从reference manual

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50); 
printer_select_font($ph, $font); 
+0

它有任何命令来设置字符? – Billy

+0

我编辑我的答案... – miltos

+0

这是列我应该把utf8? – Billy