Update
svn: r2952
This commit is contained in:
parent
35fe331daf
commit
ceff4ae87c
@ -123,6 +123,8 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
"""
|
||||
This function returns the gnomeprint.Font() object instance
|
||||
corresponding to the parameters of BaseDoc.FontStyle()
|
||||
|
||||
fontstyle : a BaseDoc.FontStyle() instance
|
||||
"""
|
||||
|
||||
if fontstyle.get_type_face() == BaseDoc.FONT_SANS_SERIF:
|
||||
@ -221,7 +223,9 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
# in that the writing is deferred when in tables and/or paragraphs.
|
||||
# Paragraph text is accumulated, so afterwards, when it's tim to write,
|
||||
# one would need some pointers as to when to change the font (and where
|
||||
# to change it back
|
||||
# to change it back. The easiest solution I can see is to replace
|
||||
# each paragraph with the list:
|
||||
# [ ['Regular', 'text text'], ['Bold', 'other text'], ['Regular', 'text'] ]
|
||||
#===========================
|
||||
def start_bold(self):
|
||||
"""Bold face"""
|
||||
@ -260,13 +264,10 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
self.__tbl_style = self.table_styles[style_name]
|
||||
self.__ncols = self.__tbl_style.get_columns()
|
||||
self.rownum = -1
|
||||
self.__paragrapgh_styles = [[None] * self.__ncols]
|
||||
table_width = (self.__right_margin - self.__left_margin) * \
|
||||
self.__paragrapgh_styles = []
|
||||
self.__table_width = (self.__right_margin - self.__left_margin) * \
|
||||
self.__tbl_style.get_width() / 100.0
|
||||
self.cell_widths = [0] * self.__ncols
|
||||
for cell in range(self.__ncols):
|
||||
self.cell_widths[cell] = table_width * \
|
||||
self.__tbl_style.get_column_width(cell) / 100.0
|
||||
self.__cell_widths = []
|
||||
|
||||
def end_table(self):
|
||||
"""Close the table environment"""
|
||||
@ -284,7 +285,12 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
self.__row_data=[]
|
||||
self.rownum = self.rownum + 1
|
||||
self.cellnum = -1
|
||||
self.__span = 1
|
||||
self.__paragrapgh_styles.append([None] * self.__ncols)
|
||||
self.__cell_widths.append([0] * self.__ncols)
|
||||
for cell in range(self.__ncols):
|
||||
self.__cell_widths[self.rownum][cell] = self.__table_width * \
|
||||
self.__tbl_style.get_column_width(cell) / 100.0
|
||||
|
||||
def end_row(self):
|
||||
"""End the row (new line)"""
|
||||
@ -298,9 +304,14 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
for safety of formatting."""
|
||||
#print "start cell"
|
||||
#reset this state
|
||||
self.__in_cell=1
|
||||
self.__cell_data=""
|
||||
self.cellnum = self.cellnum + span
|
||||
self.__in_cell = 1
|
||||
self.__cell_data = ""
|
||||
self.cellnum = self.cellnum + self.__span
|
||||
self.__span = span
|
||||
for __extra_cell in range(1,span):
|
||||
self.__cell_widths[self.rownum][self.cellnum] += \
|
||||
self.__cell_widths[self.rownum][self.cellnum + __extra_cell]
|
||||
self.__cell_widths[self.rownum][self.cellnum + __extra_cell] = 0
|
||||
|
||||
def end_cell(self):
|
||||
"""Prepares for next cell"""
|
||||
@ -422,6 +433,20 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
# self.__left_margin, self.__right_margin)
|
||||
# #self.__y=self.__advance_line(self.__y)
|
||||
|
||||
def write_note(self,text,format,style_name):
|
||||
if format == 1:
|
||||
for line in text.split('\n'):
|
||||
self.start_paragraph(style_name)
|
||||
self.write_text(line)
|
||||
self.end_paragraph()
|
||||
elif format == 0:
|
||||
for line in text.split('\n\n'):
|
||||
self.start_paragraph(style_name)
|
||||
line = line.replace('\n',' ')
|
||||
line = string.join(string.split(line))
|
||||
self.write_text(line)
|
||||
self.end_paragraph()
|
||||
|
||||
#function to help us advance a line
|
||||
def __advance_line(self, y):
|
||||
return y - _LINE_SPACING
|
||||
@ -524,6 +549,10 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
__row = self.__table_data[__row_num][:]
|
||||
#do calcs on each __row and keep track on max length of each column
|
||||
for __col in range(self.__ncols):
|
||||
if not self.__cell_widths[__row_num][__col]:
|
||||
continue
|
||||
if not self.__paragrapgh_styles[__row_num][__col]:
|
||||
continue
|
||||
fontstyle = self.__paragrapgh_styles[__row_num][__col].get_font()
|
||||
|
||||
__min = self.__min_column_size(__row[__col]+" "*3,fontstyle)
|
||||
@ -531,8 +560,8 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
__min_col_size[__col] = __min
|
||||
|
||||
__max = self.__text_height(__row[__col],
|
||||
self.cell_widths[__col],
|
||||
fontstyle)
|
||||
self.__cell_widths[__row_num][__col],
|
||||
fontstyle)
|
||||
if __max > __max_vspace[__row_num]:
|
||||
__max_vspace[__row_num] = __max
|
||||
|
||||
@ -563,14 +592,20 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
__min_y=self.__y
|
||||
|
||||
for __col in range(self.__ncols):
|
||||
if not self.__cell_widths[__row_num][__col]:
|
||||
continue
|
||||
if not self.__paragrapgh_styles[__row_num][__col]:
|
||||
continue
|
||||
fontstyle = self.__paragrapgh_styles[__row_num][__col].get_font()
|
||||
|
||||
__nothing, __y=self.__print_text(__row[__col],
|
||||
self.__x, self.__y,
|
||||
__x, __x+self.cell_widths[__col],
|
||||
fontstyle)
|
||||
self.__x,
|
||||
self.__y,
|
||||
__x,
|
||||
__x+self.__cell_widths[__row_num][__col],
|
||||
fontstyle)
|
||||
|
||||
__x=__x+self.cell_widths[__col] # set up margin for this row
|
||||
__x=__x+self.__cell_widths[__row_num][__col] # set up margin for this row
|
||||
if __y < __min_y: # if we go below current lowest
|
||||
__min_y=__y # column
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user