commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/reports/src/adapters/filters/Standard/post...


From: Jason Cater
Subject: gnue/reports/src/adapters/filters/Standard/post...
Date: Mon, 28 Apr 2003 19:01:32 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    03/04/28 19:01:32

Modified files:
        reports/src/adapters/filters/Standard/postscript: Writer.py 
        reports/src/adapters/filters/Standard/postscript/psutils: 
                                                                  
PrinterDefinition.py 

Log message:
        more work on postscript

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/reports/src/adapters/filters/Standard/postscript/Writer.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text

Patches:
Index: gnue/reports/src/adapters/filters/Standard/postscript/Writer.py
diff -c gnue/reports/src/adapters/filters/Standard/postscript/Writer.py:1.3 
gnue/reports/src/adapters/filters/Standard/postscript/Writer.py:1.4
*** gnue/reports/src/adapters/filters/Standard/postscript/Writer.py:1.3 Mon Apr 
28 14:23:55 2003
--- gnue/reports/src/adapters/filters/Standard/postscript/Writer.py     Mon Apr 
28 19:01:32 2003
***************
*** 28,34 ****
--- 28,36 ----
  
  __all__ = ['Writer']
  
+ from gnue.common.utils.TextUtils import lineWrap
  from psutils.PSOutputStream import PS2OutputStream
+ import string, time
  
  from gnue.reports.adapters.filters.Standard.Base.Writers.AbsoluteWriter 
import *
  
***************
*** 38,44 ****
    BITMAP_FORMATS=[]
    VECTOR_FORMATS=['eps']
  
- 
    def initialize(self):
  
      # Write headers to file... initialize state variables
--- 40,45 ----
***************
*** 47,52 ****
--- 48,55 ----
      from psutils.GenericDefinitions.Postscript2Driver import Postscript2Driver
      self.ppd = Postscript2Driver()
  
+ 
+     w, h = self.ppd.getPage
      self.handle = handle
      self.ppd = ppd
  
***************
*** 80,90 ****
      # Set number of pages
      self.__pages += 1
  
!     self.handle.write('%%%%Page: %s %s\n' % (self.__pages, self.__pages))
!     self.handle.write('%%BeginPageSetup\n')
!     self.handle.write('/psave save def\n')
!     # Set default coordinates, etc
!     self.handle.write('%%EndPageSetup\n')
  
    def _closePage(self):
      # Keep track of our page status
--- 83,95 ----
      # Set number of pages
      self.__pages += 1
  
!     handle = self.handle
! 
!     handle.write('%%%%Page: %s %s\n' % (self.__pages, self.__pages))
!     handle.write('%%BeginPageSetup\n')
!     handle.write('/psave save def\n')
!     # TODO: Set default coordinates, etc
!     handle.write('%%EndPageSetup\n')
  
    def _closePage(self):
      # Keep track of our page status
***************
*** 93,120 ****
      self.handle.write("showpage\n")
  
    def _writeHeader(self):
!     self.handle.write(PS_HEADER)
  
  PS_HEADER = """\
  %%!PS-Adobe-3.0
! %%%%Creator: GNUe Reports %(version)s
! %%%%Title: %(reporttitle)s
! %%%%CreationDate: %(date)s
! %%%%BoundingBox: %(bb1)s %(bb2)s %(bb3)s %(bb4)s
! %%%%LanguageLevel: 2
! %%%%Orientation: %(orientation)s
  %%%%Pages: (atend)
  %%%%DocumentNeededFonts: (atend)
  %%%%DocumentSuppliedFonts: (atend)
! %%%%DocumentData: Clean7Bit
  %%%%EndComments
  %%%%BeginProlog
  %% This copyright applies to everything between here and the %%%%EndProlog:
  %% Copyright (C) 2003 Free Software Foundation.  All rights reserved.
! %% This code section is subject to the GPL version 2.0.
  %%%%BeginResource: procset GNUeReports_Standard_ProcSet %(procsetversion)s 0
  /GNUeReports_Standard_ProcSet 40 dict dup begin
! %%%%EndProlog
  """
  
  
--- 98,162 ----
      self.handle.write("showpage\n")
  
    def _writeHeader(self):
