生成重音和ç;PDF格式,带有PDFlib+;PHP

生成重音和ç;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

我编写了以下代码来传递字符串,它以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,$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);
}