Show
Ignore:
Timestamp:
03/15/07 19:48:25 (17 years ago)
Author:
jerome
Message:

v2.16 is out with a fix for some line based PCL3/4/5 drivers.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pkpgcounter/trunk/pkpgpdls/pcl345.py

    r443 r452  
    3333 
    3434NUL = chr(0x00) 
     35LINEFEED = chr(0x0a) 
    3536FORMFEED = chr(0x0c) 
    3637ESCAPE = chr(0x1b) 
     
    105106    def setPageDict(self, attribute, value) : 
    106107        """Initializes a page dictionnary.""" 
    107         dic = self.pages.setdefault(self.pagecount, { "copies" : 1, "mediasource" : "Main", "mediasize" : "Default", "mediatype" : "Plain", "orientation" : "Portrait", "escaped" : "", "duplex": 0}) 
     108        dic = self.pages.setdefault(self.pagecount, { "linescount" : 1, 
     109                                                      "copies" : 1,  
     110                                                      "mediasource" : "Main",  
     111                                                      "mediasize" : "Default",  
     112                                                      "mediatype" : "Plain",  
     113                                                      "orientation" : "Portrait",  
     114                                                      "escaped" : "",  
     115                                                      "duplex": 0 }) 
    108116        dic[attribute] = value 
    109117         
     
    226234                self.setPageDict("copies", value) 
    227235                #self.logdebug("COPIES %i" % value) 
     236            elif end == 'F' :     
     237                self.linesperpagevalues.append(value) 
     238                self.linesperpage = value 
     239                #self.logdebug("LINES PER PAGE : %i" % self.linesperpage) 
     240            #else : 
     241            #    self.logdebug("Unexpected end <%s> and value <%s>" % (end, value)) 
    228242                 
    229243    def escAmpa(self) :     
     
    293307                #self.logdebug("SKIPTO %08x" % self.pos) 
    294308                 
     309    def newLine(self) :             
     310        """Handles new lines markers.""" 
     311        if not self.hpgl2 : 
     312            dic = self.pages.get(self.pagecount, None) 
     313            if dic is None : 
     314                self.setPageDict("linescount", 1)                               
     315                dic = self.pages.get(self.pagecount) 
     316            nblines = dic["linescount"]     
     317            self.setPageDict("linescount", nblines + 1)                               
     318            if (self.linesperpage is not None) \ 
     319               and (dic["linescount"] > self.linesperpage) : 
     320                self.pagecount += 1 
     321         
    295322    def getInteger(self) :     
    296323        """Returns an integer value and the end character.""" 
     
    360387        self.orientationsvalues = [] 
    361388        self.mediatypesvalues = [] 
     389        self.linesperpagevalues = [] 
     390        self.linesperpage = None 
    362391        self.startgfx = [] 
    363392        self.endgfx = [] 
     
    368397         
    369398        tags = [ lambda : None] * 256 
     399        tags[ord(LINEFEED)] = self.newLine 
    370400        tags[ord(FORMFEED)] = self.endPage 
    371401        tags[ord(ESCAPE)] = self.escape 
     
    442472        if self.isimagerunner : 
    443473            self.pagecount += 1      # ImageRunner adjustment 
     474        elif self.linesperpage is not None :     
     475            self.pagecount += 1      # Adjusts for incomplete last page 
    444476        elif len(self.startgfx) == len(self.endgfx) == 0 : 
    445477            if self.resets % 2 :