Php html2pdf-TCPDF:使用零宽度空间在表格单元格中换行(在PDF中替换为“?”)
我使用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,但我无法应用这些解决方案,原因有几个,我在这里不允许讲 所以我现在不知道去哪里找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
提前感谢您的帮助。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