diff --git a/docs/index.html b/docs/index.html
index b2076f3..683fc12 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -18,7 +18,7 @@ Python PDF parser and analyzer
-Last Modified: Tue Jul 21 23:22:42 JST 2009
+Last Modified: Mon Aug 24 15:53:58 JST 2009
@@ -319,6 +319,7 @@ no stream header is displayed for the ease of saving it to a file.
Changes
+- 2009/08/24: Fixed a bug in character placing.
- 2009/07/21: Improvement in layout analysis.
- 2009/07/11: Improvement in layout analysis. Thanks to Lubos Pintes.
- 2009/05/17: Bugfixes, massive code restructuring, and simple graphic element support added. setup.py is supported.
diff --git a/pdfminer/__init__.py b/pdfminer/__init__.py
index 07e92a7..d488f70 100644
--- a/pdfminer/__init__.py
+++ b/pdfminer/__init__.py
@@ -1,4 +1,4 @@
#!/usr/bin/env python
-__version__ = '20090721'
+__version__ = '20090824'
if __name__ == '__main__': print __version__
diff --git a/pdfminer/pdfdevice.py b/pdfminer/pdfdevice.py
index 497b4e8..3713fcf 100644
--- a/pdfminer/pdfdevice.py
+++ b/pdfminer/pdfdevice.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
-from pdfminer.utils import mult_matrix, translate_matrix
+from pdfminer.utils import mult_matrix, translate_matrix, apply_matrix_norm
+from pdfminer.pdffont import PDFUnicodeNotDefined
## PDFDevice
@@ -64,17 +65,20 @@ class PDFTextDevice(PDFDevice):
matrix = mult_matrix(textstate.matrix, self.ctm)
font = textstate.font
fontsize = textstate.fontsize
- charspace = textstate.charspace
scaling = textstate.scaling * .01
+ charspace = textstate.charspace * scaling
wordspace = textstate.wordspace * scaling
- dxscale = scaling / (font.hscale*1000) * .01
+ dxscale = .001 * fontsize * scaling
chars = []
(x,y) = textstate.linematrix
for obj in seq:
if isinstance(obj, int) or isinstance(obj, float):
(dx,dy) = self.render_chars(translate_matrix(matrix, (x,y)), font,
fontsize, charspace, scaling, chars)
- x += dx-obj*dxscale
+ x += dx
+ y += dy
+ (dx,dy) = apply_matrix_norm(matrix, (-obj*dxscale,0))
+ x += dx
y += dy
chars = []
else:
@@ -88,7 +92,10 @@ class PDFTextDevice(PDFDevice):
if cid == 32 and textstate.wordspace and not font.is_multibyte():
(dx,dy) = self.render_chars(translate_matrix(matrix, (x,y)), font,
fontsize, charspace, scaling, chars)
- x += dx + wordspace
+ x += dx
+ y += dy
+ (dx,dy) = apply_matrix_norm(matrix, (wordspace,0))
+ x += dx
y += dy
chars = []
if chars: