Changeset 1676
- Timestamp:
- 08/22/04 01:16:57 (20 years ago)
- Location:
- pykota/trunk
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/NEWS
r1675 r1676 22 22 PyKota NEWS : 23 23 24 - 1.20alpha2 : 25 26 - First version of ESC/P2 analyzer. Seems to work 27 ok at least with 'epson', 'epsonc', 'eps9mid' 28 and 'esp9high' ghostscript devices. Needs more 29 work to correctly analyze other devices. 30 24 31 - 1.20alpha1 : 25 32 -
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.""" -
pykota/trunk/tests/runtest.sh
r1589 r1676 4 4 /bin/rm -f testsuite.* master2.ps 5 5 gunzip <master.ps.gz >master2.ps 6 for device in laserjet ljet3 ljet4 lj5gray lj5mono pxlmono pxlcolor pdfwrite pswrite psgray psmono psrgb ; do6 for device in laserjet ljet3 ljet4 lj5gray lj5mono pxlmono pxlcolor pdfwrite pswrite psgray psmono psrgb epson epsonc eps9mid eps9high ; do 7 7 gs -dQUIET -dBATCH -dNOPAUSE -sOutputFile="testsuite.$device" -sDEVICE="$device" master2.ps ; 8 8 done