html2pcl and html2ps wrapper class

This wrapper class is a gift for my blog readers. I think the class is self descriptive. This is why I ain’t write how to use it bla bla bla…You can make pcl and ps files from html with this class. I have submitted this class at phpclasses too. You may have a look by clicking HERE. It runs both on Windows and *Nix envioronment.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/* Description of wrapper class Html2pcl
* This class is used to produce .PCL and .PS file from HTML file
* @Author      : Nurul Ferdous
* Version      : 1.0.0
* Date         : 16 Dec 2008
* License      : Freeware
* Dependancy-1: html2ps package, you may get it from here: http://user.it.uu.se/~jan/html2ps.html
* you may install it from terminal by typing "sudo apt-get install html2ps" withpcl quote in kubuntu (in my case)
* html2ps uses perl
* Dependancy-2: Ghostscript, you may get it from here: http://pages.cs.wisc.edu/~ghost/
* Download it and run "make" command from terminal. you have to download and run exe installer if you use Windows
* The ps_output directory is used to store .ps files which are used to generate smaller sized pcl file
* keep in your mind that you should have write permission in "pcl_output" directory
*/
 
class Html2pcl {
 
    public $device = 'laserjet'; //alternatively you may use 'epson' etc as printers
    public $paperSize = 'a4'; //alternative you may use 'letter' etc as papersize
 
    function __construct(){
        //checking whether the directory named "out" already exists or not
        if(!file_exists("pcl_output")){
            mkdir("./pcl_output", 0755);
        }
 
        //checking whether the directory named "ps_output" already exists or not
        if(!file_exists("ps_output")){
            mkdir("./ps_output", 0755);
        }
    }
 
    function __destruct(){
        //Clearing file status cache
        clearstatcache();
    }
 
    function isWinServer()
    {
        return !(strpos(strtoupper($_SERVER['SERVER_SOFTWARE']), 'WIN32') === false);
    }
 
    //please don't use $htmlFileName without "http://" rather use like this "http://www.google.com"
    //please use $pclFileName without the extension like "google"
    function makePCL($htmlFileName, $pclFileName){
        $file = './pcl_output/'.$pclFileName.'.pcl';
        if($this-&gt;isWinServer()){
            //checking whether the file name given as parameter is already exists or not
            if(!file_exists($file)){
                exec("perl html2ps $htmlFileName &gt; ./ps_output/".$pclFileName.".ps");
                exec("gs -sDEVICE={$this-&gt;device} -sPAPERSIZE={$this-&gt;paperSize} -sOutputFile=./pcl_output/$pclFileName.pcl -dNOPAUSE -q ./ps_output/$pclFileName.ps -c quit");
            }
        }
        else{
            if(!file_exists($file)){
                exec("html2ps $htmlFileName &gt; ./ps_output/".$pclFileName.".ps");
                exec("gs -sDEVICE={$this-&gt;device} -sPAPERSIZE={$this-&gt;paperSize} -sOutputFile=./pcl_output/$pclFileName.pcl -dNOPAUSE -q ./ps_output/$pclFileName.ps -c quit");
            }
        }
    }
}
?>
<a href="http://dynamicguy.com/wp-content/uploads/2010/07/assembler.jpg"><img src="http://dynamicguy.com/wp-content/uploads/2010/07/assembler-300x211.jpg" alt="" title="assembler" width="300" height="211" class="alignleft size-medium wp-image-15" /></a>

No related posts.

Leave a Reply