Show
Ignore:
Timestamp:
08/26/06 23:39:31 (18 years ago)
Author:
jerome
Message:

Refactored some duplicate code.

Files:
1 modified

Legend:

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

    r363 r371  
    2323 
    2424import sys 
     25import popen2 
    2526 
    2627KILOBYTE = 1024     
     
    4041class PDLParser : 
    4142    """Generic PDL parser.""" 
     43    totiffcommand = None        # Default command to convert to TIFF 
    4244    def __init__(self, infile, debug=0, firstblock=None, lastblock=None) : 
    4345        """Initialize the generic parser.""" 
     
    8789           Writes TIFF datas to the file named by fname. 
    8890        """    
    89         raise RuntimeError, "Not implemented !" 
     91        if self.totiffcommand : 
     92            child = popen2.Popen4(self.totiffcommand % locals()) 
     93            try : 
     94                try : 
     95                    data = self.infile.read(MEGABYTE)     
     96                    while data : 
     97                        child.tochild.write(data) 
     98                        data = self.infile.read(MEGABYTE) 
     99                    child.tochild.flush() 
     100                    child.tochild.close()     
     101                except (IOError, OSError), msg :     
     102                    raise PDLParserError, "Problem during conversion to TIFF : %s" % msg 
     103            finally :     
     104                child.fromchild.close() 
     105                 
     106            try : 
     107                child.wait() 
     108            except OSError, msg :     
     109                raise PDLParserError, "Problem during conversion to TIFF : %s" % msg 
     110        else :         
     111            raise PDLParserError, "Impossible to compute ink coverage for this file format."