Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php html2pdf-TCPDF:使用零宽度空间在表格单元格中换行(在PDF中替换为“?”)_Php_Html_Css_Tcpdf_Html2pdf - Fatal编程技术网

Php html2pdf-TCPDF:使用零宽度空间在表格单元格中换行(在PDF中替换为“?”)

Php html2pdf-TCPDF:使用零宽度空间在表格单元格中换行(在PDF中替换为“?”),php,html,css,tcpdf,html2pdf,Php,Html,Css,Tcpdf,Html2pdf,我使用html2pdf本身,使用TCPDF将HTML表元素转换为PDF文件。此表具有动态内容,这意味着它的列数有时会有3列,有时会有11列,等等 一列包含一个非常长的数字,例如:BF8545498134587。我的问题是当有很多列时,这个数字超过了列宽。我想像在HTML/CSS中使用wrap word一样对其进行包装。但是html2pdf不支持这些CSS属性 我在那里找到了一个解决方案:插入一个零宽度的空间&8203;在HTML中,每个字符之间有UTF-8格式的\xE2\x80\x8B。它在HT

我使用html2pdf本身,使用TCPDF将HTML表元素转换为PDF文件。此表具有动态内容,这意味着它的列数有时会有3列,有时会有11列,等等

一列包含一个非常长的数字,例如:BF8545498134587。我的问题是当有很多列时,这个数字超过了列宽。我想像在HTML/CSS中使用wrap word一样对其进行包装。但是html2pdf不支持这些CSS属性

我在那里找到了一个解决方案:插入一个零宽度的空间&8203;在HTML中,每个字符之间有UTF-8格式的\xE2\x80\x8B。它在HTML中工作得非常好,但在PDF文档中,这个零宽度空间被替换为“?”

我试图更改TCPDF类中的字体系列,但发现了以下问题:知道该HTML实体使用哪种字体,但没有任何更改

我看到其他答案告诉我如何使用TCPDF函数,比如writeHTMLCell或使用MultiCell而不是Cell,但我无法应用这些解决方案,原因有几个,我在这里不允许讲

所以我现在不知道去哪里找


提前感谢您的帮助。

Nicolas,您必须检查是否在不使用的情况下保存文件。例如,在Notepad++For windows或Geany For Linux中,您可以轻松设置此类选项

确保文件编码为UTF-8

UTF-8字符将根据HTML2PDF设置进行处理:

$html2pdf = new HTML2PDF('P', 'A4', 'it', true, 'UTF-8', array(0, 0, 0, 0)
编辑1: 您使用空格“”的方式不是一个很好的做法,我想问题就出在这里。尝试将其替换为或%20。我会选择第一个

说明:

是一个HTML字符引用,它实际引用 Unicode和ISO-8859-1(又名拉丁语-1)的160字符。这是一个 完全不同的空间字符-非中断空间。即使 虽然他们看起来差不多,但他们是不同的角色 而且您的服务器不太可能以同样的方式对待它们

%二十

%20是字节32的URL转义,它对应于普通的old 在URL中可能使用的几乎任何编码中都有空格

编辑2: 使用边距可能有助于:

$html2pdf->SetMargins(20,18);
编辑3: 在一些Adobe论坛上找到,建议用于sapce:

 
说明:

是字符实体引用&160; 数字是多少 实体引用。它们是一样的,只是 后者不需要另一个查找表来查找其实际值


几天前解决了这个问题:找到并使用了mpdf。这一个太棒了:


在html2pdf中,您应该在长数字中使用而不是零宽度的空格来允许单词内的换行。

谢谢您的回答。我用PHP创建了HTML表格元素,因此表格是一个用UTF-8编码的文件中的PHP字符串。我在Mac OSX上使用Coda 2,我认为它总是没有BOM读取的地方。试图更改文件编码,但仍然没有成功。这里是我插入ZWSP的地方:为了你的编辑1:谢谢你的提示,它增强了我PDF中的一些东西。但是那是什么呢?仍然存在。。。我不明白它是如何工作的,甚至它的等价物&160;但不是&8203牢不可破的空间。若你们把uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。如果你把-在这种情况下,你会。只需使用全部,而不是一个普通的空间。它可以解决您的问题。尝试使用&160;相反,谢谢你的帮助,但正如你所说,这是一个牢不可破的空间,我想插入的是一个零宽度的空间,这样PDF文档中表格单元格过长的单词将被剪切以正确填充单元格,并避免文本溢出。。。我不明白的是,为什么html实体&8203;被替换为?在我的PDF文档中,尽管我进行了所有的编码测试……但这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您有足够的评论,您就可以发表评论。-您好@GeraldVersluis,我将答案的措辞改为更面向解决方案,现在答案更容易接受吗?感谢您的反馈。它在td中放入文本时会生成HTTP 500