Changeset 371

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

Refactored some duplicate code.

Location:
pkpgcounter/trunk/pkpgpdls
Files:
3 modified

Legend:

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

    r364 r371  
    2525 
    2626import sys 
    27 import popen2 
    2827import re 
    2928 
     
    4443class Parser(pdlparser.PDLParser) : 
    4544    """A parser for PDF documents.""" 
     45    totiffcommand = 'gs -sDEVICE=tiff24nc -dPARANOIDSAFER -dNOPAUSE -dBATCH -dQUIET -r%(dpi)i -sOutputFile="%(fname)s" -' 
    4646    def isValid(self) :     
    4747        """Returns 1 if data is PDF, else 0.""" 
     
    105105        return pagecount     
    106106         
    107     def convertToTiffMultiPage24NC(self, fname, dpi) : 
    108         """Converts the input file to TIFF format, X dpi, 24 bits per pixel, uncompressed. 
    109            Writes TIFF datas to the outputfile file object. 
    110         """    
    111         command = 'gs -sDEVICE=tiff24nc -dPARANOIDSAFER -dNOPAUSE -dBATCH -dQUIET -r%i -sOutputFile="%s" -' % (dpi, fname) 
    112         child = popen2.Popen4(command) 
    113         try : 
    114             data = self.infile.read(pdlparser.MEGABYTE)     
    115             while data : 
    116                 child.tochild.write(data) 
    117                 data = self.infile.read(pdlparser.MEGABYTE) 
    118             child.tochild.flush() 
    119             child.tochild.close()     
    120         except (IOError, OSError), msg :     
    121             raise pdlparser.PDLParserError, "Problem during conversion to TIFF : %s" % msg 
    122              
    123         child.fromchild.close() 
    124         try : 
    125             child.wait() 
    126         except OSError, msg :     
    127             raise pdlparser.PDLParserError, "Problem during conversion to TIFF : %s" % msg 
    128          
    129107def test() :         
    130108    """Test function.""" 
  • 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." 
  • pkpgcounter/trunk/pkpgpdls/postscript.py

    r363 r371  
    3434class Parser(pdlparser.PDLParser) : 
    3535    """A parser for PostScript documents.""" 
     36    totiffcommand = 'gs -sDEVICE=tiff24nc -dPARANOIDSAFER -dNOPAUSE -dBATCH -dQUIET -r%(dpi)i -sOutputFile="%(fname)s" -' 
    3637    def isValid(self) :     
    3738        """Returns 1 if data is PostScript, else 0.""" 
     
    177178        return self.natively() or self.throughGhostScript() 
    178179         
    179     def convertToTiffMultiPage24NC(self, fname, dpi) : 
    180         """Converts the input file to TIFF format, X dpi, 24 bits per pixel, uncompressed. 
    181            Writes TIFF datas to the outputfile file object. 
    182         """    
    183         command = 'gs -sDEVICE=tiff24nc -dPARANOIDSAFER -dNOPAUSE -dBATCH -dQUIET -r%i -sOutputFile="%s" -' % (dpi, fname) 
    184         child = popen2.Popen4(command) 
    185         try : 
    186             data = self.infile.read(pdlparser.MEGABYTE)     
    187             while data : 
    188                 child.tochild.write(data) 
    189                 data = self.infile.read(pdlparser.MEGABYTE) 
    190             child.tochild.flush() 
    191             child.tochild.close()     
    192         except (IOError, OSError), msg :     
    193             raise pdlparser.PDLParserError, "Problem during conversion to TIFF : %s" % msg 
    194              
    195         child.fromchild.close() 
    196         try : 
    197             child.wait() 
    198         except OSError, msg :     
    199             raise pdlparser.PDLParserError, "Problem during conversion to TIFF : %s" % msg 
    200          
    201180def test() :         
    202181    """Test function."""