diff options
Diffstat (limited to 'share/extensions/text_extract.py')
| -rwxr-xr-x | share/extensions/text_extract.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/share/extensions/text_extract.py b/share/extensions/text_extract.py index a27cfff50..bf263ef39 100755 --- a/share/extensions/text_extract.py +++ b/share/extensions/text_extract.py @@ -22,14 +22,22 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -import inkex, os, csv, math, chardataeffect, string - +# standard library +import chardataeffect +from copy import deepcopy +import csv +import math +import os +import string try: from subprocess import Popen, PIPE bsubprocess = True except: bsubprocess = False +# local library +import inkex + class Extract(inkex.Effect): def __init__(self): inkex.Effect.__init__(self) @@ -137,14 +145,19 @@ class Extract(inkex.Effect): objlist.sort() #move them to the top of the object stack in this order. for item in objlist: - self.recurse(self.selected[item[1]]) + self.recurse(deepcopy(self.selected[item[1]])) def recurse(self, node): istext = (node.tag == '{http://www.w3.org/2000/svg}flowPara' or node.tag == '{http://www.w3.org/2000/svg}flowDiv' or node.tag == '{http://www.w3.org/2000/svg}text') - if node.text != None: - inkex.errormsg(node.text) - for child in node: - self.recurse(child) + if node.text != None or node.tail != None: + for child in node: + if child.get('{http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}role'): + child.tail = "\n" + inkex.errormsg(inkex.etree.tostring(node, method='text').strip()) + else: + for child in node: + self.recurse(child) + if __name__ == '__main__': e = Extract() |
