shane07 Posted December 14, 2007 Share Posted December 14, 2007 Hello I have downloaded php class for html to pdf from phpclasses.org. I just tried it but it is not working. The exported pdf is of 0 bytes. Even when I run the program as it is, it is not working. Same problem arise there too. The class file is as follows: define ("HKC_USE_ABC",1); define ("HKC_USE_EASYW",2); class HTML_TO_PDF { var $html = ""; var $htmlurl= ""; var $error = ""; var $host = ""; var $port = 80; var $url = ""; var $_useurl = ""; var $saveFile = ""; var $downloadFile = ""; var $_cookie = ""; function HTML_TO_PDF($html="",$useurl = HKC_USE_ABC) { $this->html = $html; $this->_useurl=$useurl; } function useURL($useurl) { $this->_useurl = $useurl; } function saveFile($file="") { if(empty($file)) $this->saveFile = time().".pdf"; else $this->saveFile =$file; } function downloadFile($file="") { if(empty($file)) $this->downloadFile = time().".pdf"; else $this->downloadFile =$file; } function error() { return $this->error; } function convertHTML($html="") { if(!empty($html)) $this->html=$html; $htmlfile = time().".html"; $url = "http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF'])."/".$htmlfile; $this->write_file($htmlfile,$this->html); $return = $this->convertURL($url); if(is_file($htmlfile)) @unlink($htmlfile); return $return; } function convertURL($url) { $this->htmlurl = $url; if($this->_useurl == HKC_USE_ABC) return $this->_convertABC(); elseif ($this->_useurl == HKC_USE_EASYW) return $this->_convertEASYW(); } function _convertABC() { $this->host = "64.39.14.230"; $this->url = "/pdf-net/cleardoc.aspx"; $this->_sendRequest($s_POST_DATA); $s_POST_DATA = "url=".urlencode($this->htmlurl); $s_POST_DATA.= "&PagedOutput=on"; $s_POST_DATA.= "&AddLinks=on"; $s_POST_DATA.= "&x=30"; $s_POST_DATA.= "&y=30"; $s_POST_DATA.= "&w=550"; $s_POST_DATA.= "&h=704"; $s_POST_DATA.= "&UserName="; $s_POST_DATA.= "&Password="; $s_POST_DATA.= "&Timeout=15550"; $s_POST_DATA.= "&Submit=Add URL"; $this->url = "/pdf-net/addurl.aspx"; $this->_sendRequest($s_POST_DATA); $this->url = "/pdf-net/showdoc.aspx"; $s_POST_DATA = ""; $pdfdata = $this->_sendRequest($s_POST_DATA); if($pdfdata===false) return false; if(!empty($this->saveFile)) $this->write_file($this->saveFile,$pdfdata); if(!empty($this->downloadFile)) $this->download_file($pdfdata); return $pdfdata; } function _convertEASYW() { //http://www.easysw.com/htmldoc/pdf-o-matic.php $this->url= "/htmldoc/pdf-o-matic.php"; $this->host="www.easysw.com"; $s_POST_DATA = "URL=".urlencode($this->htmlurl); $s_POST_DATA .= "&FORMAT=.pdf"; $pdfdata = @file_get_contents("http://".$this->host.$this->url."?".$s_POST_DATA); if(!empty($pdfdata)) { if(!empty($this->saveFile)) $this->write_file($this->saveFile,$pdfdata); if(!empty($this->downloadFile)) $this->download_file($pdfdata); return true; } $pdfdata = $this->_sendRequest($s_POST_DATA); if($pdfdata===false) return false; if(!empty($this->saveFile)) $this->write_file($this->saveFile,$pdfdata); if(!empty($this->downloadFile)) $this->download_file($pdfdata); return $pdfdata; } function _sendRequest($s_POST_DATA) { if(function_exists("curl_init")) return $this->_sendCRequest($s_POST_DATA); else return $this->_sendSRequest($s_POST_DATA); } function _sendSRequest($s_POST_DATA) { $s_Request = "POST ".$this->url." HTTP/1.0\n"; $s_Request .="Host: ".$this->host.":".$this->port."\n"; $s_Request .="Content-Type: application/x-www-form-urlencoded\n"; $s_Request .="Content-Length: ".strlen($s_POST_DATA)."\n"; if($this->_useurl == HKC_USE_ABC && !empty($this->_cookie)) $s_Request .="Cookie: ".$this->_cookie."\n"; $s_Request .="\n".$s_POST_DATA."\n\n"; $fp = fsockopen ($this->host, $this->port, $errno, $errstr, 30); if(!$fp) { $this->error = "ERROR: $errno - $errstr<br />\n"; return false; } fputs ($fp, $s_Request); while (!feof($fp)) { $this->GatewayResponse .= fgets ($fp, 128); } fclose ($fp); if(empty($this->_cookie)) { @preg_match("/ASP.NET_SessionId[^;]*/s", $this->GatewayResponse, $match); $this->_cookie = $match[0]; } @preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $this->GatewayResponse, $match); if($this->_useurl == HKC_USE_ABC) @preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $match[2], $match); $this->GatewayResponse =$match[2]; return $this->GatewayResponse; } function _sendCRequest($s_POST_DATA) { $ch = curl_init(); //"http://".$this->host.":".$this->port.$this->url; curl_setopt( $ch, CURLOPT_URL, "http://".$this->host.":".$this->port.$this->url ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS,$s_POST_DATA); if($this->_useurl == HKC_USE_ABC && !empty($this->_cookie)) curl_setopt( $ch, CURLOPT_COOKIE,$this->_cookie); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_TIMEOUT,30 ); curl_setopt($ch, CURLOPT_HEADER, 1); $this->GatewayResponse=curl_exec( $ch ); if(curl_error($ch)!="") { $this->error = "ERROR: ".curl_error($ch)."<br />\n"; return false; } curl_close($ch); if(empty($this->_cookie)) { @preg_match("/ASP.NET_SessionId[^;]*/s", $this->GatewayResponse, $match); $this->_cookie = $match[0]; } @preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $this->GatewayResponse, $match); if($this->_useurl == HKC_USE_ABC) @preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $match[2], $match); $this->GatewayResponse =$match[2]; return $this->GatewayResponse; } function write_file($file,$content,$mode="w") { $fp=@fopen($file,$mode); if(!is_resource($fp)) return false; fwrite($fp,$content); fclose($fp); return true; } function download_file($pdfdata) { @header("Cache-Control: ");// leave blank to avoid IE errors @header("Pragma: ");// leave blank to avoid IE errors @header("Content-type: application/octet-stream"); @header("Content-Disposition: attachment; filename=".$this->downloadFile); echo $pdfdata; } } and the file where this class is included is as follows: require('html_to_pdf.inc.php'); $htmltopdf = new HTML_TO_PDF(); //$htmltopdf->useURL(HKC_USE_EASYW); // default HKC_USE_ABC other HKC_USE_EASYW $htmltopdf->saveFile("abc.pdf"); $htmltopdf->downloadFile("abc.pdf"); //$result = $htmltopdf->convertHTML("<b>MY TEST</b>"); $result = $htmltopdf->convertURL("http://test.ultraglobal.info/govazo/"); if($result==false) echo $htmltopdf->error(); The abc.pdf file is exported but is of 0 bytes waiting for ur reply. Thank You. Link to comment https://forums.phpfreaks.com/topic/81626-php-class-for-converting-html-to-pdf-not-working/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.