[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/reports/src/adapters/filters/Standard/post...,
Jason Cater <=