在1月底,我写了一个脚本来使用DOMPDF库从HTML生成PDF文件。DOMPDF garbling输出
的HTML如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>test</title>
<style type="text/css">
*{
color:#715335;
font-family:Helvetica, Arial, Serif;
}
.i{font-style: italic;}
.b{font-weight:bold;}
h1, h2, h3, h4, h5, h6{display:inline;}
h1{font-size:350%;}
h3{font-size:275%;}
h6{font-size:150%;}
span{font-size:125%;}
div{background-color:#fedebd;}
</style>
</head>
<body>
<div align="center" style="margin-left:10px;margin-right:10px;padding:0px;">
<br />
<br />
<br />
<br />
<img src="img/banner/Bronze/top.gif" />
<br />
<br />
<h1 class="b" style="color:#715335;">Bronze Certificate</h1>
<br />
<br />
<h3 class="i" style="color:#715335;">Ruth Candlish</h3>
<br />
<br />
<h6 style="color:#715335;">This certificate has been awarded to you for earning over 250 points on the LEAP System.</h6>
<br />
<br />
<img src="img/barry.gif" />
<br /><br />
<img src="img/badge.gif" />
<br />
<h6 class="i">Date Awarded: 14-03-2013</h6>
<br />
<br />
<span>Awarded by: Middle School</span>
<br />
<br />
<img src="img/banner/Bronze/bottom.gif" />
<br />
<br />
<br />
<br />
</div>
</body>
</html>
我使用的代码两段保存和渲染PDF文件。一个仅仅是一个简单的compile
函数其中根据输入变量(即学生姓名,点的数目,等)和其他的生成HTML是这样的:
/*
* @param string $data : <HTML> from $this->compile();
* @param string $size : "a1","a2","a3","a4","a5","a6"...
* @param string $orientation : "landscape", "portrait"
* @param string $name : The name of the student, used to prefix the name of the output file
*/
public function save($data, $size, $orientation, $name, $type){
$dompdf = new DOMPDF();
$dompdf->set_paper($size, $orientation);
$dompdf->load_html($data);
$dompdf->render();
$data = $dompdf->output();
$filename = 'data/'.$type.'/'.$name.' - '.date("d-m-Y").'.pdf';
return file_put_contents($filename, $data);
}
当时,该脚本完全跑。 PDF是使用图像创建和保存的。
今天我回来了,找了两两件事:
- 图像不会被保存PDF文件的工作,虽然没有X,以表明他们错过
- 有一个乱码文本输出量巨大,我怀疑可能是文字形式的图像
下面是一些输出:
‰PNG
IHDR»< û;8úPLTEÿÿÿÅ__ÀVVÉlií%š$î:+ÃaUª4&ïK6ïD2ðW>ðQ9ñaEñ\BórU½VAònQòjMñeIòˆlôƒeô‚eô€bó}_ô`óz\ô|\óxZôyYóvXôwWö–yö’tõqõoõ‹mõˆjõ†hõ…fô‚cô~^ô|[¥:ù°—ø¥Š÷Ÿƒö›~öoökø‹iõ‰gÃdDúº¢ø«ö—uÎ|\±L&úìÆo<º`*Ø–hÞ¥uÕ‘EÍ„,Åxâ¯j羀ߨSÙ /î·æºUä¶3íÍfôÝÛøæ˜þçƒþëŒþë†óÞzÿê{üålå¿ûî›ôç•ÿî‘ùèŠþî‰þëÿì~þìzþëwõápÿësóÞXÿèYÿæSî×LìÓ2ùÙîÍûØýÛûô»úñúï£îã–úí”ÿò•ùìùìùìŠøëˆøë…øë„øë‚øê€øê}ÜÏnøéz÷éxøétøéoøèjþëm÷çfþêg÷æ\þë_ÿçIûåCùä<þä5þã,ïÕ#ÿâ#þâÿáíÓõ×
øÝ
ÿáüÜ ýÝûÛÿÞüÝÿÞõêŽùí‡ÿô÷ça÷çU÷åLöã+ñÛþèøâôÞÿåþöŒÿôuÿòHþì&õãöâÿîþôVýñÿúkþø8ÿþ¡ÿÿŒÿþxÿþYÿþFÿý-ÿþÿýØé½Ðå¯Ëâ§ÆàŸÂÞ˜¿Ü”¼ÚŽ¹Ù‰±Õ|Óu¨ÑlžÍY˜ÊN¶Ø…´×£ÏcÆ<zÀÄ/…Æ;‰ÉU’ÍPÍGËiœÒg›Òb˜Ð]–ÐZ”Îu¢Ör ÕnŸÔkÓe™Ña–Ï“´Þ‹¯Ü…¬Û€©Ù}¦Øy¤×ržÓoœÓl™Ð²È礿㙸à—9‘(ˆ$~"¸@Zœ.³3L¯'B¥7¾QeŸ+«'6Ä`eŸ!'™"•¿QU½LP»EJ¯48ª.2¦*-£%*›$ÂXZ·AC³<=M$æ‚[email protected]æØf,IDAThÍÚwXTwºð±D(d2E)S£ˆn¢‘&EÁÜ«fe]MŒ’½H‡À‚ÛM\“Ñ{APÈf€Xh* }Á¬[email protected]©áyîïô33ewó¸÷ý#É3çŒóÉ÷yϯiß~îÜßΞ9súô©'âããbcböí=~ìÈîOwîð÷óòòÚ¾yËÎ]»;¾o_Ll\|ü‰§NŸ>sæì¹sç¾ßÿ%ím•5‡Ëe±Õ?û>á»ïÎ; Øw}¶cûv/¯CÛwìüt÷‘cÇ÷‰%ègÏ~—ð··$ç2ù¦|Ó¥|º5ùÓý¸ýlÇsÿ|'fßòÙ.ؾ²ÇŸ8u
ØÏ¼M;‡Éä±--,,yæ|æÌì[6ÿÿ°[šs¹–¶6k–/_naÊgLgÏËåÀ.eeíº •H$Ivüç…¬Ý<.“¥ÅÄŠÅ'Ôìß¾
; ³@ê¶+l–¯¶15§SÚÓO¸¯³÷ï“müè#O©§ÀÁQ°á?7§nu¹ot»˜–æážþÖí‡Áe[[ü
›Õ¶|sJ{¶ÊÙ]å$sëú=·
&'›\{¤®]_ˆ<ÃNrùG“ÙoÝÎg›,aÒ9,+K8z¶9>Ú¨Ûû=ävn²þuYY‹Æ¤Á|_‰ëÈ&©ëàEnóåòu‹ÞºÅ ,1Å¢_ckÊ£´'÷Û½t–ywoe¹õ…»D²adÖœÁ9Q¢9“º¼ÿv6ÇLßÈÐÀl1Ž~…-Zµr_'ëwÊÊHa»ëð†ó.ƒGDƒAÏF1°g§ÿîöFe]²iš‹,®¡ž1À/1aÒÙ,+.>Ljô»{\·½l]·§[·ƒT2Øá~¹tyî¯ëuw>™þûÚÔ)êë”õ•
j=›m¨£¿è—˜ñy¶•—2÷ôd{;;ç´L™ÓÔ¤›t§ÔÁôŒàÏÒ
"™ÌM öX´hÊã÷µ×(šÛZž>m©TP]·þÐlÞ= G£gó(í'NˆãÓäiÐø.ÊsÓ! ˜›àñýˆH¶w_š<Vœý{÷L›BÙô¨µµåé“'
•Í7XðYºîzÉ¥¶k¬ û!|^ÑžWÿu»¢NYÛø ½
Ò7V·QÜa²Òp®®½ ÛÜrFö7® þe;ˆ½JQWÛØð¨õéCeðækõæÎCð¸\>~åßl¯©©º_¥¨W6AÑ?l¬¤ºÇ”g©?wî<]Æt61ÒöïOÈÍÍÍ
ô²¬gd2´ž‘J¡õ(ðY"øT.—Cýž
Ý›UÊþ™ÚƒÏS_hTÞ¯¨®F£[email protected]ù´Ò̵L=]]ý%,¶)‡dÏøj=ZÎH9!åÊ+777øsøäÛ2ffŠAm//¿¿ºªŠþQ#µÆá¸’Íá¬b3äÿ’»íWP TPuCÕß××70ÐÛÛÛÓÓÓÕÕõìÙàà3ðïžžÞ^p¥»Üîÿõ“ܿ̄.Œõ;xÐ+ü°¿öµšŽò²òŠûpô5j¦±ƒQžÇeré<µ¿Ìøj¨shhèŋߞ?Ÿ˜xùr|||llljjrrttddxö«Y³ç€šõjxdtrrjl|üåÄÄóß^uÎÌ.û{<àëx4PëbûÏUeŽÌP3øóˆú:ãÛwþYû¶™Øý"ÃÃC‚ÀÖ÷À°(íËŠÇåeeHôÕJEû?d?™’²ŒÒ>ì£ýÕ4vÕÐW¹_¿ùB#G Ãμ…½¡¹ —•—W(š(‡™éË'%×îWÌþ³Oõ
ŒŽöö޾îéÉgöÎw¾Ï8ùæ‰J:Gª}½þçŽ
_Qÿ¸ŠúO°bsè\:.:›´ÛöNÈ]ÛßÁÃöEž.}}Ž›æ÷
opîqøÂaµMŽaöe)d{~IqI±ö/N<)ð£ ÕÕt(+«?+ë(åÖï3ø¦|&T|¦©ùÒxø(ùW’½ßþÝ爽oQÖ Uâ:ÇQ"qtØšå𳯛@íö¹ „ýfaÁ7ò
ó5;ðhòŤh½0ø¼0˜’§¬yüø±òå5“ÉcY‚íÞ
¸,8æ¦Llç”û fïv¶ëÇì¢+RéŽÍ_ÉöÍRéç¸}jÊy³¯ÏM ~ÐoÞ¸þÓ¢[𹓓/^LÑG†Sñ¯-&ƒÁ²µ±Y³:%X
êãÕ6<óPü—_Cƒ$dW¹ÛwöOwnÙ.ñ’Ú¼c'aï]ä1€ô4Döü’’‚| ÿ)¯DóçC¯%ǂ裣„”¾”A·²]a‹ÄŽþ|ü±¥ùR|ùRJƲΨÝYE¶ï8ôÀB’l_çƒÚUCÿ›q ÿ‘‚¢"€Ïm£e
Jºz59>6qºØÛ444´7h]á3¹`£daâm`<Ð[˜›[A×} †Çìãã¨=õÐpïè&éÄ>Û}ú{ç²\Ò£š»´¨Ž¾@«ã…þ i¢Â)SoR**ŠJ¸=Ï6粬¬,¡³HoCDomn
ßïñ±q0Î öY=¯ûlÈîŽÚŸCíîCØKïܾ]TXœŸG1Ôøú‡PÈkšuíÚÚÚZ[[Û•jc
ŸÎa¿g
ôšÑ¯^Í[
ÿMÆ5Ððˆ=¹Ó>m\åí¦šBsïÃrïqHêê‰uúŵ¿PmËÝOüLþí{wJoCÑkõÌkª¹¹®¡åáç`×ôäÉßÿþôAU}-~Õò—Ãf³¬µ£ÿØv)¼*ƒg§°Ý9ÛÝCîá$KrÚbowutõƒúýЧËÙF7yœ“ر«–edfÕ›ÅwïݽSZZT’7sºRQÛÞ
Uì
ô•ÄÜÊaðt gY[kD¿fõÆð=pÓ v±8N.ƒ6¬ˆ,ßáqf·Ht|¯ìWÅÙ¨´LŠÉ‘_Pz÷îÛ%±…
¡E°0Tctoª¬ihoo‡úÂ#úbÇͤ3Mïs9µèW }c½ž`¿É¸üN'j—;'eîE^@§íÛ!;Ø8eÎÈãâQ{¿ê+òè*/¯zXµäÂȈðÐàPad¤Ú¼
vÙ`€Úý£ªFÌÎ51[̤Ž~¹%r´šŒ4¸}Ê[†¼øØrÚ7mÆì]³ {§]nÊ%
å›ÚýÀÀØ×÷@àaÒXÓ¨¨ônüf,x.}‰™‰Éb=¦_nn rÿ{HEaOõstpü“d‹¶ý9˜˜R´»C«¢Â¼BuáŒ"–’ʺæfeVôOUµcv33ýûPôxã@ø5|Ä~)%Ǿó7¼g^îÉ„íRçƒÓì¤Z=óRõnnÆ7jʼ‚âââ’’bõ¦‰
õó‚^ZáúDòJø<‹þŒú'-•hÓpè†Kàè™<:=‹4àX.F—d)9—:‡P{\Zú²LêЖï=Ô¾73-Ë]õ‰ú“ZPR’ŸêV^IañqxD€€?ŠGô^‰^èÅææ*E=¤oj"Gÿôa½³@z´ëÙøLìhîPðë;1{nôƒ iNê…O5ì*»œŒÿQ£ç…Øõë?ºQH5¡AAï‡ã}}…èÊ ¥¾ìóHÑ·#Ñ?li®ÅìFF††@FÏe]¿Â
³ÓR~¼:¤š@í1ÓØáw”}â—m9äØóón‚ºqãÌÇÇIÿȰÐOŠÞ×íø¶fEuÀÃú¦Æâ™%Ùa=½)“žYö{¨~…³ŸLÉqÿõùLí¿¬ÏI¹FнôË[°¿o‚…Âp ?Fë}F"[›`ƒ]G_§Ä£oki%ìÆ5¢ÇºÞÖ·ÓR.çØuÂs“Xž–)ƒS/`v©ô‘H–™™–ÏMÝ/ü1ƒDÏÃ:ªG¢¿Uˆ\#z„îÁ¤èŒôGí•`
ð•h×#Ïlka_¨oðXô ëyØ"Á‚ÅÀí>)9é/:Ó}|â¼½½÷ìIüâ‹ç=°ýÏ¡‘‡FïÙs16ά Ž!íÅ%‹þ§ë¨=("
‡…]À+Ò±++¡£
XO޾·ëë-\hL=À“ì´«g³Ý;ûŸ÷CGÈ)rÆb[í±_œsÎ’Ôü‚ÂÂ’bRôׯcöÃQ‘Xô˜Þ+Í]YUã‘g¶© êúöf’]_ൣ·b“ì´«§³;ûAML øô|†°÷ôº}ÎirÇ€‘½°Â“¢/(@퉇!==hœƒ~XîUåÑ7v½žˆž.YÉN»œžm¯zãÙRßTvz†º½¨àa==Éx‹>íz,÷Ÿ«Ë*Èx4ú0;›¾@GO‰ÞoSÐ8¯n? ðvª×ÛG=û²ú©L^Øu’£GíIþ0ÚõÈ€C¶—#ÉãÑ××Ac=Öïì÷è,X §½ =WÍNó¹,Û©^géLÎ>±v°ëP‹³G^„ð zâ™õ@ímÀæÑ£3Un§ëèÂxu=òÌréjvšOºXÚflûì‘ÞQqö©du:-/¿´ô¶zô„:@¢G»> ëwØN½²®ùƒy::Ñ›™ðùtõÜi´ät±ÜYÕ7]ÅéštÈ~ÒÑç£ö€ÈXŸHDŒæNCìd=}3jg®Ò›§««C=iáðNO“»wwÃG©šö®'¹8݇¦Y·òï;=4\â¹ÇAxrôà™ÅíUe$<1\Öס/Z¹«ŒæêBxµè®ç˜hAââceÞSÝãZöÁ®áòØtoo€ÜïÜEõDôhîqÒ“¢ÇÁʺ²²2Šèë›Ñƒ+k‰^½qù\ž¶„#“9u÷iØ»™ò˜x
:j'G_ŒÎMáqÉqÑG„‡£ßkz\¡ŽG¢¯Vâ/û–®5žëu°ÆAñF†lSà3Ež‹ú;t†í)ËŒ‰¥ºàKïÝÅõpôØMPôÕx<úh4zü[ÙTV¦ýýJ%~Êaa¾VàçiDodlÌã0µpýußqQ–Ë¢¾ÞѰž™5k¸kŽXŠíÛC};íV!°£z8úló’|$DõG…‘ø÷jWiá+ª›Hïœ>\9ÇãÑë/\ÌZj;
†–ðR—Ù½½£³‡G,#GOw3t(FàKo—’6aaW¯%“¢OŠ"¿>P´W—©éËËï75“ÿJ„Á*K¹êÑë-Ðg®2Õ Õêð‘R©«`´wDàš*½räØkî¥åü½{ˆþÎ"ÒžÕ/<,ùÚÕääd”¦vžªh¨/WÓWwh¼Aà¸Ö@wî\Ø<·z†œUÄ_) ®]Ÿ¥J$›7H¤>ßµõõ÷æçݽ‡d_Z¤vF&£èxÔž”®þEå㎪Šr¬î×uÔ5ªß@c0W®43ÖC†xý…FK¸,®ÖЮ]Á;R¡s±Ô-o¼ô<Ødƒá:]Ò8¤ öãz8øGhXæ÷¾ã1R5Jí?ÙŠÇüƒ¥åJ¤¬þÀÓœP§©ÿòò:ô§ÝI£Ý̃
(®üðC¨à (¿×Þ„õ[í=°êå¢ïÊ8VøÇÿ ©/&ÿIEND®B`‚
我觉得奇怪的是,“PNG”也被标记为朝向输出的顶部 - 所使用的文件都不是PNG文件,尽管它们可能已经在Photoshop中一次或另一次被转换。
如果我从他们的目录中删除图像文件,乱码输出消失 - 大概是因为DOMPDF没有渲染它们。这些PDF仍然被创建,但是这次图像只有很少的“X”标记以表示它们不存在。
如果我echo
$dompdf->render()
后echo
,该echo
“d内容出现前后混乱的输出前后 - 所以(再一次,大概)这就是问题的功能。
我认为自1月30日以来唯一改变的是我们的网络管理员将PHP从5.2.9版升级到5.3版。
我们使用IIS来托管此Web服务器。
我试过谷歌的问题,但没有人似乎有同样的问题。有没有人有什么建议?
由于提前,
你正在呼应你的PNG图像的来源。如果你右键点击任何PNG图像,并用文本编辑器打开..你会看到类似的输出 – 2013-03-14 14:39:14
这就是我认为@DarylGill。问题是 - 我没有使用PNG文件,也没有回应那种内容。该剧本自今年1月30日以来一直没有变化。 – dunc 2013-03-14 14:49:16
我在OP上添加了一行关于'dompdf-> render()'的内容,这可能会对事情做进一步的解释。 – dunc 2013-03-14 14:50:37