! 
!     handle = self.handle
! 
!     # TODO
!     title = "Test Report"
! 
!     handle.write(PS_HEADER % (VERSION, title,
!                           time.strftime("%Y-%m-%d %H:%M:%S",
!                             time.localtime(time.time()))))
! 
!     handle.write(self.ppd.getDscComments())
!     handle.write(PROLOG_HEADER)
! 
!     #
!     # Create our procset
!     #
!     text = "/Bd {bind def} bind")
! 
!     for func in _PROCSET.keys():
!       text  += " /%s {%s} Bd" % (func, _PROCSET[next][1])
! 
!     # Line sizes are limited to 255, but we will
!     # wrap at 78 for more readable files. Not
!     # that this output is overly readable :^)
!     handle.write(lineWrap(text,78,0))
! 
!     handle.write(PROLOG_FOOTER)
! 
!     handle.write("%%BeginSetup\n")
!     handle.write(self.ppd.getDscSetup())
!     handle.write("%%EndSetup\n")
! 
  
  PS_HEADER = """\
  %%!PS-Adobe-3.0
! %%%%Creator: GNUe Reports %s
! %%%%Title: %s
! %%%%CreationDate: %s
  %%%%Pages: (atend)
+ %%%%DocumentData: Clean7Bit
  %%%%DocumentNeededFonts: (atend)
  %%%%DocumentSuppliedFonts: (atend)
! %%%%LanguageLevel: 2
! """
! 
! PROLOG_HEADER = """\
  %%%%EndComments
  %%%%BeginProlog
  %% This copyright applies to everything between here and the %%%%EndProlog:
  %% Copyright (C) 2003 Free Software Foundation.  All rights reserved.
! %% This code section is subject to the terms of GPL version 2.0.
  %%%%BeginResource: procset GNUeReports_Standard_ProcSet %(procsetversion)s 0
  /GNUeReports_Standard_ProcSet 40 dict dup begin
! """
! 
! PROLOG_FOOTER = """\
! end
! %%EndResource
! %%EndProlog
  """
  
  
***************
*** 145,147 ****
--- 187,198 ----
  """),
  
  }
+ 
+ #
+ # Build a reverse lookup for _PROCSET
+ #
+ _PROCSETREV = {}
+ for key, pairs in _PROCSET.items():
+   if _PROCSETREV.has_key(pairs[0]):
+     raise "Programming Error: Duplicate procset definition for %s" % pairs[0]
+   _PROCSETREV[pairs[0]] = key
Index: 
gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py
diff -c 
gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py:1.11
 
gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py:1.12
*** 
gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py:1.11
     Wed Apr 23 18:31:51 2003
--- 
gnue/reports/src/adapters/filters/Standard/postscript/psutils/PrinterDefinition.py
  Mon Apr 28 19:01:32 2003
***************
*** 46,59 ****
    #
    # Public methods
    #
!   def getOrientation(self):
!     return 'Portrait' # Landscape
  
!   def getImagableArea(self):
!     return (0,0,10,10)
  
!   def getPageSize(self):
!     return 'Letter'
  
  
    #
--- 46,78 ----
    #
    # Public methods
    #
!   def getCanvasSize(self):
!     return (50,800)
  
!   def getBoundingBox(self):
!     return (0,0,50,800)
  
!   def getDscComments(self):
!     rv = "%%%%Orientation: %s" % (self.landscape and "Landscape" or 
"Portrait")
!     rv += "%%%%BoundingBox: %s %s %s %s" %  self.getBoundingBox()
! 
!   def getDscSetup(self):
!     rv = ""
!     if self.copies > 1:
!       rv += "<< /NumCopies %d >> setpagedevice\n" % self.copies
!     self self.landscape:
!       rv += 
!     return rv
! 
!   def getDscPageSetup(self):
!     # Cache the page setup code as it (currently?)
!     #  doesn't change from one page to the next.
!     try:
!       return = self.__pageSetupCode
!     except:
!       rv = ""
!       self.__pageSetupCode = rv
!       return rv
  
  
    #
***************
*** 66,71 ****
--- 85,93 ----
      self.__defaults__ = {}
      self.__values__ = {}
  
+     self.copies = 0
+     self.landscape = 0
+ 
      self.loadFile(location)
  
    def __getattr__(self, attr):
***************
*** 75,80 ****
--- 97,126 ----
        return self.__properties__[attr]
  
  
+   def __getitem__(self, attr):
+     try:
+       return self.__values__[attr]
+     except KeyError:
+       try:
+         return self.__defaults__[attr]
+       except:
+         return ""
+ 
+   def getNameAndCode(self, attr):
+     return (self[attr], self.getCode(attr))
+ 
+   def getCode(self, attr):
+     value = self.__properties__[self[attr]]
+     code = self.__properties__[attr][value][0]
+     rv = "%%%%BeginFeature: %s *%s\n" % (attr, value)
+     rv += code
+     rv += "\n%%EndFeature\n"
+     return rv
+ 
+   #
+   # Load/import a new file
+   # Can be passed a file buffer or a file name.
+   #
    def loadFile(self, location):
      # Get a file handle.
      # location can be either a string, or a buffer
***************
*** 141,147 ****
        if data[:1] == '^':
          # Create a wrapper, so the app developer doesn't
          # have to distinguish between data being a symbol
!         # and being a string.  _SymbolData acts like a string.
          data = _SymbolData(self, data[1:])
  
        # Double Quotes means data is Quoted... treat specially
--- 187,193 ----
        if data[:1] == '^':
          # Create a wrapper, so the app developer doesn't
          # have to distinguish between data being a symbol
!         # or a string.  _SymbolData acts like a string.
          data = _SymbolData(self, data[1:])
  
        # Double Quotes means data is Quoted... treat specially
***************
*** 202,207 ****
--- 248,255 ----
  
        elif keyword[:7] == 'Default':
          print "    Setting default value for %s" % keyword[7:]
+         # Only keep the first reference... later
+         # values do not override the first.
          if not self.__defaults__.has_key(keyword[7:]):
            self.__defaults__[keyword[7:]] = data
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]