diff --git a/pdfminer/converter.py b/pdfminer/converter.py
index 598df47..f8ed681 100644
--- a/pdfminer/converter.py
+++ b/pdfminer/converter.py
@@ -32,7 +32,8 @@ class PDFPageAggregator(PDFTextDevice):
def end_page(self, _):
assert not self.stack
assert isinstance(self.cur_item, LTPage)
- self.cur_item.fixate(self.laparams)
+ self.cur_item.fixate()
+ self.cur_item.analyze(self.laparams)
self.pageno += 1
return self.cur_item
@@ -43,7 +44,9 @@ class PDFPageAggregator(PDFTextDevice):
def end_figure(self, _):
fig = self.cur_item
+ assert isinstance(self.cur_item, LTFigure)
self.cur_item.fixate()
+ self.cur_item.analyze(self.laparams)
self.cur_item = self.stack.pop()
self.cur_item.add(fig)
return
@@ -226,14 +229,13 @@ class HTMLConverter(PDFConverter):
for child in item:
render(child)
elif isinstance(item, LTImage):
- name = ''
if self.outdir:
name = self.write_image(item)
- self.outfp.write('\n' %
- (enc(name),
- item.x0*self.scale, (self.yoffset-item.y1)*self.scale,
- item.width*self.scale, item.height*self.scale))
+ self.outfp.write('\n' %
+ (enc(name),
+ item.x0*self.scale, (self.yoffset-item.y1)*self.scale,
+ item.width*self.scale, item.height*self.scale))
return
page = PDFConverter.end_page(self, page)
render(page)
@@ -311,11 +313,13 @@ class XMLConverter(PDFConverter):
elif isinstance(item, LTText):
self.outfp.write('%s\n' % item.text)
elif isinstance(item, LTImage):
- name = ''
if self.outdir:
name = self.write_image(item)
- self.outfp.write('\n' %
- (enc(name), item.width, item.height))
+ self.outfp.write('\n' %
+ (enc(name), item.width, item.height))
+ else:
+ self.outfp.write('\n' %
+ (item.width, item.height))
else:
assert 0, item
return
diff --git a/pdfminer/layout.py b/pdfminer/layout.py
index 8c4ab91..6c33978 100644
--- a/pdfminer/layout.py
+++ b/pdfminer/layout.py
@@ -168,7 +168,7 @@ class LTImage(LTItem):
self.bits = stream.get_any(('BPC', 'BitsPerComponent'), 1)
self.colorspace = stream.get_any(('CS', 'ColorSpace'))
if not isinstance(self.colorspace, list):
- self.colorspace = [colorspace]
+ self.colorspace = [self.colorspace]
return
def __repr__(self):
@@ -550,41 +550,12 @@ def group_boxes(groupfunc, objs, distfunc, debug=0):
return objs.pop()
-## LTFigure
+## LTAnalyzer
##
-class LTFigure(LTContainer):
+class LTAnalyzer(LTContainer):
- def __init__(self, name, bbox, matrix):
- (x,y,w,h) = bbox
- bbox = get_bounds( apply_matrix_pt(matrix, (p,q))
- for (p,q) in ((x,y), (x+w,y), (x,y+h), (x+w,y+h)) )
- self.name = name
- self.matrix = matrix
- LTContainer.__init__(self, bbox)
- return
-
- def __repr__(self):
- return ('