2013-03-14 76 views
0

在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是使用图像创建和保存的。

今天我回来了,找了两两件事:

  1. 图像不会被保存PDF文件的工作,虽然没有X,以表明他们错过
  2. 有一个乱码文本输出量巨大,我怀疑可能是文字形式的图像

下面是一些输出:

‰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áŒ"–’ʺæfe­Vô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öÁ®áòØto­o€ÜïÜ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服务器。

我试过谷歌的问题,但没有人似乎有同样的问题。有没有人有什么建议?

由于提前,

+0

你正在呼应你的PNG图像的来源。如果你右键点击任何PNG图像,并用文本编辑器打开..你会看到类似的输出 – 2013-03-14 14:39:14

+0

这就是我认为@DarylGill。问题是 - 我没有使用PNG文件,也没有回应那种内容。该剧本自今年1月30日以来一直没有变化。 – dunc 2013-03-14 14:49:16

+0

我在OP上添加了一行关于'dompdf-> render()'的内容,这可能会对事情做进一步的解释。 – dunc 2013-03-14 14:50:37

回答

0

升级到DOMPDF的最新版本,现在我有一个完全不同的问题。