Changeset 1676 for pykota/trunk/pykota
- Timestamp:
- 08/22/04 01:16:57 (20 years ago)
- Location:
- pykota/trunk/pykota
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/pdlanalyzer.py
r1675 r1676 22 22 # 23 23 # $Log$ 24 # Revision 1.30 2004/08/21 23:16:57 jalet 25 # First draft of ESC/P2 (mini-)parser. 26 # 24 27 # Revision 1.29 2004/08/11 16:25:38 jalet 25 28 # Fixed index problem in PCLXL parser when retrieving number of copies for … … 213 216 for line in self.infile.xreadlines() : 214 217 pagecount += len(regexp.findall(line)) 218 return pagecount 219 220 class ESCP2Analyzer : 221 def __init__(self, infile) : 222 """Initialize ESC/P2 Analyzer.""" 223 self.infile = infile 224 225 def getJobSize(self) : 226 """Counts pages in an ESC/P2 document.""" 227 # typical new page marker is Carriage Return (with optional Line Feed) 228 # followed by Form Feed, followed by Escape character 229 marker1 = chr(13) + chr(12) + chr(27) 230 marker2 = chr(13) + chr(10) + chr(12) + chr(27) 231 pagecount = 0 232 for line in self.infile.xreadlines() : 233 c = line.count(marker1) 234 if not c : 235 c = line.count(marker2) 236 pagecount += c 215 237 return pagecount 216 238 … … 685 707 return 0 686 708 709 def isESCP2(self, data) : 710 """Returns 1 if data is ESC/P2, else 0.""" 711 if (data[:2] == "\033@") or (data[:2] == "\033*") : 712 return 1 713 else : 714 return 0 715 687 716 def detectPDLHandler(self) : 688 717 """Tries to autodetect the document format. … … 702 731 elif self.isPDF(firstblock) : 703 732 return PDFAnalyzer 733 elif self.isESCP2(firstblock) : 734 return ESCP2Analyzer 704 735 else : 705 736 raise PDLAnalyzerError, "Analysis of first data block failed." -
pykota/trunk/pykota/version.py
r1665 r1676 22 22 # 23 23 24 __version__ = "1.20alpha 1_unofficial"24 __version__ = "1.20alpha2_unofficial" 25 25 26 26 __doc__ = """PyKota : a complete Printing Quota Solution for CUPS and LPRng."""