kopia lustrzana https://github.com/inkstitch/inkstitch
				
				
				
			fix split text (#2057)
							rodzic
							
								
									025c464ace
								
							
						
					
					
						commit
						920a3e267c
					
				|  | @ -11,32 +11,38 @@ from .base import InkstitchExtension | |||
| 
 | ||||
| class PaletteSplitText(InkstitchExtension): | ||||
|     # Splits sublines of text into it's own text elements in order to color them with the color picker | ||||
|     def __init__(self, *args, **kwargs): | ||||
|         InkstitchExtension.__init__(self, *args, **kwargs) | ||||
|         self.arg_parser.add_argument("-l", "--line-height", type=int, default=6, dest="line_height") | ||||
| 
 | ||||
|     def effect(self): | ||||
|         if not self.svg.selection: | ||||
|             inkex.errormsg(_("Please select one or more text elements to split lines.")) | ||||
|             return | ||||
| 
 | ||||
|         line_height = self.options.line_height | ||||
| 
 | ||||
|         for text in self.svg.selection.get(inkex.elements.TextElement): | ||||
|             parent = text.getparent() | ||||
|             content = text.get_text() | ||||
|             lines = content.split('\n') | ||||
|             lines.reverse() | ||||
|             style = text.get('style') | ||||
|             x = text.get('x') | ||||
|             y = text.get('y') | ||||
|             y = float(y) + (len(lines) - 1) * line_height | ||||
|             lines = [line for line in lines if not len(line) == 0] | ||||
| 
 | ||||
|             style = text.style | ||||
|             # If shape-inside style is used, it will lead to bad placement | ||||
|             style.pop('shape-inside', None) | ||||
| 
 | ||||
|             transform = text.transform | ||||
|             text.pop('transform') | ||||
| 
 | ||||
|             bbox = text.get_inkscape_bbox() | ||||
|             x = bbox.left | ||||
|             y = bbox.bottom | ||||
|             height = bbox.height / (len(lines)) | ||||
| 
 | ||||
|             for line in lines: | ||||
|                 element = inkex.TextElement() | ||||
|                 element.text = line | ||||
|                 element.set('style', style) | ||||
|                 element.set('x', x) | ||||
|                 element.set('style', str(style)) | ||||
|                 element.set('x', str(x)) | ||||
|                 element.set('y', str(y)) | ||||
|                 y = float(y) - line_height | ||||
|                 element.set('transform', str(transform)) | ||||
| 
 | ||||
|                 y -= height | ||||
|                 parent.insert(0, element) | ||||
|             parent.remove(text) | ||||
|  |  | |||
|  | @ -13,7 +13,6 @@ | |||
|           </submenu> | ||||
|         </effects-menu> | ||||
|     </effect> | ||||
|     <param name="line-height" type="int" min="1" max="100" gui-text="Line Height">6</param> | ||||
|     <script> | ||||
|         {{ command_tag | safe }} | ||||
|     </script> | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Kaalleen
						Kaalleen