Added the ability to add images if the python imaging library is installed
svn: r50
This commit is contained in:
parent
f09fd3fd54
commit
4cd227481a
@ -21,7 +21,7 @@
|
|||||||
from TextDoc import *
|
from TextDoc import *
|
||||||
|
|
||||||
import reportlab.platypus.tables
|
import reportlab.platypus.tables
|
||||||
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
|
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak, Image
|
||||||
from reportlab.rl_config import defaultPageSize
|
from reportlab.rl_config import defaultPageSize
|
||||||
from reportlab.lib.units import cm
|
from reportlab.lib.units import cm
|
||||||
from reportlab.lib.colors import Color
|
from reportlab.lib.colors import Color
|
||||||
@ -29,6 +29,12 @@ from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
|
|||||||
|
|
||||||
import reportlab.lib.styles
|
import reportlab.lib.styles
|
||||||
|
|
||||||
|
try:
|
||||||
|
import PIL.Image
|
||||||
|
no_pil = 0
|
||||||
|
except:
|
||||||
|
no_pil = 1
|
||||||
|
|
||||||
def page_def(canvas,doc):
|
def page_def(canvas,doc):
|
||||||
canvas.saveState()
|
canvas.saveState()
|
||||||
canvas.restoreState()
|
canvas.restoreState()
|
||||||
@ -102,11 +108,14 @@ class PdfDoc(TextDoc):
|
|||||||
self.current_para = self.pdfstyles[style_name]
|
self.current_para = self.pdfstyles[style_name]
|
||||||
self.my_para = self.style_list[style_name]
|
self.my_para = self.style_list[style_name]
|
||||||
self.text = ""
|
self.text = ""
|
||||||
|
self.image = 0
|
||||||
|
|
||||||
def end_paragraph(self):
|
def end_paragraph(self):
|
||||||
if self.in_table == 0:
|
if self.in_table == 0 and self.image == 0:
|
||||||
self.story.append(Paragraph(self.text,self.current_para))
|
self.story.append(Paragraph(self.text,self.current_para))
|
||||||
self.story.append(Spacer(1,0.5*cm))
|
self.story.append(Spacer(1,0.25*cm))
|
||||||
|
else:
|
||||||
|
self.image = 0
|
||||||
|
|
||||||
def start_bold(self):
|
def start_bold(self):
|
||||||
self.text = self.text + '<b>'
|
self.text = self.text + '<b>'
|
||||||
@ -135,7 +144,7 @@ class PdfDoc(TextDoc):
|
|||||||
colWidths=self.cur_table_cols,
|
colWidths=self.cur_table_cols,
|
||||||
style=ts)
|
style=ts)
|
||||||
self.story.append(tbl)
|
self.story.append(tbl)
|
||||||
self.story.append(Spacer(1,0.5*cm))
|
self.story.append(Spacer(1,0.25*cm))
|
||||||
self.in_table = 0
|
self.in_table = 0
|
||||||
|
|
||||||
def start_row(self):
|
def start_row(self):
|
||||||
@ -194,6 +203,19 @@ class PdfDoc(TextDoc):
|
|||||||
|
|
||||||
self.col = self.col + self.span
|
self.col = self.col + self.span
|
||||||
|
|
||||||
|
def add_photo(self,name,x,y):
|
||||||
|
if no_pil == 0:
|
||||||
|
im = PIL.Image.open(name)
|
||||||
|
|
||||||
|
nx,ny = im.size
|
||||||
|
scale = float(y)/float(nx)
|
||||||
|
act_width = int(nx * scale)
|
||||||
|
act_height = int(ny * scale)
|
||||||
|
|
||||||
|
self.story.append(Image(name,act_width*0.5,act_height*0.5))
|
||||||
|
self.story.append(Spacer(1,0.25*cm))
|
||||||
|
self.image = 1
|
||||||
|
|
||||||
def horizontal_line(self):
|
def horizontal_line(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user