我正在为这一个开始一个新线程,将尝试尽可能具体。
这是我们销售人员的应用程序的一部分,允许他们使用他们的联系信息自定义页面,在他们点击提交后,创建一个PDF页面,然后将其附加到更大的文档的末尾。
文档的第一页也是从他们填写的相同表单动态创建的。按下提交后,将创建2个PDF文件,一个首页和一个后页,然后将这两个页面附加到一个更大的文档,从而创建一个报告。
除非他们输入汉字,否则一切都很有效,然后我得到的就是这样的垃圾字符 - (è'¨é‡•ä¿•è¯•æμ•ç¨<)。即使在与较大的文档合并之前,该文档仍然看起来像这样。
我尝试过各种可能的场景(似乎),使用Unicode字体,使用我自己创建的字体,逐个尝试TCPDF文件夹中的每种字体。我完全失去了,已经有一段时间了。我觉得我一直在谈论提到TCPDF的每个网站。
这是创建后页的代码,回到我开始的基本命令。我希望这是一个简单的命令,我失踪了:
require_once(dirname(__FILE__).'/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('L','LETTER','en', false, 'ISO-8859-15', array(mL, mT, mR, mB));
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($html, isset($_GET['vuehtml']));
//Line below saves PDF to file
$html2pdf->Output('created/'.$lastname[1].'_html2pdf.pdf', 'F');
}
catch(HTML2PDF_exception $e) {
echo $e;
}
为了它的价值,运行Centos 5.5服务器来创建文档。提前谢谢。
在用HTML2PDF对这个问题进行一些调查之后,我被告知字体arialuni.ttf应该支持我需要的所有字符。话虽如此,当我在下面的脚本中使用HTML2PDF时,HTML2PDF将不会加载此字体。
require_once(dirname(__FILE__).'/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('L','LETTER','en', false, '', array(mL, mT, mR, mB));
$html2pdf->pdf->AddTTFFont('ARIALUNI.TTF');
$html2pdf->pdf->setFont('arialuni');
$html2pdf->writeHTML($html, isset($_GET['vuehtml']));
//Line below sends output to the screen only
//$html2pdf->Output('exemple00.pdf');
//Line below saves PDF to file
$html2pdf->Output('created/'.$lastname[1].'_html2pdf.pdf', 'F');
}
catch(HTML2PDF_exception $e) {
echo $e;
}
*我能想到的是语法不是100%正确。我已经运行了tt2fm和makefont来获取文件,但不觉得这些例程是100%成功的。
请帮助 - 我已经连续几个月一直在研究这件事。我差不多准备把它扔掉然后打开门。
谢谢。
答案 0 :(得分:2)
您可以使用
在PDF文档中呈现中文字符 TCPDF中的cid0jp 字体。
供您参考: -
PHP代码: -
http://www.tcpdf.org/examples/example_038.phps
生成的PDF: -
http://www.tcpdf.org/examples/example_038.pdf
请确保 cid0jp.php 文件位于字体目录中。
tcpdf/fonts/cid0jp.php
答案 1 :(得分:2)
根据您的密码:
require_once(dirname(__FILE__).'/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('L','LETTER','en', false, 'ISO-8859-15', array(mL, mT, mR, mB));
//$html2pdf->setDefaultFont('Arial'); //Please remove this
$html2pdf->setDefaultFont('stsongstdlight'); //And change with this, it works 101% for me
$html2pdf->writeHTML($html, isset($_GET['vuehtml']));
//Line below saves PDF to file
$html2pdf->Output('created/'.$lastname[1].'_html2pdf.pdf', 'F');
}
catch(HTML2PDF_exception $e) {
echo $e;
}
...这是我的101%工作代码,以pdf输出中包含中文字符:
<?php
require_once ROOT_DIRECTORY.'/{it's your own location where you put the class at}/html2pdf-4.4.0/html2pdf.class.php'; //ROOT DIRECTORY is my own "defined" so do not use this line.
/* or use this:
* require_once(dirname(__FILE__).'/html2pdf.class.php');
* it depends on what you need
*/
try
{
$html2pdf = new HTML2PDF('L', 'A6', 'en', true, 'UTF-8', 0); //I'm using UTF-8 //Also I'm working on A6 page in my project here, so if you need to have A4 size change A6 back to A4 or change to the size you need
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->setDefaultFont('stsongstdlight'); //this is all you need to have the CHINESE character.
$content = ob_get_clean();
$html2pdf->writeHTML($content);
$html2pdf->Output('Sticker-'.$this->invNumber.'-'.$this->custCode.'.pdf');
exit;
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
希望你的代码在那里工作太多了!
快乐编码:)
答案 2 :(得分:0)
$html2pdf = new HTML2PDF('L','LETTER','en', true, 'UTF-8', array(mL, mT, mR, mB));
答案 3 :(得分:0)
所以html2pdf
基于tcpdf
,但它们有点不同:
html2pdf不支持中文。
但是,您可以从包含目录javiergb.php
获取/tcpdf/fonts/
。然后将此文件复制到html2pdf/_tcpdf5.xxxx/fonts/
目录。
之后,您只需将行$html2pdf->setDefaultFont('javiergb');
添加到html2pdf设置中,如下所示:
$html2pdf = new HTML2PDF('P', 'A4', 'en');
$html2pdf->setDefaultFont('javiergb');
$html2pdf->writeHTML($html);
$html2pdf->Output('example_zh_cn.pdf');
你可以看看我的前叉:https://github.com/cychai/html2pdf