使用PDFlib PHP生成PDF格式的重音和?
发布时间:2020-12-13 16:04:10 所属栏目:PHP教程 来源:网络整理
导读:我做了以下代码来传递一个字符串,它在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;$jcount($tmplines);$j++){ $tmptxt = explode(
我做了以下代码来传递一个字符串,它在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(" ",$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,$ycrd,""); $str=""; $ycrd-=$font_size; } } $p->fit_textline($str,""); $ycrd-=$font_size; } return $ycrd; } 因为当我在PDF中传递类似“é”或“?”的内容时会出现奇怪的字符“?”. 我该如何解决? 为例 有什么东西可以生成带重音的PDF? $p = new PDFlib(); $p->set_option("stringformat=utf8"); $name_file = "wp-content/uploads/".$current_user->ID."_".$time."_mysite.pdf"; if ($p->begin_document($name_file,"") == 0) { die("Error: " . $p->get_errmsg()); } $p->set_info("Creator","mysyte.com.br"); $p->set_info("Author",$current_user->username); $p->set_info("Title","title"); $y = 2138; $x = 1512; $p->begin_page_ext($x,$y,""); $y -= 100; $y = text_block($p,"A data é: ".date("d/m/Y",$time),50,$y); $p->end_page_ext(""); $p->end_document(""); 是以“数据é:03/23/2016”的形式出现在pdf中,但当我把它拉伸在php中并且不会返回错误或生成PDF时,我会做任何事情.我不知道是否缺少安装东西,或者是某种配置,或者你必须启用一些东西. 参考 示例“示例10-6.字体演示”这个site做我想要的,但我不能在我的.php中做,首先因为我没有pdflib.upr文件它传递了pdf_set_parameter. 第二,因为我不明白他在线上做了什么: pdf_continue_text($p,"$f (".chr(128)." ? à á a ? ? è é ê)"); 如果我移动到功能fit_textline,这条线将是 UPDATE 我尝试了另一个页面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,""); $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)." ? à á a ? ? è é ê)"); $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,即它与重音和?一起使用? 解决方法
你可以用这个:
try { $p = new PDFlib(); if ($p->begin_document("wp-content/uploads/katleia.pdf","Hello world (PHP)"); $p->set_parameter("textformat",750); $font = $p->load_font("Helvetica-Bold","winansi",$font_size); $p->continue_text("( ? à á a ? ? è é ê)"); $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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |