生成重音和ç;PDF格式,带有PDFlib+;PHP
我编写了以下代码来传递字符串,它以pdf格式生成我的行:生成重音和ç;PDF格式,带有PDFlib+;PHP,php,pdf,pdflib,Php,Pdf,Pdflib,我编写了以下代码来传递字符串,它以pdf格式生成我的行: function text_block($p,$text,$xcrd,$ycrd) { $font_size=24; //font size, used to space lines on y axis $tmplines = explode("\n",$text); for($j=0;$j<count($tmplines);$j++){ $tmptxt = explode(" ",$tmpli
function text_block($p,$text,$xcrd,$ycrd)
{
$font_size=24; //font size, used to space lines on y axis
$tmplines = explode("\n",$text);
for($j=0;$j<count($tmplines);$j++){
$tmptxt = explode(" ",$tmplines[$j]);
$str="";
for($i=0;$i<count($tmptxt);$i++){
if($str=="")
$str=sprintf("%s",$tmptxt[$i]);
else
$str=sprintf("%s %s",$str,$tmptxt[$i]);
if((strlen($str)*$font_size + strlen($tmptxt[$i+1])*$font_size) > 1512){
$p->fit_textline($str,$xcrd,$ycrd,"");
$str="";
$ycrd-=$font_size;
}
}
$p->fit_textline($str,$xcrd,$ycrd,"");
$ycrd-=$font_size;
}
return $ycrd;
}
本来是以pdf格式出现的,类似于“A dataé:03/23/2016”,但当我将bla拉伸放在php中时,它挂起,不会返回错误,也不会生成pdf,所以我什么都不做。我不知道是缺少安装的东西,还是一些配置的东西,或者你必须启用的东西
参考
示例“example 10-6.Font-display”可以实现我想要的功能,但我不能在.php中实现,首先是因为我没有pdflib.upr
文件,它会传递pdf\u set\u参数
第二,因为我不明白他在网上做什么:
pdf_continue_text($p,"$f (".chr(128)." Ç à á â ã ç è é ê)");
如果我转到功能fit\u textline
更新
我在另一个页面上尝试了php类似的代码ai low
try {
$p = new PDFlib();
if ($p->begin_document("wp-content/uploads/hello.pdf", "") == 0) {
die("Error: " . $p->get_errmsg());
}
$p->set_info("Creator","hello.php");
$p->set_info("Author","Rasmus Lerdorf");
$p->set_info("Title","Hello world (PHP)");
$p->set_parameter("FontOutline", "Ubuntu=/var/www/html/wordpress/wp-includes/fonts/ubuntu-font-family/Ubuntu-C.ttf");
$p->set_parameter("textformat", "utf8");
$y = 2138;
$x = 1512;
$p->begin_page_ext($x, $y, "");
$p->set_text_pos(25,750);
$font = $p->findfont("Ubuntu", "unicode", "");
$font_size=24.0; //font size, used to space lines on y axis
$p->setfont($font, $font_size);
$p->continue_text("(".chr(128)." Ç à á â ã ç è é ê)");
$p->end_page_ext("");
$p->end_document("");
}catch (\PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}catch (\Exception $e) {
die($e);
}
但是它仍然没有生成我的pdf,而且仅仅从服务器上的一个500错误中也没有显示错误的输出,因为我已经用try-catch进行了处理
与PDFlib合作过的人知道如何做到这一点?设置外部源并将文本类型设置为utf8,即它与重音符号和ç?首先:为什么不使用textflow(PDFlib的多行功能)创建多行输出 现在转到错误的输出:
- 我猜你有“Ã俎”(即utf-8) 输入字符串中“é”的两字节表示形式,但尚未将PDFlib中的textformat设置为utf-8。文本格式应与应用的输入字符串匹配
try {
$p = new PDFlib();
if ($p->begin_document("wp-content/uploads/katleia.pdf", "") == 0) {
die("Error: " . $p->get_errmsg());
}
$p->set_info("Creator","hello.php");
$p->set_info("Author","Rasmus Lerdorf");
$p->set_info("Title","Hello world (PHP)");
$p->set_parameter("textformat", "utf8");
$y = 2138;
$x = 1512;
$p->begin_page_ext($x, $y, "");
$p->set_text_pos(25,750);
$font = $p->load_font("Helvetica-Bold", "winansi", "");
$font_size=24.0; //font size, used to space lines on y axis
$p->setfont($font, $font_size);
$p->continue_text("( Ç à á â ã ç è é ê)");
$p->end_page_ext("");
$p->end_document("");
}catch (\PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}catch (\Exception $e) {
die($e);
}
“c”是一个规则字符,永远不会成为问题。显示的字符串具有UTF8编码的所有标记。PDF不支持UTF8编码的文本。您可以给出生成PDF的完整示例吗?
try {
$p = new PDFlib();
if ($p->begin_document("wp-content/uploads/katleia.pdf", "") == 0) {
die("Error: " . $p->get_errmsg());
}
$p->set_info("Creator","hello.php");
$p->set_info("Author","Rasmus Lerdorf");
$p->set_info("Title","Hello world (PHP)");
$p->set_parameter("textformat", "utf8");
$y = 2138;
$x = 1512;
$p->begin_page_ext($x, $y, "");
$p->set_text_pos(25,750);
$font = $p->load_font("Helvetica-Bold", "winansi", "");
$font_size=24.0; //font size, used to space lines on y axis
$p->setfont($font, $font_size);
$p->continue_text("( Ç à á â ã ç è é ê)");
$p->end_page_ext("");
$p->end_document("");
}catch (\PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}catch (\Exception $e) {
die($e);
}