From 62e576ecbc144c09b9f224deb4673e3cd8bd16e4 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Fri, 9 May 2014 18:36:25 +0200 Subject: Documentation. Fix for bug #1317140 (supported generic font names in trunk have changed (Sans -> sans-serif, Serif -> serif)). Fixed bugs: - https://launchpad.net/bugs/1317140 (bzr r13345) --- share/tutorials/tutorial-advanced.svg | 204 ++++---- share/tutorials/tutorial-basic.svg | 172 +++---- share/tutorials/tutorial-calligraphy.svg | 180 +++---- share/tutorials/tutorial-elements.svg | 150 +++--- share/tutorials/tutorial-interpolate.svg | 650 +++++++++++++------------- share/tutorials/tutorial-shapes.svg | 304 ++++++------ share/tutorials/tutorial-tips.svg | 158 +++---- share/tutorials/tutorial-tracing-pixelart.svg | 78 ++-- share/tutorials/tutorial-tracing.svg | 78 ++-- 9 files changed, 987 insertions(+), 987 deletions(-) (limited to 'share') diff --git a/share/tutorials/tutorial-advanced.svg b/share/tutorials/tutorial-advanced.svg index 6d19ae44b..506196331 100644 --- a/share/tutorials/tutorial-advanced.svg +++ b/share/tutorials/tutorial-advanced.svg @@ -36,16 +36,16 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::ADVANCED bulia byak, buliabyak@users.sf.net and josh andler, scislac@users.sf.net - + @@ -54,61 +54,61 @@ drawing, path manipulation, booleans, offsets, simplification, and text tool. - + Use Ctrl+arrows, mouse wheel, or middle button drag to scroll the page down. For basics of object creation, selection, and -transformation, see the Basic tutorial in Help > Tutorials. +transformation, see the Basic tutorial in Help > Tutorials. - + Pasting techniques - + After you copy some object(s) by Ctrl+C or cut by -Ctrl+X, the regular Paste command +Ctrl+X, the regular Paste command (Ctrl+V) pastes the copied object(s) right under the mouse cursor or, if the cursor is outside the window, to the center of the document window. However, the object(s) in the clipboard still remember the original place from which they were -copied, and you can paste back there by Paste in Place +copied, and you can paste back there by Paste in Place (Ctrl+Alt+V). - + - Another command, Paste Style (Shift+Ctrl+V), + Another command, Paste Style (Shift+Ctrl+V), applies the style of the (first) object on the clipboard to the current selection. The “style” thus pasted includes all the fill, stroke, and font settings, but not the shape, size, or parameters specific to a shape type, such as the number of tips of a star. - + - Yet another set of paste commands, Paste Size, scales the selection + Yet another set of paste commands, Paste Size, scales the selection to match the desired size attribute of the clipboard object(s). There are a number of commands for pasting size and are as follows: Paste Size, Paste Width, Paste Height, Paste Size Separately, Paste Width Separately, and Paste Height Separately. - + - Paste Size scales the whole selection to match the overall size of the clipboard -object(s). Paste Width/Paste Height scale the + Paste Size scales the whole selection to match the overall size of the clipboard +object(s). Paste Width/Paste Height scale the whole selection horizontally/vertically so that it matches the width/height of the clipboard object(s). These commands honor the scale ratio lock on the Selector Tool controls bar (between W and H fields), so @@ -120,7 +120,7 @@ of the clipboard object(s). - + @@ -129,11 +129,11 @@ instances as well as between Inkscape and other applications (which must be able handle SVG on the clipboard to use this). - + Drawing freehand and regular paths - + @@ -151,7 +151,7 @@ Pencil (freehand) tool (F6): - + @@ -168,7 +168,7 @@ Pencil (freehand) tool (F6): - + @@ -183,7 +183,7 @@ only the last segment of an unfinished line, press - + @@ -194,11 +194,11 @@ only the last segment of an unfinished line, press new one. - + Editing paths - + @@ -212,7 +212,7 @@ path and switch to the Node tool (F2): - + @@ -228,7 +228,7 @@ selected node); Alt+! inverts in the ent - + @@ -241,7 +241,7 @@ either double clicking or by Ctrl+Alt+click - + @@ -254,7 +254,7 @@ select two endnodes on one path, you can join them ( - + @@ -271,7 +271,7 @@ rotated/scaled to match. - + @@ -281,11 +281,11 @@ retracted, the path segment between them is a straight line. To pull out the ret node, Shift+drag away from the node. - + Subpaths and combining - + @@ -300,7 +300,7 @@ single compound path; the same three subpaths on the right are independent path - + @@ -311,19 +311,19 @@ path at a time. - + - Inkscape can Combine paths into a compound path -(Ctrl+K) and Break Apart a compound path into + Inkscape can Combine paths into a compound path +(Ctrl+K) and Break Apart a compound path into separate paths (Shift+Ctrl+K). Try these commands on the above examples. Since an object can only have one fill and stroke, a new compound path gets the style of the first (lowest in z-order) object being combined. - + @@ -333,7 +333,7 @@ in the areas where the paths overlap: - + @@ -341,11 +341,11 @@ in the areas where the paths overlap: commands, see “Boolean operations” below. - + Converting to path - + @@ -360,7 +360,7 @@ converted to path. Switch to node tool and compare their editability when select - + @@ -372,11 +372,11 @@ no stroke): - + Boolean operations - + @@ -384,13 +384,13 @@ no stroke): boolean operations: - Original shapes - Union (Ctrl++) - Difference (Ctrl+-) - Intersection(Ctrl+*) - Exclusion(Ctrl+^) - Division(Ctrl+/) - Cut Path(Ctrl+Alt+/) + Original shapes + Union (Ctrl++) + Difference (Ctrl+-) + Intersection(Ctrl+*) + Exclusion(Ctrl+^) + Division(Ctrl+/) + Cut Path(Ctrl+Alt+/) @@ -401,45 +401,45 @@ no stroke): - (bottom minus top) + (bottom minus top) - + The keyboard shortcuts for these commands allude to the arithmetic analogs of the boolean operations (union is addition, difference is subtraction, etc.). The -Difference and Exclusion commands can only apply +Difference and Exclusion commands can only apply to two selected objects; others may process any number of objects at once. The result always receives the style of the bottom object. - + - The result of the Exclusion command looks similar to -Combine (see above), but it is different in that -Exclusion adds extra nodes where the original paths intersect. The -difference between Division and Cut Path is that + The result of the Exclusion command looks similar to +Combine (see above), but it is different in that +Exclusion adds extra nodes where the original paths intersect. The +difference between Division and Cut Path is that the former cuts the entire bottom object by the path of the top object, while the latter only cuts the bottom object's stroke and removes any fill (this is convenient for cutting fill-less strokes into pieces). - + Inset and outset - + Inkscape can expand and contract shapes not only by scaling, but also by offsetting an object's path, i.e. by displacing it perpendicular to the path in each point. The corresponding commands are called -Inset (Ctrl+() and Outset +Inset (Ctrl+() and Outset (Ctrl+)). Shown below is the original path (red) and a number of paths inset or outset from that original: @@ -452,13 +452,13 @@ inset or outset from that original: - + - The plain Inset and Outset commands produce paths + The plain Inset and Outset commands produce paths (converting the original object to path if it's not a path yet). Often, more convenient -is the Dynamic Offset (Ctrl+J) which creates an +is the Dynamic Offset (Ctrl+J) which creates an object with a draggable handle (similar to a shape's handle) controlling the offset distance. Select the object below, switch to the node tool, and drag its handle to get an idea: @@ -466,7 +466,7 @@ an idea: - + @@ -476,7 +476,7 @@ need it to be adjustable anymore, you can always convert an offset object back t - + @@ -488,7 +488,7 @@ stroke. - + @@ -504,15 +504,15 @@ with the source. - + Simplification - + - The main use of the Simplify command (Ctrl+L) is + The main use of the Simplify command (Ctrl+L) is reducing the number of nodes on a path while almost preserving its shape. This may be useful for paths created by the Pencil tool, since that tool sometimes creates more nodes than necessary. Below, the left shape is as created by the @@ -524,14 +524,14 @@ node tool) and is smoother. - + The amount of simplification (called the threshold) depends on the size of the selection. Therefore, if you select a path along with some larger object, it will be simplified more aggressively than if you select that path -alone. Moreover, the Simplify command is +alone. Moreover, the Simplify command is accelerated. This means that if you press Ctrl+L several times in quick succession (so that the calls are within 0.5 sec from each other), the threshold is increased on each call. (If you do another Simplify after a @@ -540,29 +540,29 @@ is easy to apply the exact amount of simplification you need for each case. - + - Besides smoothing freehand strokes, Simplify can be used for various + Besides smoothing freehand strokes, Simplify can be used for various creative effects. Often, a shape which is rigid and geometric benefits from some amount of simplification that creates cool life-like generalizations of the original form - melting sharp corners and introducing very natural distortions, sometimes stylish and sometimes plain funny. Here's an example of a clipart shape that looks much nicer after -Simplify: +Simplify: - Original - Slight simplification - Aggressive simplification + Original + Slight simplification + Aggressive simplification - + Creating text - + @@ -573,7 +573,7 @@ text capabilities. - + @@ -586,7 +586,7 @@ particular, that tab supports as-you-type spell checking). - + @@ -596,7 +596,7 @@ existing text object (such as this paragraph). - + @@ -610,12 +610,12 @@ a text object is larger than the default, it will likely benefit from squeezing a bit tighter than the default. Here's an example: - Original - Letter spacing decreased - Inspiration - Inspiration + Original + Letter spacing decreased + Inspiration + Inspiration - + @@ -628,7 +628,7 @@ benefit from kerning adjustments. - + @@ -638,10 +638,10 @@ of the cursor. Here is the same heading again, this time with manual adjustments for visually uniform letter positioning: - Letter spacing decreased, some letter pairs manually kerned - Inspiration + Letter spacing decreased, some letter pairs manually kerned + Inspiration - + @@ -650,9 +650,9 @@ for visually uniform letter positioning: Alt+Up or Alt+Down: - Inspiration + Inspiration - + @@ -665,7 +665,7 @@ installed on any system where you want to open that SVG document. - + @@ -677,11 +677,11 @@ As in Selector, pressing Shift with any produces 10 times greater effect than without Shift. - + XML editor - + @@ -694,16 +694,16 @@ interactively, and it allows you to do tricks that would be impossible with regu editing tools. - + Conclusion - + This tutorial shows only a small part of all capabilities of Inkscape. We hope you -enjoyed it. Don't be afraid to experiment and share what you create. Please visit www.inkscape.org for more information, latest +enjoyed it. Don't be afraid to experiment and share what you create. Please visit www.inkscape.org for more information, latest versions, and help from user and developer communities. @@ -737,8 +737,8 @@ versions, and help from user and developer communities. - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-basic.svg b/share/tutorials/tutorial-basic.svg index dad301527..958eaeca9 100644 --- a/share/tutorials/tutorial-basic.svg +++ b/share/tutorials/tutorial-basic.svg @@ -36,16 +36,16 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::BASIC - + @@ -54,7 +54,7 @@ regular Inkscape document that you can view, edit, copy from, or save. - + @@ -64,11 +64,11 @@ and stroke, alignment, and z-order. For more advanced topics, check out the othe tutorials in the Help menu. - + Panning the canvas - + @@ -79,11 +79,11 @@ button. Or, you can use the scrollbars (press Ctrl+ them). The wheel on your mouse also works for scrolling vertically; press Shift with the wheel to scroll horizontally. - + Zooming in or out - + @@ -98,7 +98,7 @@ dragging around it. - + @@ -107,11 +107,11 @@ session. Press the ` key to go back to t Shift+` to go forward. - + Inkscape tools - + @@ -123,39 +123,39 @@ bar at the bottom of the window will display useful hints and message you work. - + Many operations are available through keyboard shortcuts. Open Help > Keys and Mouse to see the complete reference. - + Creating and managing documents - + - To create a new empty document, use File > New > Default + To create a new empty document, use File > New > Default or press Ctrl+N. To create a new document from one of Inkscape's many -templates, use File > New > Templates... or press +templates, use File > New > Templates... or press Ctrl+Alt+N - + - To open an existing SVG document, use File > -Open (Ctrl+O). To save, use File > Save -(Ctrl+S), or Save As (Shift+Ctrl+S) + To open an existing SVG document, use File > +Open (Ctrl+O). To save, use File > Save +(Ctrl+S), or Save As (Shift+Ctrl+S) to save under a new name. (Inkscape may still be unstable, so remember to save often!) - + @@ -165,7 +165,7 @@ text or XML editor (apart from Inkscape, that is). Besides SVG, Inkscape can import and export several other formats (EPS, PNG). - + @@ -178,11 +178,11 @@ the Ctrl+Tab shortcut only works with do process. If you open multiple files from a file browser or launch more than one Inkscape process from an icon it will not work. - + Creating shapes - + @@ -202,7 +202,7 @@ right here: - + @@ -227,7 +227,7 @@ also create ellipses, stars, and spirals: - + @@ -238,7 +238,7 @@ these controls affect the currently selected shapes (i.e. those that display the and set the default that will apply to newly created shapes. - + @@ -246,11 +246,11 @@ these controls affect the currently selected shapes (i.e. those that display the Ctrl+Z. (Or, if you change your mind again, you can redo the undone action by Shift+Ctrl+Z.) - + Moving, scaling, rotating - + @@ -261,7 +261,7 @@ any object on the canvas. Click on the rectangle below. - + @@ -270,7 +270,7 @@ Now you can: - + @@ -279,7 +279,7 @@ to horizontal and vertical.) - + @@ -288,7 +288,7 @@ the original height/width ratio.) - + @@ -296,7 +296,7 @@ the original height/width ratio.) - + @@ -306,7 +306,7 @@ position the center of rotation.) - + @@ -315,7 +315,7 @@ handles. (Press Ctrl to restrict skewing steps.) - + @@ -323,11 +323,11 @@ steps.) (above the canvas) to set exact values for coordinates (X and Y) and size (W and H) of the selection. - + Transforming by keys - + @@ -336,7 +336,7 @@ emphasis on keyboard accessibility. There's hardly any command or action th impossible to do from keyboard, and transforming objects is no exception. - + @@ -349,7 +349,7 @@ respectively. Default rotates are by 15 degrees; with - + @@ -364,7 +364,7 @@ nudge on your screen. It is thus possible to position objects with arbitrary pre simply by zooming in or out as needed. - + @@ -374,17 +374,17 @@ scale selection so that its visible size changes by one screen pixel, and farthest-from-center point moves by one screen pixel. - + Note: Linux users may not get the expected results with the Alt+arrow and a few other key combinations if their Window Manager catches those key events before they reach the inkscape application. One solution would be to change the WM's configuration accordingly. - + Multiple selections - + @@ -400,7 +400,7 @@ the shapes below: - + @@ -411,7 +411,7 @@ but not the rectangle: - + @@ -422,7 +422,7 @@ ellipses and the rectangle, without the cues you would have hard time guessing w the ellipses are selected or not. - + @@ -431,7 +431,7 @@ Select all three objects above, then use Shift+clic ellipses from the selection leaving only the rectangle selected. - + @@ -439,11 +439,11 @@ ellipses from the selection leaving only the rectangle selected. objects. Ctrl+A selects all objects in the current layer (if you did not create layers, this is the same as all objects in the document). - + Grouping - + @@ -461,7 +461,7 @@ the group. - + @@ -474,7 +474,7 @@ selection; you'll need to press Ctrl+U - + @@ -486,11 +486,11 @@ grouping. Try to move or transform the individual shapes in the group (above right) without ungrouping it, then deselect and select the group normally to see that it still remains grouped. - + Fill and stroke - + @@ -500,7 +500,7 @@ View menu (or press Shift+Ctrl+W), selec it (change its fill color). - + @@ -510,7 +510,7 @@ dialog. - + @@ -521,7 +521,7 @@ including no fill (the button with the X), flat color fill, as well as linear or gradients. For the above shape, the flat fill button will be activated. - + @@ -532,7 +532,7 @@ a shade of that hue within the triangle. All color pickers contain a slider to s alpha (opacity) of the selected object(s). - + @@ -548,7 +548,7 @@ fill and stroke (for multiple selected objects, the dialog shows their - + @@ -564,7 +564,7 @@ fill and stroke (for multiple selected objects, the dialog shows their - + @@ -579,7 +579,7 @@ of the stroke: - + @@ -631,7 +631,7 @@ fills and/or strokes: - + @@ -644,7 +644,7 @@ Stroke dialog sets the color of that handle instead of the color of the entire s object. - + @@ -653,11 +653,11 @@ tool (F7). Just Shift+click will assign stroke color). - + Duplication, alignment, distribution - + @@ -668,7 +668,7 @@ the line with copies of this black square: - + @@ -738,11 +738,11 @@ examples: - + Z-order - + @@ -757,7 +757,7 @@ selection count; if nothing overlaps the selection, Raise and Lower move it all to the top or bottom correspondingly). - + @@ -772,7 +772,7 @@ one is at the bottom: - + @@ -785,11 +785,11 @@ nothing selected will conveniently select the object you created Tab and Shift+Tab keys on the stack of ellipses above. - + Selecting under and dragging selected - + @@ -799,7 +799,7 @@ transparent, but clicking on it will select the top object, not the one you need. - + @@ -812,7 +812,7 @@ z-order stack of objects at the click point. When the bottom object is reached, Alt+click will, naturally, again select the topmost object. - + @@ -826,7 +826,7 @@ Inkscape and other applications may use the Alt key freely.] - + @@ -839,7 +839,7 @@ is selected now without selecting anything else, use - + @@ -849,17 +849,17 @@ shapes under the green transparent rectangle: - + Selecting similar objects - + Inkscape can select other objects similar to the object currently selected. For example, if you want to select all the blue squares below first select one of the -blue squares, and use Edit > Select Same > +blue squares, and use Edit > Select Same > Fill Color from the menu. All the objects with a fill color the same shade of blue are now selected. @@ -903,25 +903,25 @@ shade of blue are now selected. - + In addition to selecting by fill color, you can select multiple similar objects by stroke color, stroke style, fill & stroke, and object type. - + Conclusion - + This concludes the Basic tutorial. There's much more than that to Inkscape, but with the techniques described here, you will already be able to create simple yet useful graphics. For more complicated stuff, go through the Advanced and other tutorials in -Help > Tutorials. +Help > Tutorials. @@ -954,8 +954,8 @@ graphics. For more complicated stuff, go through the Advanced and other tutorial - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-calligraphy.svg b/share/tutorials/tutorial-calligraphy.svg index 604c284da..e22fc3512 100644 --- a/share/tutorials/tutorial-calligraphy.svg +++ b/share/tutorials/tutorial-calligraphy.svg @@ -36,16 +36,16 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::CALLIGRAPHY bulia byak, buliabyak@users.sf.net and josh andler, scislac@users.sf.net - + @@ -55,20 +55,20 @@ basic techniques of the art of Calligraphy. - + Use Ctrl+arrows, mouse wheel, or middle button drag to scroll the page down. For basics of object creation, selection, and -transformation, see the Basic tutorial in Help > Tutorials. +transformation, see the Basic tutorial in Help > Tutorials. - + History and Styles - + @@ -79,7 +79,7 @@ anyone can master the basics of this art. - + @@ -93,7 +93,7 @@ will run across calligraphy today is on wedding invitations. - + @@ -102,7 +102,7 @@ will run across calligraphy today is on wedding invitations. - + @@ -111,7 +111,7 @@ will run across calligraphy today is on wedding invitations. - + @@ -120,7 +120,7 @@ will run across calligraphy today is on wedding invitations. - + @@ -128,7 +128,7 @@ will run across calligraphy today is on wedding invitations. - + @@ -138,21 +138,21 @@ currently functions. - + One great advantage that we have over the scribes of the past is the -Undo command: If you make a mistake, the entire page is not +Undo command: If you make a mistake, the entire page is not ruined. Inkscape's Calligraphy tool also enables some techniques which would not be possible with a traditional pen-and-ink. - + Hardware - + @@ -163,7 +163,7 @@ sweeping strokes. - + @@ -174,7 +174,7 @@ quill or pen with nib are also not very sensitive to pressure, unlike a brush. - + @@ -189,7 +189,7 @@ now on, Inkscape will remember those settings on startup. - + @@ -198,11 +198,11 @@ the stroke (see “Thinning” below), so if you are using a mouse, you'll zero this parameter. - + Calligraphy Tool Options - + @@ -213,11 +213,11 @@ There are also two buttons to toggle tablet Pressure and Tilt sensitivity on and drawing tablets). - + Width & Thinning - + @@ -234,7 +234,7 @@ by double-clicking the tool button). - + @@ -245,10 +245,10 @@ these keys is that they work while you are drawing, so you can change the width of your pen gradually in the middle of the stroke: - width=1, growing.... reaching 47, decreasing... back to 0 + width=1, growing.... reaching 47, decreasing... back to 0 - + @@ -260,11 +260,11 @@ thinning of fast strokes. Here are a few examples, all drawn with width=20 and angle=90: - thinning = 0 (uniform width) - thinning = 10 - thinning = 40 - thinning = -20 - thinning = -60 + thinning = 0 (uniform width) + thinning = 10 + thinning = 40 + thinning = -20 + thinning = -60 @@ -286,7 +286,7 @@ angle=90: - + @@ -300,11 +300,11 @@ jerky movements to get strangely naturalistic, neuron-like shapes: - + Angle & Fixation - + @@ -326,10 +326,10 @@ the angle is determined by the tilt of the pen. - angle = 90 deg - angle = 30 (default) - angle = 0 - angle = -90 deg + angle = 90 deg + angle = 30 (default) + angle = 0 + angle = -90 deg @@ -342,7 +342,7 @@ the angle is determined by the tilt of the pen. - + @@ -355,12 +355,12 @@ keeping the angle constant will work best. Here are examples of strokes drawn at different angles (fixation = 100): - angle = 30 - angle = 60 - angle = 90 - angle = 0 - angle = 15 - angle = -45 + angle = 30 + angle = 60 + angle = 90 + angle = 0 + angle = 15 + angle = -45 @@ -368,7 +368,7 @@ different angles (fixation = 100): - + @@ -378,7 +378,7 @@ natural and traditional for right-handed calligraphy. - + @@ -394,9 +394,9 @@ perpendicular to the stroke, and Angle has no effect anymore: - angle = 30fixation = 100 - angle = 30fixation = 80 - angle = 30fixation = 0 + angle = 30fixation = 100 + angle = 30fixation = 80 + angle = 30fixation = 0 @@ -560,7 +560,7 @@ perpendicular to the stroke, and Angle has no effect anymore: - + @@ -571,11 +571,11 @@ fixation and zero width contrast (above right), on the other hand, suggest moder serif typefaces such as Helvetica. - + Tremor - + @@ -585,7 +585,7 @@ affect your strokes producing anything from slight unevenness to wild blotches a splotches. This significantly expands the creative range of the tool. - + slow medium fast @@ -599,17 +599,17 @@ splotches. This significantly expands the creative range of the tool. - tremor = 0 - tremor = 10 - tremor = 30 - tremor = 50 - tremor = 70 - tremor = 90 - tremor = 20 - tremor = 40 - tremor = 60 - tremor = 80 - tremor = 100 + tremor = 0 + tremor = 10 + tremor = 30 + tremor = 50 + tremor = 70 + tremor = 90 + tremor = 20 + tremor = 40 + tremor = 60 + tremor = 80 + tremor = 100 @@ -641,11 +641,11 @@ splotches. This significantly expands the creative range of the tool. - + Wiggle & Mass - + @@ -655,7 +655,7 @@ instead just try them yourself to get a better idea. - + @@ -666,7 +666,7 @@ wiggle makes the pen to wiggle wildly. - + @@ -677,11 +677,11 @@ quite small (2) so that the tool is fast and responsive, but you can increase ma get slower and smoother pen. - + Calligraphy examples - + @@ -691,7 +691,7 @@ it with Inkscape. This section will show you just a few simple examples. - + @@ -709,7 +709,7 @@ rulers as well, for example: - + @@ -718,7 +718,7 @@ movement range, adjust width and angle, and off you go! - + @@ -745,7 +745,7 @@ stems. Here are some letter elements for the Uncial hand: - + @@ -754,7 +754,7 @@ stems. Here are some letter elements for the Uncial hand: - + @@ -764,7 +764,7 @@ each letter. - + @@ -777,7 +777,7 @@ again to return to Calligraphy tool. - + @@ -788,7 +788,7 @@ elements; each stroke must be original. - + @@ -803,13 +803,13 @@ elements; each stroke must be original. - Unicial hand - Carolingian hand - Gothic hand - Bâtarde hand + Unicial hand + Carolingian hand + Gothic hand + Bâtarde hand - Flourished Italic hand + Flourished Italic hand @@ -907,11 +907,11 @@ elements; each stroke must be original. - + Conclusion - + @@ -951,8 +951,8 @@ it is very nice to play with and may be useful in real design. Enjoy! - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-elements.svg b/share/tutorials/tutorial-elements.svg index e70ccff4a..3ee6c8963 100644 --- a/share/tutorials/tutorial-elements.svg +++ b/share/tutorials/tutorial-elements.svg @@ -36,15 +36,15 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::ELEMENTS - + @@ -57,38 +57,38 @@ subtract, and combine to make this tutorial more comprehensive. - Elements - Principles - Color - Line - Shape - Space - Texture - Value - Size - Balance - Contrast - Emphasis - Proportion - Pattern - Gradation - Composition - Overview - + Elements + Principles + Color + Line + Shape + Space + Texture + Value + Size + Balance + Contrast + Emphasis + Proportion + Pattern + Gradation + Composition + Overview + Elements of Design - + The following elements are the building blocks of design. - + Line - + @@ -110,11 +110,11 @@ paper), or implied three-dimensional. - + Shape - + @@ -130,11 +130,11 @@ circle) and organic (irregular in outline). - + Size - + @@ -143,13 +143,13 @@ There is a variation of sizes in objects either real or imagined. - BIG - small - + BIG + small + Space - + @@ -164,11 +164,11 @@ space surrounds a shape or form. - + Color - + @@ -191,11 +191,11 @@ dullness). - + Texture - + @@ -219,11 +219,11 @@ or pebbly. - + Value - + @@ -258,21 +258,21 @@ in a composition. - + Principles of Design - + The principles use the elements of design to create a composition. - + Balance - + @@ -288,11 +288,11 @@ etc., can be used in creating a balance in a composition. - + Contrast - + @@ -303,11 +303,11 @@ etc., can be used in creating a balance in a composition. - + Emphasis - + @@ -321,11 +321,11 @@ place a work draws your eye to first. - + Proportion - + @@ -422,8 +422,8 @@ to another. - Random Ant & 4WD - SVG Image Created by Andrew FitzsimonCourtesy of Open Clip Art Libraryhttp://www.openclipart.org/ + Random Ant & 4WD + SVG Image Created by Andrew FitzsimonCourtesy of Open Clip Art Libraryhttp://www.openclipart.org/ @@ -446,11 +446,11 @@ to another. - + Pattern - + @@ -471,11 +471,11 @@ and over again. - + Gradation - + @@ -501,11 +501,11 @@ gradation from dark to light will cause the eye to move along a shape. - + Composition - + @@ -621,11 +621,11 @@ gradation from dark to light will cause the eye to move along a shape. - + Bibliography - + @@ -633,57 +633,57 @@ gradation from dark to light will cause the eye to move along a shape. - + - http://www.makart.com/resources/artclass/EPlist.html + http://www.makart.com/resources/artclass/EPlist.html - + - http://www.princetonol.com/groups/iad/Files/elements2.htm + http://www.princetonol.com/groups/iad/Files/elements2.htm - + - http://www.johnlovett.com/test.htm + http://www.johnlovett.com/test.htm - + - http://digital-web.com/articles/elements_of_design/ + http://digital-web.com/articles/elements_of_design/ - + - http://digital-web.com/articles/principles_of_design/ + http://digital-web.com/articles/principles_of_design/ - + - Special thanks to Linda Kim (http://www.coroflot.com/redlucite/) for helping -me (http://www.rejon.org/) with this tutorial. Also, thanks to the -Open Clip Art Library (http://www.openclipart.org/) and the graphics + Special thanks to Linda Kim (http://www.coroflot.com/redlucite/) for helping +me (http://www.rejon.org/) with this tutorial. Also, thanks to the +Open Clip Art Library (http://www.openclipart.org/) and the graphics people have submitted to that project. @@ -717,8 +717,8 @@ people have submitted to that project. - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-interpolate.svg b/share/tutorials/tutorial-interpolate.svg index c9c1c1b24..8cbf06044 100644 --- a/share/tutorials/tutorial-interpolate.svg +++ b/share/tutorials/tutorial-interpolate.svg @@ -1,15 +1,15 @@ - + - + - - - + + + @@ -25,542 +25,542 @@ - - - - - - - - - - + + + + + + + + + + - - Use Ctrl+down arrow to scroll - + + Use Ctrl+down arrow to scroll + - - ::INTERPOLATE + + ::INTERPOLATE Ryan Lerch, ryanlerch at gmail dot com - - + + This document explains how to use Inkscape's Interpolate extension - + Introduction - - + + Interpolate does a linear interpolation between two or more selected paths. It basically means that it “fills in the gaps” between the paths and transforms them according to the number of steps given. - - + + - To use the Interpolate extension, select the paths that you wish to transform, and choose Extensions > Generate From Path > Interpolate from the menu. + To use the Interpolate extension, select the paths that you wish to transform, and choose Extensions > Generate From Path > Interpolate from the menu. - - + + - Before invoking the extension, the objects that you are going to transform need to be paths. This is done by selecting the object and using Path > Object to Path or Shift+Ctrl+C. If your objects are not paths, the extension will do nothing. + Before invoking the extension, the objects that you are going to transform need to be paths. This is done by selecting the object and using Path > Object to Path or Shift+Ctrl+C. If your objects are not paths, the extension will do nothing. - + Interpolation between two identical paths - - + + The simplest use of the Interpolate extension is to interpolate between two paths that are identical. When the extension is called, the result is that the space between the two paths is filled with duplicates of the original paths. The number of steps defines how many of these duplicates are placed. - - + + For example, take the following two paths: - - - + + + - - + + Now, select the two paths, and run the Interpolate extension with the settings shown in the following image. - - - - - - - - - - + + + + + + + + + + - Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked + Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked - - + + As can be seen from the above result, the space between the two circle-shaped paths has been filled with 6 (the number of interpolation steps) other circle-shaped paths. Also note that the extension groups these shapes together. - - Interpolation between two different paths + + Interpolation between two different paths - - + + When interpolation is done on two different paths, the program interpolates the shape of the path from one into the other. The result is that you get a morphing sequence between the paths, with the regularity still defined by the Interpolation Steps value. - - + + For example, take the following two paths: - - - + + + - - + + Now, select the two paths, and run the Interpolate extension. The result should be like this: - - - - - - - - - + + + + + + + + + - - Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked + + Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked - - + + As can be seen from the above result, the space between the circle-shaped path and the triangle-shaped path has been filled with 6 paths that progress in shape from one path to the other. - - + + When using the Interpolate extension on two different paths, the position of the starting node of each path is important. To find the starting node of a path, select the path, then choose the Node Tool so that the nodes appear and press TAB. The first node that is selected is the starting node of that path. - - + + See the image below, which is identical to the previous example, apart from the node points being displayed. The node that is green on each path is the starting node. - - - - - - - - - - + + + + + + + + + + - - + + The previous example (shown again below) was done with these nodes being the starting node. - - - - - - - - - + + + + + + + + + - - Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked + + Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked - - + + Now, notice the changes in the interpolation result when the triangle path is mirrored so the starting node is in a different position: - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - Interpolation Method + + Interpolation Method - - + + One of the parameters of the Interpolate extension is the Interpolation Method. There are 2 interpolation methods implemented, and they differ in the way that they calculate the curves of the new shapes. The choices are either Interpolation Method 1 or 2. - - + + In the examples above, we used Interpolation Method 2, and the result was: - - - - - - - - - + + + + + + + + + - + - - + + Now compare this to Interpolation Method 1: - - - - - - - - - - + + + + + + + + + + - - + + The differences in how these methods calculate the numbers is beyond the scope of this document, so simply try both, and use which ever one gives the result closest to what you intend. - - Exponent + + Exponent - - + + The exponent parameter controls the spacing between steps of the interpolation. An exponent of 0 makes the spacing between the copies all even. - - + + Here is the result of another basic example with an exponent of 0. - - - - - - - - - - + + + + + + + + + + - Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked + Exponent: 0.0Interpolation Steps: 6Interpolation Method: 2Duplicate Endpaths: uncheckedInterpolate Style: unchecked - - + + The same example with an exponent of 1: - - - - - - - - - - + + + + + + + + + + - - + + with an exponent of 2: - - - - - - - - - - + + + + + + + + + + - - + + and with an exponent of -1: - - - - - - - - - - + + + + + + + + + + - - + + When dealing with exponents in the Interpolate extension, the order that you select the objects is important. In the examples above, the star-shaped path on the left was selected first, and the hexagon-shaped path on the right was selected second. - - + + View the result when the path on the right was selected first. The exponent in this example was set to 1: - - - - - - - - - - + + + + + + + + + + - - Duplicate Endpaths + + Duplicate Endpaths - - + + This parameter defines whether the group of paths that is generated by the extension includes a copy of the original paths that interpolate was applied on. - - Interpolate Style + + Interpolate Style - - + + This parameter is one of the neat functions of the interpolate extension. It tells the extension to attempt to change the style of the paths at each step. So if the start and end paths are different colors, the paths that are generated will incrementally change as well. - - + + Here is an example where the Interpolate Style function is used on the fill of a path: - - - - - - - - - - + + + + + + + + + + - - + + Interpolate Style also affects the stroke of a path: - - - - - - - - - - + + + + + + + + + + - - + + Of course, the path of the start point and the end point does not have to be the same either: - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - Using Interpolate to fake irregular-shaped gradients + + Using Interpolate to fake irregular-shaped gradients - - + + It is not possible in Inkscape (yet) to create a gradient other than linear (straight line) or radial (round). However, it can be faked using the Interpolate extension and Interpolate Style. A simple example follows — draw two lines of different strokes: - - - + + + - - + + And interpolate between the two lines to create your gradient: - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - Conclusion + + Conclusion - - + + As demonstrated above, the Inkscape Interpolate extension is a powerful tool. This tutorial covers the basics of this extension, but experimentation is the key to exploring interpolation further. - + - - - + + + @@ -576,19 +576,19 @@ Ryan Lerch, ryanlerch at gmail dot com - - - - - - - - - + + + + + + + + + - - Use Ctrl+up arrow to scroll - + + Use Ctrl+up arrow to scroll + diff --git a/share/tutorials/tutorial-shapes.svg b/share/tutorials/tutorial-shapes.svg index 06441e9f6..74b959d18 100644 --- a/share/tutorials/tutorial-shapes.svg +++ b/share/tutorials/tutorial-shapes.svg @@ -36,16 +36,16 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::SHAPES - + @@ -55,18 +55,18 @@ examples of how and when they could be used. - + Use Ctrl+Arrows, mousewheel, or middle button drag to scroll the page down. For basics of object creation, selection, and transformation, see the Basic -tutorial in Help > Tutorials. +tutorial in Help > Tutorials. - + @@ -77,7 +77,7 @@ numeric parameters that determine the s - + @@ -88,7 +88,7 @@ to a path (Shift+Ctrl+C), but the revers - + @@ -97,11 +97,11 @@ to a path (Shift+Ctrl+C), but the revers shape tools work in general; then we'll explore each shape type in detail. - + General tips - + @@ -112,7 +112,7 @@ you can immediately edit what you created by dragging these handles. - + @@ -122,7 +122,7 @@ in the statusbar what this handle will do when dragged or clicked with different - + @@ -133,7 +133,7 @@ tool's native type are selected, editing the values in the Controls bar cha selected shape(s). - + @@ -145,7 +145,7 @@ created shapes of this type. - + @@ -154,11 +154,11 @@ on it. Ctrl+click (select in group) and (select under) also work as they do in Selector tool. Esc deselects. - + Rectangles - + @@ -168,7 +168,7 @@ editing rectangles as easy and convenient as possible. - + @@ -176,10 +176,10 @@ editing rectangles as easy and convenient as possible. Draw a new rectangle alongside this blue one: - draw here + draw here - + @@ -188,7 +188,7 @@ rectangle to the other by clicking on them. - + @@ -197,7 +197,7 @@ rectangle to the other by clicking on them. - + @@ -206,7 +206,7 @@ rectangle to the other by clicking on them. - + @@ -214,7 +214,7 @@ rectangle to the other by clicking on them. - + @@ -226,7 +226,7 @@ three handles in three of its corners. In fact, these are four handles, but two - + @@ -238,7 +238,7 @@ one side than along the other, you can move that other handle leftwards. - + @@ -246,14 +246,14 @@ one side than along the other, you can move that other handle leftwards. elliptic rounded corners: - Elliptic rounded corners - Circular rounded corners + Elliptic rounded corners + Circular rounded corners - + @@ -262,7 +262,7 @@ observe their rounding handles. - + @@ -275,7 +275,7 @@ rounded corners are scaled when the rectangle is scaled or not. - + @@ -284,7 +284,7 @@ and down, to different proportions, with the “Scale rounded corners” button off: - Scaling rounded rectangles with "Scale rounded corners" OFF + Scaling rounded rectangles with "Scale rounded corners" OFF @@ -294,7 +294,7 @@ and down, to different proportions, with the “Scale rounded corners” button - + @@ -306,7 +306,7 @@ without any manual readjustment of the rounding handles. - + @@ -314,7 +314,7 @@ without any manual readjustment of the rounding handles. with the “Scale rounded corners” button on: - Scaling rounded rectangles with "Scale rounded corners" ON + Scaling rounded rectangles with "Scale rounded corners" ON @@ -324,7 +324,7 @@ with the “Scale rounded corners” button on - + @@ -335,7 +335,7 @@ isn't a slightest agreement in the top right corner (zoom in to see). This - + @@ -344,7 +344,7 @@ isn't a slightest agreement in the top right corner (zoom in to see). This - + @@ -353,7 +353,7 @@ isn't a slightest agreement in the top right corner (zoom in to see). This - + @@ -362,7 +362,7 @@ isn't a slightest agreement in the top right corner (zoom in to see). This - + @@ -370,30 +370,30 @@ isn't a slightest agreement in the top right corner (zoom in to see). This - + You may have noticed that the Rectangle tool's Controls bar shows the horizontal (Rx) and vertical (Ry) rounding radii for the selected rectangle and lets you set them precisely using any length units. The -Not rounded button does what is says — removes rounding from +Not rounded button does what is says — removes rounding from the selected rectangle(s). - + An important advantage of these controls is that they can affect many rectangles at once. For example, if you want to change all rectangles in the layer, just do -Ctrl+A (Select All) and set the parameters you need +Ctrl+A (Select All) and set the parameters you need in the Controls bar. If any non-rectangles are selected, they will be ignored — only rectangles will be changed. - + @@ -403,7 +403,7 @@ with Selector? - + @@ -416,7 +416,7 @@ handles in Rectangle tool: - + @@ -426,7 +426,7 @@ always preserve the rounding radii. - + @@ -435,7 +435,7 @@ always preserve the rounding radii. - + @@ -445,7 +445,7 @@ or the width/height ratio of the rectangle (again, in its own coordinate system may be rotated or skewed). - + @@ -462,9 +462,9 @@ directions to which the resize handles stick when dragged with - Snapping of rectangle - resize handles with Ctrl + Snapping of rectangle - resize handles with Ctrl - + @@ -492,10 +492,10 @@ handles, 3D compositions can be created easily: - 3 original rectangles - Several rectangles copied and resized by handles, mostly with Ctrl + 3 original rectangles + Several rectangles copied and resized by handles, mostly with Ctrl - + @@ -589,11 +589,11 @@ rounding and gradient fills: - + Ellipses - + @@ -604,7 +604,7 @@ those of the rectangle tool: - + @@ -613,7 +613,7 @@ those of the rectangle tool: - + @@ -621,7 +621,7 @@ those of the rectangle tool: - + @@ -630,7 +630,7 @@ those of the rectangle tool: - + @@ -648,7 +648,7 @@ of pie-chart segments or arcs: - + @@ -664,11 +664,11 @@ remove the fill, leaving only stroke: - 15 + 15 - Segments - Arcs + Segments + Arcs @@ -689,7 +689,7 @@ remove the fill, leaving only stroke: - + @@ -700,7 +700,7 @@ arc/segment handle shortcuts: - + @@ -709,7 +709,7 @@ arc/segment handle shortcuts: - + @@ -717,15 +717,15 @@ arc/segment handle shortcuts: - + - The snap angle can be changed in Inkscape Preferences (in Behavior > Steps). + The snap angle can be changed in Inkscape Preferences (in Behavior > Steps). - + @@ -735,7 +735,7 @@ shortcuts are similar to those of the rounding handles of a rectangle: - + @@ -744,7 +744,7 @@ shortcuts are similar to those of the rounding handles of a rectangle: - + @@ -752,7 +752,7 @@ shortcuts are similar to those of the rounding handles of a rectangle: - + @@ -769,11 +769,11 @@ resize handles: - + Stars - + @@ -783,7 +783,7 @@ friends by Inkscape, let them play with the Star tool. It's endlessly enter - + @@ -795,14 +795,14 @@ dragged: - Star + Star - Polygon + Polygon - + @@ -814,7 +814,7 @@ large numbers (say, over 200) if your computer is slow. - + @@ -823,7 +823,7 @@ large numbers (say, over 200) if your computer is slow. - + @@ -831,7 +831,7 @@ large numbers (say, over 200) if your computer is slow. - + @@ -844,7 +844,7 @@ skew the star's rays with this handle. - + @@ -865,7 +865,7 @@ get all sorts of crystals, mandalas, snowflakes, and porcupines: - + @@ -875,7 +875,7 @@ can make the skewing handle behave as the non-skewing one: - + @@ -884,7 +884,7 @@ can make the skewing handle behave as the non-skewing one: - + @@ -892,17 +892,17 @@ can make the skewing handle behave as the non-skewing one: - + As a useful complement for the on-canvas handle dragging, the Controls bar has the -Spoke ratio field which defines the ratio of the two handles' +Spoke ratio field which defines the ratio of the two handles' distances to the center. - + @@ -915,7 +915,7 @@ however. You don't use a dedicated handle for this, but - + @@ -924,7 +924,7 @@ however. You don't use a dedicated handle for this, but - + @@ -932,7 +932,7 @@ however. You don't use a dedicated handle for this, but - + @@ -943,7 +943,7 @@ examples of negative roundedness.) - + @@ -953,14 +953,14 @@ examples of negative roundedness.) - Rounded polygon + Rounded polygon - Rounded rectangle + Rounded rectangle - + @@ -973,11 +973,11 @@ path and examine it in Node tool). - + - The Rounded parameter which you can adjust in the Controls bar is the + The Rounded parameter which you can adjust in the Controls bar is the ratio of the length of these tangents to the length of the polygon/star sides to which they are adjacent. This parameter can be negative, which reverses the direction of tangents. The values of about 0.2 to 0.4 give “normal” rounding of the kind you would @@ -999,28 +999,28 @@ its handles. Here are a few examples, each indicating its roundedness value: - 0.25 - 0.25 - 0.25 - 0.37 + 0.25 + 0.25 + 0.25 + 0.37 - 0.43 - 3.00 - -3.00 + 0.43 + 3.00 + -3.00 - 0.41 - 5.43 - 1.85 - 0.21 - -3.00 + 0.41 + 5.43 + 1.85 + 0.21 + -3.00 - -0.43 + -0.43 - -8.94 + -8.94 - 0.39 + 0.39 - + @@ -1036,7 +1036,7 @@ from the star: Linked offset, inset Linked offset, outset - + @@ -1045,7 +1045,7 @@ known to man. But it can get better still. - + @@ -1058,7 +1058,7 @@ randomized. Here are the shortcuts: - + @@ -1067,7 +1067,7 @@ randomized. Here are the shortcuts: - + @@ -1075,7 +1075,7 @@ randomized. Here are the shortcuts: - + @@ -1093,7 +1093,7 @@ are exactly the same, but each one is re-randomized by very slightly moving its - + @@ -1101,18 +1101,18 @@ are exactly the same, but each one is re-randomized by very slightly moving its from -0.2 to 0.2: - +0.2 - +0.1 - 0 - -0.1 - -0.2 + +0.2 + +0.1 + 0 + -0.1 + -0.2 - + @@ -1121,7 +1121,7 @@ morphs into its neighbors on the right and left — and beyond. - + @@ -1139,11 +1139,11 @@ landscapes: - + Spirals - + @@ -1154,7 +1154,7 @@ drawing as well as while editing, - + @@ -1162,7 +1162,7 @@ drawing as well as while editing, - + @@ -1172,7 +1172,7 @@ turns). Other shortcuts: - + @@ -1181,7 +1181,7 @@ turns). Other shortcuts: - + @@ -1190,7 +1190,7 @@ turns). Other shortcuts: - + @@ -1198,7 +1198,7 @@ turns). Other shortcuts: - + @@ -1207,7 +1207,7 @@ turns). Other shortcuts: - + @@ -1216,7 +1216,7 @@ turns). Other shortcuts: - + @@ -1225,7 +1225,7 @@ turns). Other shortcuts: - + @@ -1233,7 +1233,7 @@ turns). Other shortcuts: - + @@ -1244,18 +1244,18 @@ is greater than 1 (Alt+drag downwards), towards the center: - 0.2 - 0.5 - 6 - 2 - 1 + 0.2 + 0.5 + 6 + 2 + 1 - + @@ -1263,7 +1263,7 @@ towards the center: - + @@ -1296,7 +1296,7 @@ without fill, you can add fill and remove stroke for interesting effects. - + @@ -1308,11 +1308,11 @@ moire effects: - + Conclusion - + @@ -1352,8 +1352,8 @@ you have any ideas for further shape improvements, please contact the developers - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-tips.svg b/share/tutorials/tutorial-tips.svg index fc17dbc2e..f6100e0e9 100644 --- a/share/tutorials/tutorial-tips.svg +++ b/share/tutorials/tutorial-tips.svg @@ -36,15 +36,15 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::TIPS AND TRICKS - + @@ -53,21 +53,21 @@ the use of Inkscape and some “hidden” features that can help you speed up pr tasks. - + Radial placement with Tile Clones - + - It's easy to see how to use the Create Tile Clones dialog for rectangular grids and + It's easy to see how to use the Create Tile Clones dialog for rectangular grids and patterns. But what if you need radial placement, where objects share a common center of rotation? It's possible too! - + @@ -77,15 +77,15 @@ and the like. A more general method, however, is as follows. - + Choose the P1 symmetry (simple translation) and then compensate for -that translation by going to the Shift tab and setting Per -row/Shift Y and Per column/Shift X both to -100%. Now all +that translation by going to the Shift tab and setting Per +row/Shift Y and Per column/Shift X both to -100%. Now all clones will be stacked exactly on top of the original. All that remains to do is to go -to the Rotation tab and set some rotation angle per column, then +to the Rotation tab and set some rotation angle per column, then create the pattern with one row and multiple columns. For example, here's a pattern made out of a horizontal line, with 30 columns, each column rotated 6 degrees: @@ -121,7 +121,7 @@ out of a horizontal line, with 30 columns, each column rotated 6 degrees: - + @@ -130,7 +130,7 @@ central part by a white circle (to do boolean operations on clones, unlink them - + @@ -221,14 +221,14 @@ other; within each column, individual lines are 2 degrees apart: - + In the above examples, the line was rotated around its center. But what if you want the center to be outside of your shape? Just create an invisible (no fill, no stroke) rectangle which would cover your shape and whose center is in the point you need, group -the shape and the rectangle together, and then use Create Tile Clones on +the shape and the rectangle together, and then use Create Tile Clones on that group. This is how you can do nice “explosions” or “starbursts” by randomizing scale, rotation, and possibly opacity: @@ -308,18 +308,18 @@ scale, rotation, and possibly opacity: - + How to do slicing (multiple rectangular export areas)? - + Create a new layer, in that layer create invisible rectangles covering parts of your image. Make sure your document uses the px unit (default), turn on grid and snap the rects to the grid so that each one spans a whole number of px units. Assign meaningful -ids to the rects, and export each one to its own file (File +ids to the rects, and export each one to its own file (File > Export PNG Image (Shift+Ctrl+E)). Then the rects will remember their export filenames. After that, it's very easy to re-export some of the rects: switch to the export layer, use Tab to select the one you need (or use Find by id), and @@ -328,7 +328,7 @@ all of your areas, with a command like: - + @@ -336,20 +336,20 @@ all of your areas, with a command like: - + for each exported area. The -t switch tells it to use the remembered filename hint, otherwise you can provide the export filename with the -e switch. Alternatively, you can -use the Extensions > Web > Slicer extensions, or Extensions > Export > Guillotine for similar results. +use the Extensions > Web > Slicer extensions, or Extensions > Export > Guillotine for similar results. - + Non-linear gradients - + @@ -358,7 +358,7 @@ non-linear translations between colors). You can, however, emulate them by multistop gradients. - + @@ -377,7 +377,7 @@ make the resulting gradient. Here's the initial black-white gradient with t - + @@ -474,11 +474,11 @@ Editor): - + Excentric radial gradients - + @@ -500,38 +500,38 @@ need it, you can snap the focus back by dragging it close to the center. - + Aligning to the center of the page - + To align something to the center or side of a page, select the object or group and then -choose Page from the Relative to: list in the +choose Page from the Relative to: list in the Align and Distribute dialog (Shift+Ctrl+A). - + Cleaning up the document - + Many of the no-longer-used gradients, patterns, and markers (more precisely, those which you edited manually) remain in the corresponding palettes and can be reused for new -objects. However if you want to optimize your document, use the Clean up Document command in File menu. It will remove any gradients, patterns, or markers +objects. However if you want to optimize your document, use the Clean up Document command in File menu. It will remove any gradients, patterns, or markers which are not used by anything in the document, making the file smaller. - + Hidden features and the XML editor - + @@ -541,11 +541,11 @@ more SVG features than are accessible from the GUI. The XML editor is one way to access to these features (if you know SVG). - + Changing the rulers' unit of measure - + @@ -553,16 +553,16 @@ access to these features (if you know SVG). in Inkscape it's equal to 0.8pt or 1/90 of the inch). This is also the unit used in displaying coordinates at the lower-left corner and preselected in all units menus. (You can always hover your mouse over a ruler to see the tooltip with the units it uses.) To -change this, open Document Preferences -(Shift+Ctrl+D) and change the Default units on the -Page tab. +change this, open Document Preferences +(Shift+Ctrl+D) and change the Default units on the +Page tab. - + Stamping - + @@ -572,11 +572,11 @@ drag an object (or scale or rotate it), and while holding the mouse button down, repeat it as many times as you wish. - + Pen tool tricks - + @@ -585,7 +585,7 @@ repeat it as many times as you wish. - + @@ -594,7 +594,7 @@ repeat it as many times as you wish. - + @@ -603,7 +603,7 @@ repeat it as many times as you wish. - + @@ -612,7 +612,7 @@ repeat it as many times as you wish. - + @@ -620,18 +620,18 @@ repeat it as many times as you wish. - + Note that while the path is unfinished (i.e. is shown green, with the current segment red) it does not yet exist as an object in the document. Therefore, to cancel it, use either Esc (cancel the whole path) or Backspace -(remove the last segment of the unfinished path) instead of Undo. +(remove the last segment of the unfinished path) instead of Undo. - + @@ -641,11 +641,11 @@ either Esc (cancel the whole path) or - + Entering Unicode values - + @@ -659,35 +659,35 @@ an em-dash (—). To quit the Unicode mode without inserting anything press - + - You can also use the Text > Glyphs dialog to search for and insert + You can also use the Text > Glyphs dialog to search for and insert glyphs into your document. - + Using the grid for drawing icons - + Suppose you want to create a 24x24 pixel icon. Create a 24x24 px canvas (use the -Document Preferences) and set the grid to 0.5 px (48x48 gridlines). +Document Preferences) and set the grid to 0.5 px (48x48 gridlines). Now, if you align filled objects to even gridlines, and stroked objects to odd gridlines with the stroke width in px being an even number, and export it at the default 90dpi (so that 1 px becomes 1 bitmap pixel), you get a crisp bitmap image without unneeded antialiasing. - + Object rotation - + @@ -700,7 +700,7 @@ rotation center to any place. - + @@ -710,20 +710,20 @@ degrees). The same [] keys with - + Drop shadows - + To quickly create drop shadows for objects, use the -Filters > Shadows and Glows > Drop Shadow... feature. +Filters > Shadows and Glows > Drop Shadow... feature. - + @@ -734,26 +734,26 @@ and lower than original object. Now open Fill And Stroke dialog and change Blur say, 5.0. That's it! - + Placing text on a path - + To place text along a curve, select the text and the curve together and choose -Put on Path from the Text menu. The text will start at the beginning +Put on Path from the Text menu. The text will start at the beginning of the path. In general it is best to create an explicit path that you want the text to be fitted to, rather than fitting it to some other drawing element — this will give you more control without screwing over your drawing. - + Selecting the original - + @@ -764,11 +764,11 @@ offset, or clone, and press Shift+D to m corresponding path, offset source, or clone original. - + Window off-screen recovery - + @@ -776,15 +776,15 @@ corresponding path, offset source, or clone original. you may find Inkscape has saved a window position that places the window out of reach on your screen. Simply maximise the window (which will bring it back into view, use the task bar), save and reload. You can avoid this altogether by unchecking the global -option to save window geometry (Inkscape Preferences, -Interface > Windows section). +option to save window geometry (Inkscape Preferences, +Interface > Windows section). - + Transparency, gradients, and PostScript export - + @@ -829,8 +829,8 @@ apply this procedure to each piece. - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-tracing-pixelart.svg b/share/tutorials/tutorial-tracing-pixelart.svg index e463f26c5..443c8b7e4 100644 --- a/share/tutorials/tutorial-tracing-pixelart.svg +++ b/share/tutorials/tutorial-tracing-pixelart.svg @@ -1,6 +1,6 @@ - + @@ -36,15 +36,15 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::TRACING PIXEL ART - + @@ -52,7 +52,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -69,7 +69,7 @@ resolutions displays. - + @@ -77,18 +77,18 @@ resolutions displays. - + - Inkscape is powered by libdepixelize with the ability + Inkscape is powered by libdepixelize with the ability to automatically vectorize these "special" Pixel Art images. You can try other types of input images too, but be warned: The result won't be equally good and it is a better idea to use the other Inkscape tracer, potrace. - + @@ -340,7 +340,7 @@ Pixel Cup entry) on the left and its vectorized output on the right. - + @@ -718,7 +718,7 @@ to the main class of images recognized by Kopf-Lischinski. - + @@ -730,13 +730,13 @@ algorithm if he don't know what images are giving bad results. - + - The image below is a screenshot of Trace Pixel Art dialog in the English localisation. -You can open this dialog using the Path > Trace Pixel Art... -menu or right-clicking on an image object and then Trace Pixel + The image below is a screenshot of Trace Pixel Art dialog in the English localisation. +You can open this dialog using the Path > Trace Pixel Art... +menu or right-clicking on an image object and then Trace Pixel Art. @@ -744,7 +744,7 @@ Art. - + @@ -754,7 +754,7 @@ that, so let's leave it for later and starting with the explanation for out - + @@ -769,19 +769,19 @@ the libdepixelize and the original libdepixelize author granted their wishes. - + The default output should give the smoothest result and is probably what you want. You saw already the default output on the first samples of this -tutorial. If you want to try it yourself, just open the Trace Pixel Art - dialog and click in OK after choosing some image +tutorial. If you want to try it yourself, just open the Trace Pixel Art + dialog and click in OK after choosing some image on Inkscape. - + @@ -15138,7 +15138,7 @@ vertices were shared by two diagonal cells). - + @@ -15150,7 +15150,7 @@ colors. A hint about the heuristics of this stage: You can't tune them. - + @@ -15165,7 +15165,7 @@ soon). - + @@ -15178,7 +15178,7 @@ connections are erased. - + @@ -15189,7 +15189,7 @@ settings you got, you can just change the output type to the one you want. - + @@ -15580,7 +15580,7 @@ highlight the differences that each heuristic performs. - + @@ -15596,7 +15596,7 @@ about a chess board). - + @@ -15608,7 +15608,7 @@ heuristics, but this heuristic is cool and help to give still better results. - + @@ -15624,7 +15624,7 @@ is too greedy and likes to use the "0.25" value for its multiplier. - + @@ -15636,7 +15636,7 @@ pixels heuristic. - + @@ -15649,7 +15649,7 @@ just can. - + @@ -15661,7 +15661,7 @@ luck. - + @@ -15671,7 +15671,7 @@ problems. The links are: - + @@ -15679,7 +15679,7 @@ problems. The links are: - + @@ -15715,8 +15715,8 @@ problems. The links are: - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll diff --git a/share/tutorials/tutorial-tracing.svg b/share/tutorials/tutorial-tracing.svg index 59ce6263c..0967b03dc 100644 --- a/share/tutorials/tutorial-tracing.svg +++ b/share/tutorials/tutorial-tracing.svg @@ -36,15 +36,15 @@ - - Use Ctrl+down arrow to scroll + + Use Ctrl+down arrow to scroll - + ::TRACING - + @@ -54,17 +54,17 @@ should help you become acquainted with how it works. - + - Currently Inkscape employs the Potrace bitmap tracing engine (potrace.sourceforge.net) by Peter Selinger. + Currently Inkscape employs the Potrace bitmap tracing engine (potrace.sourceforge.net) by Peter Selinger. In the future we expect to allow alternate tracing programs; for now, however, this fine tool is more than sufficient for our needs. - + @@ -75,7 +75,7 @@ drawing. - + @@ -85,7 +85,7 @@ something that Potrace can use. - + @@ -97,18 +97,18 @@ proportion and complexity of the output path. - + To use the tracer, load or import an image, select it, -and select the Path > Trace Bitmap item, or Shift+Alt+B. +and select the Path > Trace Bitmap item, or Shift+Alt+B. - Main options within the Trace dialog + Main options within the Trace dialog - + @@ -117,7 +117,7 @@ and select the Path > Trace Bitmap it - + @@ -125,7 +125,7 @@ and select the Path > Trace Bitmap it - + @@ -136,15 +136,15 @@ pixels that will be considered to be “white”, and the intermediate image wit become darker. - Original Image - Brightness ThresholdFill, no Stroke - Brightness ThresholdStroke, no Fill + Original Image + Brightness ThresholdFill, no Stroke + Brightness ThresholdStroke, no Fill - + @@ -152,7 +152,7 @@ become darker. - + @@ -165,15 +165,15 @@ contrast edge will be included in the output. This setting can adjust the darkn thickness of the edge in the output. - Original Image - Edge DetectedFill, no Stroke - Edge DetectedStroke, no Fill + Original Image + Edge DetectedFill, no Stroke + Edge DetectedStroke, no Fill - + @@ -181,7 +181,7 @@ thickness of the edge in the output. - + @@ -193,14 +193,14 @@ would be if the intermediate bitmap were in color. It then decides black/white whether the color has an even or odd index. - Original Image - Quantization (12 colors)Fill, no Stroke - Quantization (12 colors)Stroke, no Fill + Original Image + Quantization (12 colors)Fill, no Stroke + Quantization (12 colors)Stroke, no Fill - + @@ -210,22 +210,22 @@ than the others. - + - After tracing, it is also suggested that the user try Path > Simplify + After tracing, it is also suggested that the user try Path > Simplify (Ctrl+L) on the output path to reduce the number of nodes. This can make the output of Potrace much easier to edit. For example, here is a typical tracing of the Old Man Playing Guitar: - Original Image - Traced Image / Output Path(1,551 nodes) + Original Image + Traced Image / Output Path(1,551 nodes) - + @@ -233,12 +233,12 @@ of the Old Man Playing Guitar: this is a typical result: - Original Image - Traced Image / Output Path - Simplified(384 nodes) + Original Image + Traced Image / Output Path - Simplified(384 nodes) - + @@ -277,8 +277,8 @@ image, but a set of curves that you can use in your drawing. - - Use Ctrl+up arrow to scroll + + Use Ctrl+up arrow to scroll -- cgit v1.2.3 From f9b46a56e41c1fb0d743ae381394b2245f264fc8 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sun, 11 May 2014 13:57:14 +0200 Subject: i18n. Fix for bug #1318289 (preferences > bitmap > rendering shows po file headers). Fixed bugs: - https://launchpad.net/bugs/1318289 (bzr r13350) --- share/filters/i18n.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'share') diff --git a/share/filters/i18n.py b/share/filters/i18n.py index d13f007b1..4c10da6e1 100755 --- a/share/filters/i18n.py +++ b/share/filters/i18n.py @@ -10,14 +10,17 @@ filters = doc.getElementsByTagName('filter') sys.stdout.write("char * stringlst = [") for filter in filters: - label = filter.getAttribute('inkscape:label') - menu = filter.getAttribute('inkscape:menu') - desc = filter.getAttribute('inkscape:menu-tooltip') - comment = "" + label = "N_(\"" + filter.getAttribute('inkscape:label') + "\")" + menu = "N_(\"" + filter.getAttribute('inkscape:menu') + "\")" + if (filter.getAttribute('inkscape:menu-tooltip')): + desc = "N_(\"" + filter.getAttribute('inkscape:menu-tooltip') + "\")" + else: + desc = "" + comment = "" - if "NR" in label: - comment = '/* TRANSLATORS: NR means non-realistic. See menu Filters > Non realistic shaders */\n' - - sys.stdout.write(comment + "N_(\"" + label + "\"), N_(\"" + menu + "\"), N_(\"" + desc + "\"),") + if "NR" in label: + comment = '/* TRANSLATORS: NR means non-realistic. See menu Filters > Non realistic shaders */\n' + + sys.stdout.write(comment + "\n" + label + ",\n" + menu + ",\n" + desc + ",\n") sys.stdout.write("];") -- cgit v1.2.3 From 32cbde3467fdf07292800c3131ada40722eeb61d Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sun, 11 May 2014 14:49:54 +0200 Subject: i18n. Fix for bug #1318328 (typo in trunk-r13348). Translations. Translation template update. Translations. French translation update. Fixed bugs: - https://launchpad.net/bugs/1318328 (bzr r13351) --- share/symbols/MapSymbols.svg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'share') diff --git a/share/symbols/MapSymbols.svg b/share/symbols/MapSymbols.svg index 4fccc0492..23099c847 100644 --- a/share/symbols/MapSymbols.svg +++ b/share/symbols/MapSymbols.svg @@ -728,7 +728,7 @@ -Kindergatten +Kindergarten @@ -783,7 +783,7 @@ -Deserts/Cakes Shop +Desserts/Cakes Shop -- cgit v1.2.3 From 1fb28d6c7a8d030542ab5bcdf6ed6228356e213d Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sun, 11 May 2014 16:04:42 +0200 Subject: i18n. Fix for bug #1318345 (untranslatable strings in trunk-r13348). Fixed bugs: - https://launchpad.net/bugs/1318345 (bzr r13352) --- share/extensions/guides_creator.inx | 189 ++++++++++++++++++------------------ share/symbols/BalloonSymbols.svg | 6 ++ 2 files changed, 100 insertions(+), 95 deletions(-) (limited to 'share') diff --git a/share/extensions/guides_creator.inx b/share/extensions/guides_creator.inx index ddc706097..4d032e024 100644 --- a/share/extensions/guides_creator.inx +++ b/share/extensions/guides_creator.inx @@ -1,97 +1,96 @@ - - <_name>Guides creator - org.inkscape.effect.guidescreator - guides_creator.py - inkex.py - - - - Custom... - Golden ratio - Rule-of-third - - 2 - 3 - false - false - - - false - false - false - false - false - - - - Custom... - Left book page - Right book page - - - 1/10 - 1/9 - 1/8 - 1/7 - 1/6 - 1/5 - 1/4 - 1/3 - 1/2 - None - - - 1/10 - 1/9 - 1/8 - 1/7 - 1/6 - 1/5 - 1/4 - 1/3 - 1/2 - None - - - 1/10 - 1/9 - 1/8 - 1/7 - 1/6 - 1/5 - 1/4 - 1/3 - 1/2 - None - - - 1/10 - 1/9 - 1/8 - 1/7 - 1/6 - 1/5 - 1/4 - 1/3 - 1/2 - None - - - 2 - 3 - false - false - - - - - all - - - - - + + + <_name>Guides creator + org.inkscape.effect.guidescreator + guides_creator.py + inkex.py + + + + <_item value="custom">Custom... + <_item value="golden">Golden ratio + <_item value="3;3">Rule-of-third + + 2 + 3 + false + false + + + false + false + false + false + false + + + + <_item value="custom">Custom... + <_item value="book_left">Left book page + <_item value="book_right">Right book page + + + 1/10 + 1/9 + 1/8 + 1/7 + 1/6 + 1/5 + 1/4 + 1/3 + 1/2 + <_item value="0">None + + + 1/10 + 1/9 + 1/8 + 1/7 + 1/6 + 1/5 + 1/4 + 1/3 + 1/2 + <_item value="0">None + + + 1/10 + 1/9 + 1/8 + 1/7 + 1/6 + 1/5 + 1/4 + 1/3 + 1/2 + <_item value="0">None + + + 1/10 + 1/9 + 1/8 + 1/7 + 1/6 + 1/5 + 1/4 + 1/3 + 1/2 + <_item value="0">None + + 2 + 3 + false + false + + + + all + + + + + diff --git a/share/symbols/BalloonSymbols.svg b/share/symbols/BalloonSymbols.svg index 0244f2f3a..b2563e47a 100644 --- a/share/symbols/BalloonSymbols.svg +++ b/share/symbols/BalloonSymbols.svg @@ -75,6 +75,7 @@ + Rounded Balloon @@ -84,6 +85,7 @@ + Squared Balloon @@ -93,6 +95,7 @@ + Over the Phone @@ -102,6 +105,7 @@ + Hip Balloon @@ -111,6 +115,7 @@ + Circle Balloon @@ -120,6 +125,7 @@ + Exclaim Balloon -- cgit v1.2.3 From 50e519370436ce42e8a068c52126f32478c2509f Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 12 May 2014 18:42:26 +0200 Subject: Fix for Bug #1318671 (url for New in This Version is obsolete) by Masato HASHIMOTO. Fixed bugs: - https://launchpad.net/bugs/1318671 (bzr r13359) --- share/extensions/inkscape_help_relnotes.inx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'share') diff --git a/share/extensions/inkscape_help_relnotes.inx b/share/extensions/inkscape_help_relnotes.inx index 9f59513ba..d032eb7e0 100644 --- a/share/extensions/inkscape_help_relnotes.inx +++ b/share/extensions/inkscape_help_relnotes.inx @@ -4,7 +4,7 @@ org.inkscape.help.relnotes launch_webbrowser.py - <_param name="url" gui-hidden="true" type="string">http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49 + <_param name="url" gui-hidden="true" type="string">http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91 all -- cgit v1.2.3 From f0e7c07cf877f6eca7f6820f12d79332e4bdd764 Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Mon, 12 May 2014 18:54:21 -0400 Subject: extensions. guides_creator. scale units (Bug 1318532) Fixed bugs: - https://launchpad.net/bugs/1318532 (bzr r13370) --- share/extensions/guides_creator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'share') diff --git a/share/extensions/guides_creator.py b/share/extensions/guides_creator.py index 21df1cd50..77ece2e36 100755 --- a/share/extensions/guides_creator.py +++ b/share/extensions/guides_creator.py @@ -297,8 +297,8 @@ class Guides_Creator(inkex.Effect): svg = self.document.getroot() # getting the width and height attributes of the canvas - width = float(svg.get('width')) - height = float(svg.get('height')) + width = self.unittouu(svg.get('width'))/self.unittouu('1px') + height = self.unittouu(svg.get('height'))/self.unittouu('1px') # getting edges coordinates h_orientation = '0,' + str(round(width,4)) -- cgit v1.2.3 From 3fe7090e52db5837d56d0c592037d1b8ab8a6c49 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Wed, 14 May 2014 17:56:38 +0200 Subject: Documentation. Replace old menu items in the Tips and Basic tutorials. Fixed bugs: - https://launchpad.net/bugs/1319060 (bzr r13373) --- share/tutorials/tutorial-basic.svg | 2 +- share/tutorials/tutorial-tips.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'share') diff --git a/share/tutorials/tutorial-basic.svg b/share/tutorials/tutorial-basic.svg index 958eaeca9..35ed566ff 100644 --- a/share/tutorials/tutorial-basic.svg +++ b/share/tutorials/tutorial-basic.svg @@ -673,7 +673,7 @@ the line with copies of this black square: Chances are, your copies of the square are placed more or less randomly. This is -where the Align dialog (Shift+Ctrl+A) is useful. Select all the squares +where the Align and Distribute dialog (Shift+Ctrl+A) is useful. Select all the squares (Shift+click or drag a rubberband), open the dialog and press the “Center on horizontal axis” button, then the “Make horizontal gaps between objects equal” button (read the button tooltips). The objects are now neatly aligned and diff --git a/share/tutorials/tutorial-tips.svg b/share/tutorials/tutorial-tips.svg index f6100e0e9..99641a8be 100644 --- a/share/tutorials/tutorial-tips.svg +++ b/share/tutorials/tutorial-tips.svg @@ -553,7 +553,7 @@ access to these features (if you know SVG). in Inkscape it's equal to 0.8pt or 1/90 of the inch). This is also the unit used in displaying coordinates at the lower-left corner and preselected in all units menus. (You can always hover your mouse over a ruler to see the tooltip with the units it uses.) To -change this, open Document Preferences +change this, open Document Properties (Shift+Ctrl+D) and change the Default units on the Page tab. -- cgit v1.2.3 From c1868b102a43c00c4b99017e011909efb5c4d1ed Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Wed, 14 May 2014 19:32:19 +0200 Subject: Fix for Bug #1264371 (Broken Link: Bug Page Not Found From Program Link). Fixed bugs: - https://launchpad.net/bugs/1264371 (bzr r13375) --- share/extensions/inkscape_help_reportabug.inx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'share') diff --git a/share/extensions/inkscape_help_reportabug.inx b/share/extensions/inkscape_help_reportabug.inx index 8c3929f3e..81239a8ed 100644 --- a/share/extensions/inkscape_help_reportabug.inx +++ b/share/extensions/inkscape_help_reportabug.inx @@ -3,7 +3,7 @@ <_name>Report a Bug org.inkscape.help.reportabug launch_webbrowser.py - http://inkscape.org/report_bugs.php + http://inkscape.org/contribute/report-bugs/ all -- cgit v1.2.3 From 1120f847062f17b8256010f73a083dc76a4a4fcb Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Fri, 16 May 2014 09:51:26 -0400 Subject: Barcode extension: Code cleanup and merge in delta from last year. (bzr r13386) --- share/extensions/Barcode/Base.py | 34 +++++---- share/extensions/Barcode/Code128.py | 49 ++++++++---- share/extensions/Barcode/Code25i.py | 3 +- share/extensions/Barcode/Code39.py | 7 +- share/extensions/Barcode/Code39Ext.py | 6 +- share/extensions/Barcode/Code93.py | 2 +- share/extensions/Barcode/EAN13.py | 38 ---------- share/extensions/Barcode/EAN5.py | 39 ---------- share/extensions/Barcode/EAN8.py | 34 --------- share/extensions/Barcode/Ean13.py | 38 ++++++++++ share/extensions/Barcode/Ean5.py | 39 ++++++++++ share/extensions/Barcode/Ean8.py | 34 +++++++++ share/extensions/Barcode/RM4CC.py | 135 ---------------------------------- share/extensions/Barcode/Rm4scc.py | 135 ++++++++++++++++++++++++++++++++++ share/extensions/Barcode/UPCA.py | 37 ---------- share/extensions/Barcode/UPCE.py | 103 -------------------------- share/extensions/Barcode/Upca.py | 37 ++++++++++ share/extensions/Barcode/Upce.py | 103 ++++++++++++++++++++++++++ share/extensions/Barcode/__init__.py | 61 +++++---------- share/extensions/render_barcode.inx | 22 +++--- share/extensions/render_barcode.py | 79 +++++++++++--------- 21 files changed, 521 insertions(+), 514 deletions(-) delete mode 100644 share/extensions/Barcode/EAN13.py delete mode 100644 share/extensions/Barcode/EAN5.py delete mode 100644 share/extensions/Barcode/EAN8.py create mode 100644 share/extensions/Barcode/Ean13.py create mode 100644 share/extensions/Barcode/Ean5.py create mode 100644 share/extensions/Barcode/Ean8.py delete mode 100644 share/extensions/Barcode/RM4CC.py create mode 100644 share/extensions/Barcode/Rm4scc.py delete mode 100644 share/extensions/Barcode/UPCA.py delete mode 100644 share/extensions/Barcode/UPCE.py create mode 100644 share/extensions/Barcode/Upca.py create mode 100644 share/extensions/Barcode/Upce.py (limited to 'share') diff --git a/share/extensions/Barcode/Base.py b/share/extensions/Barcode/Base.py index b86185388..90a1837c4 100644 --- a/share/extensions/Barcode/Base.py +++ b/share/extensions/Barcode/Base.py @@ -34,12 +34,12 @@ class Barcode(object): """Cause an error to be reported""" sys.stderr.write( "Error encoding '%s' as %s barcode: %s\n" % (bar, self.name, msg)) + return "ERROR" def __init__(self, param={}): self.document = param.get('document', None) self.x = int(param.get('x', 0)) self.y = int(param.get('y', 0)) - self.scale = param.get('scale', 1) self.height = param.get('height', 30) self.label = param.get('text', None) self.string = self.encode( self.label ) @@ -50,35 +50,39 @@ class Barcode(object): self.width = len(self.string) self.data = self.graphicalArray(self.string) - def generate(self): - """Generate the actual svg from the coding""" - svg_uri = u'http://www.w3.org/2000/svg' - if not self.string or not self.data: - return + def get_id(self): + """Get the next useful id""" if not self.document: - return self.error("No document defined") - - data = self.data - # Collect document ids + return "barcode" doc_ids = {} docIdNodes = self.document.xpath('//@id') for m in docIdNodes: doc_ids[m] = 1 - # We don't have svg documents so lets do something raw: name = 'barcode' - # Make sure that the id/name is inique index = 0 while (doc_ids.has_key(name)): - name = 'barcode' + str(index) - index = index + 1 + index += 1 + name = 'barcode%d' % index + return name + + def generate(self): + """Generate the actual svg from the coding""" + svg_uri = u'http://www.w3.org/2000/svg' + if self.string == 'ERROR': + return + if not self.string or not self.data: + raise ValueError("No string specified for barcode.") + + data = self.data + name = self.get_id() # use an svg group element to contain the barcode barcode = etree.Element('{%s}%s' % (svg_uri,'g')) barcode.set('id', name) barcode.set('style', 'fill: black;') - barcode.set('transform', 'translate(%d,%d) scale(%f)' % (self.x, self.y, self.scale)) + barcode.set('transform', 'translate(%d,%d)' % (self.x, self.y)) bar_offset = 0 bar_id = 1 diff --git a/share/extensions/Barcode/Code128.py b/share/extensions/Barcode/Code128.py index 8734fc330..618ce7817 100644 --- a/share/extensions/Barcode/Code128.py +++ b/share/extensions/Barcode/Code128.py @@ -27,7 +27,29 @@ from Base import Barcode import math import re -map = [ '11011001100','11001101100','11001100110','10010011000','10010001100','10001001100','10011001000','10011000100','10001100100','11001001000','11001000100','11000100100','10110011100','10011011100','10011001110','10111001100','10011101100','10011100110','11001110010','11001011100','11001001110','11011100100','11001110100','11101101110','11101001100','11100101100','11100100110','11101100100','11100110100','11100110010','11011011000','11011000110','11000110110','10100011000','10001011000','10001000110','10110001000','10001101000','10001100010','11010001000','11000101000','11000100010','10110111000','10110001110','10001101110','10111011000','10111000110','10001110110','11101110110','11010001110','11000101110','11011101000','11011100010','11011101110','11101011000','11101000110','11100010110','11101101000','11101100010','11100011010','11101111010','11001000010','11110001010','10100110000','10100001100','10010110000','10010000110','10000101100','10000100110','10110010000','10110000100','10011010000','10011000010','10000110100','10000110010','11000010010','11001010000','11110111010','11000010100','10001111010','10100111100','10010111100','10010011110','10111100100','10011110100','10011110010','11110100100','11110010100','11110010010','11011011110','11011110110','11110110110','10101111000','10100011110','10001011110','10111101000','10111100010','11110101000','11110100010','10111011110','10111101110','11101011110','11110101110','11010000100','11010010000','11010011100','11000111010','11' ] +codeMap = [ + '11011001100','11001101100','11001100110','10010011000','10010001100', + '10001001100','10011001000','10011000100','10001100100','11001001000', + '11001000100','11000100100','10110011100','10011011100','10011001110', + '10111001100','10011101100','10011100110','11001110010','11001011100', + '11001001110','11011100100','11001110100','11101101110','11101001100', + '11100101100','11100100110','11101100100','11100110100','11100110010', + '11011011000','11011000110','11000110110','10100011000','10001011000', + '10001000110','10110001000','10001101000','10001100010','11010001000', + '11000101000','11000100010','10110111000','10110001110','10001101110', + '10111011000','10111000110','10001110110','11101110110','11010001110', + '11000101110','11011101000','11011100010','11011101110','11101011000', + '11101000110','11100010110','11101101000','11101100010','11100011010', + '11101111010','11001000010','11110001010','10100110000','10100001100', + '10010110000','10010000110','10000101100','10000100110','10110010000', + '10110000100','10011010000','10011000010','10000110100','10000110010', + '11000010010','11001010000','11110111010','11000010100','10001111010', + '10100111100','10010111100','10010011110','10111100100','10011110100', + '10011110010','11110100100','11110010100','11110010010','11011011110', + '11011110110','11110110110','10101111000','10100011110','10001011110', + '10111101000','10111100010','11110101000','11110100010','10111011110', + '10111101110','11101011110','11110101110','11010000100','11010010000', + '11010011100','11000111010','11' ] def mapExtra(sd, chars): result = list(sd) @@ -44,7 +66,8 @@ charAB = list(' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ charA = mapExtra(charAB, range(0, 31)) # Offset 64 charB = mapExtra(charAB, range(96, 125)) # Offset -32 -class Object(Barcode): +class Code128(Barcode): + """Main barcode object, generates the encoding bits here""" def encode(self, text): result = '' blocks = [] @@ -65,7 +88,7 @@ class Object(Barcode): if block: blocks.append(self.bestBlock(block)) block = ''; - + self.inclabel = text return self.encodeBlocks(blocks) @@ -74,12 +97,12 @@ class Object(Barcode): if block.upper() == block: return [ 'A', block ] return [ 'B', block ] - + def encodeBlocks(self, blocks): total = 0 pos = 0 encode = ''; - + for block in blocks: set = block[0] datum = block[1] @@ -103,7 +126,7 @@ class Object(Barcode): i = 1 total = total + num * i - encode = encode + map[num] + encode = encode + codeMap[num] pos = pos + 1 if set == 'A' or set == 'B': @@ -113,18 +136,18 @@ class Object(Barcode): for char in datum: total = total + (chars.index(char) * pos) - encode = encode + map[chars.index(char)] + encode = encode + codeMap[chars.index(char)] pos = pos + 1 else: for char in (datum[i:i+2] for i in range(0, len(datum), 2)): total = total + (int(char) * pos) - encode = encode + map[int(char)] + encode = encode + codeMap[int(char)] pos = pos + 1 - + checksum = total % 103 - encode = encode + map[checksum] - encode = encode + map[106] - encode = encode + map[107] - + encode = encode + codeMap[checksum] + encode = encode + codeMap[106] + encode = encode + codeMap[107] + return encode diff --git a/share/extensions/Barcode/Code25i.py b/share/extensions/Barcode/Code25i.py index 518a306f2..51346be60 100644 --- a/share/extensions/Barcode/Code25i.py +++ b/share/extensions/Barcode/Code25i.py @@ -34,14 +34,13 @@ encoding = { '7' : '00011', '8' : '10010', '9' : '01010', - } # Start and stop code are already encoded into white (0) and black(1) bars start_code = '1010' stop_code = '1101' -class Object(Barcode): +class Code25i(Barcode): # Convert a text into string binary of black and white markers def encode(self, number): self.label = number diff --git a/share/extensions/Barcode/Code39.py b/share/extensions/Barcode/Code39.py index 64b22f352..ade397463 100644 --- a/share/extensions/Barcode/Code39.py +++ b/share/extensions/Barcode/Code39.py @@ -68,7 +68,7 @@ encoding = { ' ' : '011000100', } -class Object(Barcode): +class Code39(Barcode): # Convert a text into string binary of black and white markers def encode(self, text): text = text.upper() @@ -93,10 +93,7 @@ class Object(Barcode): encoded = encoded + colour + colour else: encoded = encoded + colour - if colour == '1': - colour = '0' - else: - colour = '1' + colour = colour == '1' and '0' or '1' self.inclabel = text return encoded; diff --git a/share/extensions/Barcode/Code39Ext.py b/share/extensions/Barcode/Code39Ext.py index 8f1e77826..b6df47de2 100644 --- a/share/extensions/Barcode/Code39Ext.py +++ b/share/extensions/Barcode/Code39Ext.py @@ -19,7 +19,7 @@ Python barcode renderer for Code39 Extended barcodes. Designed for Inkscape. """ -import Code39 +from Code39 import Code39 encode = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') @@ -46,7 +46,7 @@ mapB = getMap(range(1, 26)) # $ mapC = getMap(range(33, 58)) # / mapD = getMap(range(97, 122)) # + -class Object(Code39.Object): +class Code39Ext(Code39): def encode(self, text): # We are only going to extend the Code39 barcodes result = '' @@ -61,5 +61,5 @@ class Object(Code39.Object): char = '+' + mapD[char] result = result + char - return Code39.Object.encode(self, result); + return Code39.encode(self, result); diff --git a/share/extensions/Barcode/Code93.py b/share/extensions/Barcode/Code93.py index 76cbf683b..866ec6036 100644 --- a/share/extensions/Barcode/Code93.py +++ b/share/extensions/Barcode/Code93.py @@ -56,7 +56,7 @@ mapD = getMap(range(97, 122)) # + encoding = '100010100 101001000 101000100 101000010 100101000 100100100 100100010 101010000 100010010 100001010 110101000 110100100 110100010 110010100 110010010 110001010 101101000 101100100 101100010 100110100 100011010 101011000 101001100 101000110 100101100 100010110 110110100 110110010 110101100 110100110 110010110 110011010 101101100 101100110 100110110 100111010 100101110 111010100 111010010 111001010 101101110 101110110 110101110 100100110 111011010 111010110 100110010 101011110'.split() -class Object(Barcode): +class Code93(Barcode): def encode(self, text): # start marker bits = self.encode93('MARKER') diff --git a/share/extensions/Barcode/EAN13.py b/share/extensions/Barcode/EAN13.py deleted file mode 100644 index 41681173b..000000000 --- a/share/extensions/Barcode/EAN13.py +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (C) 2010 Martin Owens -# -# Thanks to Lineaire Chez of Inkbar ( www.inkbar.lineaire.net ) -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for EAN13 barcodes. Designed for use with Inkscape. -""" - -from BaseEan import EanBarcode - -class Object(EanBarcode): - """Provide an Ean13 barcode generator""" - name = 'ean13' - lengths = [ 12 ] - checks = [ 13 ] - - def _encode(self, n): - """Encode an ean13 barcode""" - self.label = self.space(n[0:1], 4, n[1:7], 5, n[7:], 7) - return self.enclose( - self.encode_interleaved(n[0], n[1:7]), self.encode_right(n[7:]) ) - - diff --git a/share/extensions/Barcode/EAN5.py b/share/extensions/Barcode/EAN5.py deleted file mode 100644 index 68ff99738..000000000 --- a/share/extensions/Barcode/EAN5.py +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (C) 2009 Aaron C Spike -# 2010 Martin Owens -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for EAN5 barcodes. Designed for use with Inkscape. -""" - -from BaseEan import EanBarcode - -FAMS = [ '11000','10100','10010','10001','01100','00110','00011','01010','01001','00101' ] -START = '01011' - -class Object(EanBarcode): - """Provide an Ean5 barcode generator""" - name = 'ean5' - length = 5 - - def _encode(self, number): - self.x += 110.0 # horiz offset so it does not overlap EAN13 - self.y -= self.height + 5 # move the text to the top - self.label = ' '.join(self.space(number)) - family = sum([int(n)*int(m) for n,m in zip(number, '39393')]) % 10 - return START + '01'.join(self.encode_interleaved(family, number, FAMS)) - diff --git a/share/extensions/Barcode/EAN8.py b/share/extensions/Barcode/EAN8.py deleted file mode 100644 index 05b4d7bb7..000000000 --- a/share/extensions/Barcode/EAN8.py +++ /dev/null @@ -1,34 +0,0 @@ -# -# Copyright (C) 2010 Martin Owens -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for EAN8 barcodes. Designed for use with Inkscape. -""" - -from BaseEan import EanBarcode - -class Object(EanBarcode): - """Provide an EAN8 barcode generator""" - name = 'ean8' - lengths = [ 7 ] - checks = [ 8 ] - - def _encode(self, n): - """Encode an ean8 barcode""" - self.label = self.space(n[:4], 3, n[4:]) - return self.enclose( self.encode_left(n[:4]), self.encode_right(n[4:]) ) - diff --git a/share/extensions/Barcode/Ean13.py b/share/extensions/Barcode/Ean13.py new file mode 100644 index 000000000..3bad5d6e5 --- /dev/null +++ b/share/extensions/Barcode/Ean13.py @@ -0,0 +1,38 @@ +# +# Copyright (C) 2010 Martin Owens +# +# Thanks to Lineaire Chez of Inkbar ( www.inkbar.lineaire.net ) +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for EAN13 barcodes. Designed for use with Inkscape. +""" + +from BaseEan import EanBarcode + +class Ean13(EanBarcode): + """Provide an Ean13 barcode generator""" + name = 'ean13' + lengths = [ 12 ] + checks = [ 13 ] + + def _encode(self, n): + """Encode an ean13 barcode""" + self.label = self.space(n[0:1], 4, n[1:7], 5, n[7:], 7) + return self.enclose( + self.encode_interleaved(n[0], n[1:7]), self.encode_right(n[7:]) ) + + diff --git a/share/extensions/Barcode/Ean5.py b/share/extensions/Barcode/Ean5.py new file mode 100644 index 000000000..f328ed536 --- /dev/null +++ b/share/extensions/Barcode/Ean5.py @@ -0,0 +1,39 @@ +# +# Copyright (C) 2009 Aaron C Spike +# 2010 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for EAN5 barcodes. Designed for use with Inkscape. +""" + +from BaseEan import EanBarcode + +FAMS = [ '11000','10100','10010','10001','01100','00110','00011','01010','01001','00101' ] +START = '01011' + +class Ean5(EanBarcode): + """Provide an Ean5 barcode generator""" + name = 'ean5' + length = 5 + + def _encode(self, number): + self.x += 110.0 # horiz offset so it does not overlap EAN13 + self.y -= self.height + 5 # move the text to the top + self.label = ' '.join(self.space(number)) + family = sum([int(n)*int(m) for n,m in zip(number, '39393')]) % 10 + return START + '01'.join(self.encode_interleaved(family, number, FAMS)) + diff --git a/share/extensions/Barcode/Ean8.py b/share/extensions/Barcode/Ean8.py new file mode 100644 index 000000000..83e82814a --- /dev/null +++ b/share/extensions/Barcode/Ean8.py @@ -0,0 +1,34 @@ +# +# Copyright (C) 2010 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for EAN8 barcodes. Designed for use with Inkscape. +""" + +from BaseEan import EanBarcode + +class Ean8(EanBarcode): + """Provide an EAN8 barcode generator""" + name = 'ean8' + lengths = [ 7 ] + checks = [ 8 ] + + def _encode(self, n): + """Encode an ean8 barcode""" + self.label = self.space(n[:4], 3, n[4:]) + return self.enclose( self.encode_left(n[:4]), self.encode_right(n[4:]) ) + diff --git a/share/extensions/Barcode/RM4CC.py b/share/extensions/Barcode/RM4CC.py deleted file mode 100644 index d980c6c86..000000000 --- a/share/extensions/Barcode/RM4CC.py +++ /dev/null @@ -1,135 +0,0 @@ -# -# Copyright (C) 2007 Martin Owens -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for RM4CC barcodes. Designed for use with Inkscape. -""" - -from Base import Barcode - -map = { - '(' : '25', - ')' : '3', - '0' : '05053535', - '1' : '05152535', - '2' : '05153525', - '3' : '15052535', - '4' : '15053525', - '5' : '15152525', - '6' : '05251535', - '7' : '05350535', - '8' : '05351525', - '9' : '15250535', - 'A' : '15251525', - 'B' : '15350525', - 'C' : '05253515', - 'D' : '05352515', - 'E' : '05353505', - 'F' : '15252515', - 'G' : '15253505', - 'H' : '15352505', - 'I' : '25051535', - 'J' : '25150535', - 'K' : '25151525', - 'L' : '35050535', - 'M' : '35051525', - 'N' : '35150525', - 'O' : '25053525', - 'P' : '25152515', - 'Q' : '25153505', - 'R' : '35052515', - 'S' : '35053505', - 'T' : '35152505', - 'U' : '25251515', - 'V' : '25350515', - 'W' : '25351505', - 'X' : '35250515', - 'Y' : '35251505', - 'Z' : '35350505', -} - -check = ['ZUVWXY','501234','B6789A','HCDEFG','NIJKLM','TOPQRS'] -(BAR_TRACK, BAR_DOWN, BAR_UP, BAR_FULL, BAR_NONE, WHITE_SPACE) = range(6) - -class Object(Barcode): - def encode(self, text): - result = '' - - self.height = 18 - text = text.upper() - text.replace('(', '') - text.replace(')', '') - - text = '(' + text + self.checksum(text) + ')' - - i = 0 - for char in text: - if map.has_key(char): - result = result + map[char] - - i = i + 1 - - self.inclabel = text - return result; - - # given a string of data, return the check character - def checksum(self, text): - total_lower = 0 - total_upper = 0 - for char in text: - if map.has_key(char): - bars = map[char][0:8:2] - lower = 0 - upper = 0 - - if int(bars[0]) & 1: - lower = lower + 4 - if int(bars[1]) & 1: - lower = lower + 2 - if int(bars[2]) & 1: - lower = lower + 1 - if int(bars[0]) & 2: - upper = upper + 4 - if int(bars[1]) & 2: - upper = upper + 2 - if int(bars[2]) & 2: - upper = upper + 1 - total_lower = total_lower + (lower % 6) - total_upper = total_upper + (upper % 6) - - total_lower = total_upper % 6 - total_upper = total_upper % 6 - - checkchar = check[total_upper][total_lower] - return checkchar - - def getStyle(self, index): - """Royal Mail Barcodes use a completely different style""" - result = { 'width' : 2, 'write' : True, 'top' : 0 } - if index == BAR_TRACK: # Track Bar - result['top'] = 6 - result['height'] = 5 - elif index == BAR_DOWN: # Decender Bar - result['top'] = 6 - result['height'] = 11 - elif index == BAR_UP: # Accender Bar - result['height'] = 11 - elif index == BAR_FULL: # Full Bar - result['height'] = 17 - elif index == WHITE_SPACE: # White Space - result['write'] = False - return result diff --git a/share/extensions/Barcode/Rm4scc.py b/share/extensions/Barcode/Rm4scc.py new file mode 100644 index 000000000..0fb154280 --- /dev/null +++ b/share/extensions/Barcode/Rm4scc.py @@ -0,0 +1,135 @@ +# +# Copyright (C) 2007 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for RM4CC barcodes. Designed for use with Inkscape. +""" + +from Base import Barcode + +map = { + '(' : '25', + ')' : '3', + '0' : '05053535', + '1' : '05152535', + '2' : '05153525', + '3' : '15052535', + '4' : '15053525', + '5' : '15152525', + '6' : '05251535', + '7' : '05350535', + '8' : '05351525', + '9' : '15250535', + 'A' : '15251525', + 'B' : '15350525', + 'C' : '05253515', + 'D' : '05352515', + 'E' : '05353505', + 'F' : '15252515', + 'G' : '15253505', + 'H' : '15352505', + 'I' : '25051535', + 'J' : '25150535', + 'K' : '25151525', + 'L' : '35050535', + 'M' : '35051525', + 'N' : '35150525', + 'O' : '25053525', + 'P' : '25152515', + 'Q' : '25153505', + 'R' : '35052515', + 'S' : '35053505', + 'T' : '35152505', + 'U' : '25251515', + 'V' : '25350515', + 'W' : '25351505', + 'X' : '35250515', + 'Y' : '35251505', + 'Z' : '35350505', +} + +check = ['ZUVWXY','501234','B6789A','HCDEFG','NIJKLM','TOPQRS'] +(BAR_TRACK, BAR_DOWN, BAR_UP, BAR_FULL, BAR_NONE, WHITE_SPACE) = range(6) + +class Rm4scc(Barcode): + def encode(self, text): + result = '' + + self.height = 18 + text = text.upper() + text.replace('(', '') + text.replace(')', '') + + text = '(' + text + self.checksum(text) + ')' + + i = 0 + for char in text: + if map.has_key(char): + result = result + map[char] + + i = i + 1 + + self.inclabel = text + return result; + + # given a string of data, return the check character + def checksum(self, text): + total_lower = 0 + total_upper = 0 + for char in text: + if map.has_key(char): + bars = map[char][0:8:2] + lower = 0 + upper = 0 + + if int(bars[0]) & 1: + lower = lower + 4 + if int(bars[1]) & 1: + lower = lower + 2 + if int(bars[2]) & 1: + lower = lower + 1 + if int(bars[0]) & 2: + upper = upper + 4 + if int(bars[1]) & 2: + upper = upper + 2 + if int(bars[2]) & 2: + upper = upper + 1 + total_lower = total_lower + (lower % 6) + total_upper = total_upper + (upper % 6) + + total_lower = total_upper % 6 + total_upper = total_upper % 6 + + checkchar = check[total_upper][total_lower] + return checkchar + + def getStyle(self, index): + """Royal Mail Barcodes use a completely different style""" + result = { 'width' : 2, 'write' : True, 'top' : 0 } + if index == BAR_TRACK: # Track Bar + result['top'] = 6 + result['height'] = 5 + elif index == BAR_DOWN: # Decender Bar + result['top'] = 6 + result['height'] = 11 + elif index == BAR_UP: # Accender Bar + result['height'] = 11 + elif index == BAR_FULL: # Full Bar + result['height'] = 17 + elif index == WHITE_SPACE: # White Space + result['write'] = False + return result diff --git a/share/extensions/Barcode/UPCA.py b/share/extensions/Barcode/UPCA.py deleted file mode 100644 index 6ac10943c..000000000 --- a/share/extensions/Barcode/UPCA.py +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (C) 2007 Martin Owens -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for UPCA barcodes. Designed for use with Inkscape. -""" - -from BaseEan import EanBarcode - -class Object(EanBarcode): - """Provides a renderer for EAN12 aka UPC-A Barcodes""" - name = 'upca' - lengths = [ 11 ] - checks = [ 12 ] - - def _encode(self, n): - """Encode for a UPC-A Barcode""" - self.label = self.space(n[0:1], 3, n[1:6], 4, n[6:11], 3, n[11:]) - return self.enclose(self.encode_left(n[0:6]), self.encode_right(n[6:12])) - - def fontSize(self): - """We need a bigger barcode""" - return 10 diff --git a/share/extensions/Barcode/UPCE.py b/share/extensions/Barcode/UPCE.py deleted file mode 100644 index dba5d48ea..000000000 --- a/share/extensions/Barcode/UPCE.py +++ /dev/null @@ -1,103 +0,0 @@ -# -# Copyright (C) 2010 Martin Owens -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -""" -Python barcode renderer for UPCE barcodes. Designed for use with Inkscape. -""" - -from BaseEan import EanBarcode -import sys - -# This is almost exactly the same as the standard FAMILIES -# But flipped around and with the first 111000 instead of 000000. -FAMS = [ '111000', '110100', '110010', '110001', '101100', - '100110', '100011', '101010', '101001', '100101' ] - -class Object(EanBarcode): - """Generate EAN6/UPC-E barcode generator""" - name = 'upce' - lengths = [ 6, 11 ] - checks = [ 7, 12 ] - - def _encode(self, n): - """Generate a UPC-E Barcode""" - self.label = self.space(['0'], 2, n[:6], 2, n[-1]) - code = self.encode_interleaved(n[-1], n[:6], FAMS) - # 202(guard) + code + 020(center) + 202(guard) - return self.enclose(code, center='020') - - def appendChecksum(self, number): - """Generate a UPCE Checksum""" - if len(number) == 6: - number = self.ConvertEtoA(number) - result = self.getChecksum(number) - return self.ConvertAtoE(number) + result - - def fontSize(self): - """We need a font size of 10""" - return 10 - - def ConvertAtoE(self, number): - """Converting UPC-A to UPC-E, may cause errors.""" - # All UPC-E Numbers use number system 0 - if number[0] != '0' or len(number)!=11: - # If not then the code is invalid - return None - - # Most of the conversions deal - # with the specific code parts - manufacturer = number[1:6] - product = number[6:11] - - # There are 4 cases to convert: - if manufacturer[2:] == '000' or manufacturer[2:] == '100' or manufacturer[2:] == '200': - # Maxium number product code digits can be encoded - if product[:2]=='00': - return manufacturer[:2] + product[2:] + manufacturer[2] - elif manufacturer[3:5] == '00': - # Now only 2 product code digits can be used - if product[:3]=='000': - return manufacturer[:3] + product[3:] + '3' - elif manufacturer[4] == '0': - # With even more manufacturer code we have less room for product code - if product[:4]=='0000': - return manufacturer[0:4] + product[4] + '4' - elif product[:4]=='0000' and int(product[4]) > 4: - # The last recorse is to try and squeeze it in the last 5 numbers - # so long as the product is 00005-00009 so as not to conflict with - # the 0-4 used above. - return manufacturer + product[4] - else: - # Invalid UPC-A Numbe - return None - - def ConvertEtoA(self, number): - """Convert UPC-E to UPC-A by padding with zeros""" - # It's more likly to convert this without fault - # But we still must be mindful of the 4 conversions - if len(number) != 6: - return None - - if number[5] in ['0', '1', '2']: - return '0' + number[:2] + number[5] + '0000' + number[2:5] - elif number[5] == '3': - return '0' + number[:3] + '00000' + number[3:5] - elif number[5] == '4': - return '0' + number[:4] + '00000' + number[4] - else: - return '0' + number[:5] + '0000' + number[5] - diff --git a/share/extensions/Barcode/Upca.py b/share/extensions/Barcode/Upca.py new file mode 100644 index 000000000..d69ed11e6 --- /dev/null +++ b/share/extensions/Barcode/Upca.py @@ -0,0 +1,37 @@ +# +# Copyright (C) 2007 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for UPCA barcodes. Designed for use with Inkscape. +""" + +from BaseEan import EanBarcode + +class Upca(EanBarcode): + """Provides a renderer for EAN12 aka UPC-A Barcodes""" + name = 'upca' + lengths = [ 11 ] + checks = [ 12 ] + + def _encode(self, n): + """Encode for a UPC-A Barcode""" + self.label = self.space(n[0:1], 3, n[1:6], 4, n[6:11], 3, n[11:]) + return self.enclose(self.encode_left(n[0:6]), self.encode_right(n[6:12])) + + def fontSize(self): + """We need a bigger barcode""" + return 10 diff --git a/share/extensions/Barcode/Upce.py b/share/extensions/Barcode/Upce.py new file mode 100644 index 000000000..eee2a739c --- /dev/null +++ b/share/extensions/Barcode/Upce.py @@ -0,0 +1,103 @@ +# +# Copyright (C) 2010 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +""" +Python barcode renderer for UPCE barcodes. Designed for use with Inkscape. +""" + +from BaseEan import EanBarcode +import sys + +# This is almost exactly the same as the standard FAMILIES +# But flipped around and with the first 111000 instead of 000000. +FAMS = [ '111000', '110100', '110010', '110001', '101100', + '100110', '100011', '101010', '101001', '100101' ] + +class Upce(EanBarcode): + """Generate EAN6/UPC-E barcode generator""" + name = 'upce' + lengths = [ 6, 11 ] + checks = [ 7, 12 ] + + def _encode(self, n): + """Generate a UPC-E Barcode""" + self.label = self.space(['0'], 2, n[:6], 2, n[-1]) + code = self.encode_interleaved(n[-1], n[:6], FAMS) + # 202(guard) + code + 020(center) + 202(guard) + return self.enclose(code, center='020') + + def appendChecksum(self, number): + """Generate a UPCE Checksum""" + if len(number) == 6: + number = self.ConvertEtoA(number) + result = self.getChecksum(number) + return self.ConvertAtoE(number) + result + + def fontSize(self): + """We need a font size of 10""" + return 10 + + def ConvertAtoE(self, number): + """Converting UPC-A to UPC-E, may cause errors.""" + # All UPC-E Numbers use number system 0 + if number[0] != '0' or len(number)!=11: + # If not then the code is invalid + raise ValueError("Invalid UPC Number") + + # Most of the conversions deal + # with the specific code parts + manufacturer = number[1:6] + product = number[6:11] + + # There are 4 cases to convert: + if manufacturer[2:] == '000' or manufacturer[2:] == '100' or manufacturer[2:] == '200': + # Maxium number product code digits can be encoded + if product[:2]=='00': + return manufacturer[:2] + product[2:] + manufacturer[2] + elif manufacturer[3:5] == '00': + # Now only 2 product code digits can be used + if product[:3]=='000': + return manufacturer[:3] + product[3:] + '3' + elif manufacturer[4] == '0': + # With even more manufacturer code we have less room for product code + if product[:4]=='0000': + return manufacturer[0:4] + product[4] + '4' + elif product[:4]=='0000' and int(product[4]) > 4: + # The last recorse is to try and squeeze it in the last 5 numbers + # so long as the product is 00005-00009 so as not to conflict with + # the 0-4 used above. + return manufacturer + product[4] + else: + # Invalid UPC-A Numbe + raise ValueError("Invalid UPC Number") + + def ConvertEtoA(self, number): + """Convert UPC-E to UPC-A by padding with zeros""" + # It's more likly to convert this without fault + # But we still must be mindful of the 4 conversions + if len(number) != 6: + return None + + if number[5] in ['0', '1', '2']: + return '0' + number[:2] + number[5] + '0000' + number[2:5] + elif number[5] == '3': + return '0' + number[:3] + '00000' + number[3:5] + elif number[5] == '4': + return '0' + number[:4] + '00000' + number[4] + else: + return '0' + number[:5] + '0000' + number[5] + diff --git a/share/extensions/Barcode/__init__.py b/share/extensions/Barcode/__init__.py index 370839f45..e4e328ae3 100644 --- a/share/extensions/Barcode/__init__.py +++ b/share/extensions/Barcode/__init__.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2010 Martin Owens +# Copyright (C) 2014 Martin Owens # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,10 +16,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # """ -Renderer for barcodes, SVG extention for Inkscape. +Renderer for barcodes, SVG extention for Inkscape. For supported barcodes see Barcode module directory. - """ # This lists all known Barcodes missing from this package @@ -40,45 +39,19 @@ For supported barcodes see Barcode module directory. import sys -def getBarcode(format, param={}): - if format: - format = str(format).lower() - format = format.replace('-', '') - format = format.replace(' ', '') - if format=='code25i': - import Code25i - return Code25i.Object(param) - elif format=='code39': - import Code39 - return Code39.Object(param) - elif format=='code39ext': - import Code39Ext - return Code39Ext.Object(param) - elif format=='code93': - import Code93 - return Code93.Object(param) - elif format=='code128': - import Code128 - return Code128.Object(param) - - elif format in ['rm4cc', 'rm4scc']: - import RM4CC - return RM4CC.Object(param) - - elif format == 'upca': - import UPCA - return UPCA.Object(param) - elif format == 'upce': - import UPCE - return UPCE.Object(param) - elif format == 'ean5': - import EAN5 - return EAN5.Object(param) - elif format in ['ean8', 'ucc8']: - import EAN8 - return EAN8.Object(param) - elif format in ['ean13', 'ucc13','jan']: - import EAN13 - return EAN13.Object(param) - sys.stderr.write("Invalid format for barcode: " + str(format) + "\n") +def getBarcode(code, **kwargs): + """Gets a barcode from a list of available barcode formats""" + if not code: + return sys.stderr.write("No barcode format given!\n") + + + code = str(code).replace('-', '').strip() + try: + barcode = getattr(__import__('Barcode.'+code, fromlist=['Barcode']), code) + return barcode(kwargs) + except ImportError: + sys.stderr.write("Invalid type of barcode: %s\n" % code) + except AttributeError: + raise + sys.stderr.write("Barcode module is missing the barcode class: %s\n" % code) diff --git a/share/extensions/render_barcode.inx b/share/extensions/render_barcode.inx index 64d828a19..debefadad 100644 --- a/share/extensions/render_barcode.inx +++ b/share/extensions/render_barcode.inx @@ -5,17 +5,17 @@ inkex.py render_barcode.py - EAN5 - EAN8 - EAN13 - UPC-A - UPC-E - Code25 Interleaved 2 of 5 - Code39 - Code39 Extended - Code93 - Code128 - RM4CC / RM4SCC + EAN5 + EAN8 + EAN13 + UPC-A + UPC-E + Code25 Interleaved 2 of 5 + Code39 + Code39 Extended + Code93 + Code128 + RM4CC / RM4SCC 30 diff --git a/share/extensions/render_barcode.py b/share/extensions/render_barcode.py index c3b809c9e..694dcc8f3 100755 --- a/share/extensions/render_barcode.py +++ b/share/extensions/render_barcode.py @@ -26,41 +26,52 @@ import sys from Barcode import getBarcode class InsertBarcode(inkex.Effect): - def __init__(self): - inkex.Effect.__init__(self) - self.OptionParser.add_option("-l", "--height", - action="store", type="int", - dest="height", default=30, - help="Barcode Height") - self.OptionParser.add_option("-t", "--type", - action="store", type="string", - dest="type", default='', - help="Barcode Type") - self.OptionParser.add_option("-d", "--text", - action="store", type="string", - dest="text", default='', - help="Text to print on barcode") + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-l", "--height", + action="store", type="int", + dest="height", default=30, + help="Barcode Height") + self.OptionParser.add_option("-t", "--type", + action="store", type="string", + dest="type", default='', + help="Barcode Type") + self.OptionParser.add_option("-d", "--text", + action="store", type="string", + dest="text", default='', + help="Text to print on barcode") + + def effect(self): + x, y = self.view_center + bargen = getBarcode( self.options.type, + text=self.options.text, + height=self.options.height, + document=self.document, + x=x, y=y, + scale=self.unittouu('1px'), + ) + if bargen is not None: + barcode = bargen.generate() + if barcode is not None: + self.current_layer.append(barcode) + else: + sys.stderr.write("No barcode was generated\n") + else: + sys.stderr.write("Unable to make barcode with: " + str(self.options) + "\n") + +def test_barcode(): + bargen = getBarcode("Ean13", text="123456789101") + if bargen is not None: + barcode = bargen.generate() + if barcode: + print inkex.etree.tostring(barcode, pretty_print=True) - def effect(self): - x, y = self.view_center - bargen = getBarcode( self.options.type, { - 'text' : self.options.text, - 'height' : self.options.height, - 'document' : self.document, - 'x' : x, - 'y' : y, - 'scale' : self.unittouu('1px'), - } ) - if bargen is not None: - barcode = bargen.generate() - if barcode is not None: - self.current_layer.append(barcode) - else: - sys.stderr.write("No barcode was generated\n") - else: - sys.stderr.write("Unable to make barcode with: " + str(self.options) + "\n") if __name__ == '__main__': - e = InsertBarcode() - e.affect() + if len(sys.argv) == 1: + # Debug mode without inkex + test_barcode() + exit(0) + e = InsertBarcode() + e.affect() -- cgit v1.2.3 From ae1a66276c928963944485acfa88624aef5965b6 Mon Sep 17 00:00:00 2001 From: Josh Andler Date: Fri, 16 May 2014 09:58:07 -0700 Subject: Fix build. (bzr r13387) --- share/extensions/Barcode/Makefile.am | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'share') diff --git a/share/extensions/Barcode/Makefile.am b/share/extensions/Barcode/Makefile.am index 691120cb6..7a1e889c0 100644 --- a/share/extensions/Barcode/Makefile.am +++ b/share/extensions/Barcode/Makefile.am @@ -9,13 +9,13 @@ barcode_DATA = \ Code39.py \ Code25i.py \ Code93.py \ - EAN13.py \ - EAN8.py \ - EAN5.py \ + Ean13.py \ + Ean8.py \ + Ean5.py \ __init__.py \ - RM4CC.py \ - UPCA.py \ - UPCE.py + Rm4scc.py \ + Upca.py \ + Upce.py EXTRA_DIST = \ $(barcode_DATA) -- cgit v1.2.3 From 3e8afe9e7e139c69ab222f7b985d65f4214b7675 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Fri, 16 May 2014 14:49:04 -0400 Subject: Put scale functionality back in to barcode renderer. (bzr r13388) --- share/extensions/Barcode/Base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'share') diff --git a/share/extensions/Barcode/Base.py b/share/extensions/Barcode/Base.py index 90a1837c4..b7429f84f 100644 --- a/share/extensions/Barcode/Base.py +++ b/share/extensions/Barcode/Base.py @@ -40,6 +40,7 @@ class Barcode(object): self.document = param.get('document', None) self.x = int(param.get('x', 0)) self.y = int(param.get('y', 0)) + self.scale = param.get('scale', 1) self.height = param.get('height', 30) self.label = param.get('text', None) self.string = self.encode( self.label ) @@ -82,7 +83,7 @@ class Barcode(object): barcode = etree.Element('{%s}%s' % (svg_uri,'g')) barcode.set('id', name) barcode.set('style', 'fill: black;') - barcode.set('transform', 'translate(%d,%d)' % (self.x, self.y)) + barcode.set('transform', 'translate(%d,%d) scale(%f)' % (self.x, self.y, self.scale)) bar_offset = 0 bar_id = 1 -- cgit v1.2.3 From 2a508d344ee90d97b330c09f8b7cfc1728fff09e Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 17 May 2014 10:49:40 -0700 Subject: extensions: Clarify licensing requirements in README (bzr r13389) --- share/extensions/README | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'share') diff --git a/share/extensions/README b/share/extensions/README index ba0251dc4..0d6e544e8 100644 --- a/share/extensions/README +++ b/share/extensions/README @@ -1,10 +1,12 @@ -This folder contains Inkscape extensions, i.e. the scripts -that implement some commands that you can use from within -Inkscape. Most of these commands are in the Effects menu. +This folder contains Inkscape extensions, i.e. the scripts that +implement some commands that you can use from within Inkscape. Most of +these commands are in the Extensions menu. -Each *.inx file describes an extension, -listing its name, purpose, prerequisites, etc. These -files are read by Inkscape on launch. Other files are -the scripts themselves (Perl, Python, and Ruby are -supported, as well as shell scripts). +Each *.inx file describes an extension, listing its name, purpose, +prerequisites, location within the menu, etc. These files are read by +Inkscape on launch. Other files are the scripts themselves (Perl, +Python, and Ruby are supported, as well as shell scripts). +Only include extensions here which are GPL-compatible. This includes +Apache-2, MPL 1.1, certain Creative Commons licenses, and more. See +https://www.gnu.org/licenses/license-list.html for guidance. -- cgit v1.2.3 From c74948724847aa19f383b10ee3b644727b70fa24 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 17 May 2014 10:50:05 -0700 Subject: extensions: Update tests for new barcode class names The barcode class names appear to have been TitleCased. (bzr r13390) --- share/extensions/test/render_barcode.test.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'share') diff --git a/share/extensions/test/render_barcode.test.py b/share/extensions/test/render_barcode.test.py index 79f4ff979..e61e9c57c 100755 --- a/share/extensions/test/render_barcode.test.py +++ b/share/extensions/test/render_barcode.test.py @@ -10,15 +10,15 @@ import random import unittest # Allow import of the extension code and modules -sys.path.append('..') +sys.path.append('..') from render_barcode import * -import Barcode.EAN5 -import Barcode.EAN8 -import Barcode.EAN13 -import Barcode.UPCA -import Barcode.UPCE +import Barcode.Ean5 +import Barcode.Ean8 +import Barcode.Ean13 +import Barcode.Upca +import Barcode.Upce digits = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ] @@ -43,23 +43,23 @@ class InsertBarcodeBasicTest(unittest.TestCase): def test_render_barcode_ian5(self): """Barcode IAN5""" - self.barcode_test( 'ean5', Barcode.EAN5 ) + self.barcode_test( 'ean5', Barcode.Ean5 ) def test_render_barcode_ian8(self): """Barcode IAN5""" - self.barcode_test( 'ean8', Barcode.EAN8 ) + self.barcode_test( 'ean8', Barcode.Ean8 ) def test_render_barcode_ian13(self): """Barcode IAN5""" - self.barcode_test( 'ean13', Barcode.EAN13 ) + self.barcode_test( 'ean13', Barcode.Ean13 ) def test_render_barcode_upca(self): """Barcode IAN5""" - self.barcode_test( 'upca', Barcode.UPCA ) + self.barcode_test( 'upca', Barcode.Upca ) def test_render_barcode_upce(self): """Barcode UPCE""" - self.barcode_test( 'upce', Barcode.UPCE ) + self.barcode_test( 'upce', Barcode.Upce ) def barcode_test(self, name, module): """Base module for all barcode testing""" -- cgit v1.2.3 From 5006be1adbc40610d5160431ba4401ad4d90ebff Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Sat, 17 May 2014 16:48:10 -0400 Subject: extensions. EAN5 barcode. fix offset caused by changing document units (bzr r13393) --- share/extensions/Barcode/Ean5.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'share') diff --git a/share/extensions/Barcode/Ean5.py b/share/extensions/Barcode/Ean5.py index f328ed536..1bd26a4bd 100644 --- a/share/extensions/Barcode/Ean5.py +++ b/share/extensions/Barcode/Ean5.py @@ -31,8 +31,8 @@ class Ean5(EanBarcode): length = 5 def _encode(self, number): - self.x += 110.0 # horiz offset so it does not overlap EAN13 - self.y -= self.height + 5 # move the text to the top + self.x += 110.0*self.scale # horiz offset so it does not overlap EAN13 + self.y -= (self.height + 5)*self.scale # move the text to the top self.label = ' '.join(self.space(number)) family = sum([int(n)*int(m) for n,m in zip(number, '39393')]) % 10 return START + '01'.join(self.encode_interleaved(family, number, FAMS)) -- cgit v1.2.3 From 738c6b15eb4378ec18477428a4b7aca362ca01b6 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Sat, 17 May 2014 18:45:41 -0400 Subject: Fix render barcode test suite (bzr r13394) --- share/extensions/test/render_barcode.test.py | 30 ++++++++++++---------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'share') diff --git a/share/extensions/test/render_barcode.test.py b/share/extensions/test/render_barcode.test.py index e61e9c57c..f2ce23873 100755 --- a/share/extensions/test/render_barcode.test.py +++ b/share/extensions/test/render_barcode.test.py @@ -14,11 +14,6 @@ sys.path.append('..') from render_barcode import * -import Barcode.Ean5 -import Barcode.Ean8 -import Barcode.Ean13 -import Barcode.Upca -import Barcode.Upce digits = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ] @@ -35,39 +30,40 @@ class InsertBarcodeBasicTest(unittest.TestCase): self.data[btype].append( [ text, code ] ) fhl.close() - def test_run_without_parameters(self): - args = [ 'minimal-blank.svg' ] - e = InsertBarcode() - e.affect( args, False ) + #def test_run_without_parameters(self): + # args = [ 'minimal-blank.svg', '-t', 'Ean5' ] + # e = InsertBarcode() + # e.affect( args, False ) #self.assertEqual( e.something, 'some value', 'A commentary about that.' ) def test_render_barcode_ian5(self): """Barcode IAN5""" - self.barcode_test( 'ean5', Barcode.Ean5 ) + self.barcode_test( 'Ean5' ) def test_render_barcode_ian8(self): """Barcode IAN5""" - self.barcode_test( 'ean8', Barcode.Ean8 ) + self.barcode_test( 'Ean8' ) def test_render_barcode_ian13(self): """Barcode IAN5""" - self.barcode_test( 'ean13', Barcode.Ean13 ) + self.barcode_test( 'Ean13' ) def test_render_barcode_upca(self): """Barcode IAN5""" - self.barcode_test( 'upca', Barcode.Upca ) + self.barcode_test( 'Upca' ) def test_render_barcode_upce(self): """Barcode UPCE""" - self.barcode_test( 'upce', Barcode.Upce ) + self.barcode_test( 'Upce' ) - def barcode_test(self, name, module): + def barcode_test(self, name): """Base module for all barcode testing""" - for datum in self.data[name]: + for datum in self.data[name.lower()]: (text, code) = datum if not text or not code: continue - code2 = module.Object( {'text': text} ).encode(text) + coder = getBarcode( name, text=text) + code2 = coder.encode( text ) self.assertEqual(code, code2) -- cgit v1.2.3 From 866660429d647cde8f756bd9197f4bb0d09d453f Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 17 May 2014 20:22:16 -0700 Subject: extensions: scour is now dual-licensed Apache2 and GPL2 Ref. http://bazaar.launchpad.net/~scouring/scour/trunk/revision/222 (bzr r13395) --- share/extensions/scour.py | 9 ++++++--- share/extensions/svg_transform.py | 9 ++++++--- share/extensions/yocto_css.py | 9 ++++++--- 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'share') diff --git a/share/extensions/scour.py b/share/extensions/scour.py index 7fdd55b28..be40a27bd 100644 --- a/share/extensions/scour.py +++ b/share/extensions/scour.py @@ -8,11 +8,14 @@ # # This file is part of Scour, http://www.codedread.com/scour/ # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# This library is free software; you can redistribute it and/or modify +# it either under the terms of the Apache License, Version 2.0, or, at +# your option, under the terms and conditions of the GNU General +# Public License, Version 2 or newer as published by the Free Software +# Foundation. You may obtain a copy of these Licenses at: # # http://www.apache.org/licenses/LICENSE-2.0 +# https://www.gnu.org/licenses/old-licenses/gpl-2.0.html # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/share/extensions/svg_transform.py b/share/extensions/svg_transform.py index 07b523cc8..860c1df5d 100755 --- a/share/extensions/svg_transform.py +++ b/share/extensions/svg_transform.py @@ -7,11 +7,14 @@ # # This file is part of Scour, http://www.codedread.com/scour/ # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# This library is free software; you can redistribute it and/or modify +# it either under the terms of the Apache License, Version 2.0, or, at +# your option, under the terms and conditions of the GNU General +# Public License, Version 2 or newer as published by the Free Software +# Foundation. You may obtain a copy of these Licenses at: # # http://www.apache.org/licenses/LICENSE-2.0 +# https://www.gnu.org/licenses/old-licenses/gpl-2.0.html # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/share/extensions/yocto_css.py b/share/extensions/yocto_css.py index a73e5f2a5..c6bd0c37e 100755 --- a/share/extensions/yocto_css.py +++ b/share/extensions/yocto_css.py @@ -7,11 +7,14 @@ # # This file is part of Scour, http://www.codedread.com/scour/ # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# This library is free software; you can redistribute it and/or modify +# it either under the terms of the Apache License, Version 2.0, or, at +# your option, under the terms and conditions of the GNU General +# Public License, Version 2 or newer as published by the Free Software +# Foundation. You may obtain a copy of these Licenses at: # # http://www.apache.org/licenses/LICENSE-2.0 +# https://www.gnu.org/licenses/old-licenses/gpl-2.0.html # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, -- cgit v1.2.3 From f8ff463eadeecc67ff038c7409e30964b15c0f58 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sat, 24 May 2014 15:36:07 +0200 Subject: Extensions. Fix for Bug #1318348 (Extension dialogs inconsistency). Translations. PO template and French translation update. (bzr r13398) --- share/extensions/hershey.inx | 66 ++++++++-------- share/extensions/hpgl_input.inx | 38 +++++----- share/extensions/hpgl_output.inx | 86 ++++++++++----------- share/extensions/plotter.inx | 158 +++++++++++++++++++-------------------- 4 files changed, 173 insertions(+), 175 deletions(-) (limited to 'share') diff --git a/share/extensions/hershey.inx b/share/extensions/hershey.inx index ed20c6bd3..4d923f046 100644 --- a/share/extensions/hershey.inx +++ b/share/extensions/hershey.inx @@ -10,42 +10,40 @@ Hershey Text for Inkscape - - <_option value="render">Typeset that text - <_option value="table" >Write glyph table + + <_item value="render">Typeset that text + <_item value="table" >Write glyph table - - <_option value="futural">Sans 1-stroke - <_option value="futuram">Sans bold - - <_option value="timesr">Serif medium - <_option value="timesi">Serif medium italic - <_option value="timesib">Serif bold italic - <_option value="timesrb">Serif bold - - <_option value="scripts">Script 1-stroke - <_option value="cursive">Script 1-stroke (alt) - <_option value="scriptc">Script medium - - <_option value="gothiceng">Gothic English - <_option value="gothicger">Gothic German - <_option value="gothicita">Gothic Italian - - <_option value="greek">Greek 1-stroke - <_option value="timesg">Greek medium - <_option value="cyrillic">Cyrillic - <_option value="japanese">Japanese - - <_option value="astrology">Astrology - <_option value="mathlow">Math (lower) - <_option value="mathupp">Math (upper) - <_option value="markers">Markers - <_option value="meteorology">Meteorology - <_option value="music">Music - <_option value="symbolic">Symbolic + + <_item value="futural">Sans 1-stroke + <_item value="futuram">Sans bold + + <_item value="timesr">Serif medium + <_item value="timesi">Serif medium italic + <_item value="timesib">Serif bold italic + <_item value="timesrb">Serif bold + + <_item value="scripts">Script 1-stroke + <_item value="cursive">Script 1-stroke (alt) + <_item value="scriptc">Script medium + + <_item value="gothiceng">Gothic English + <_item value="gothicger">Gothic German + <_item value="gothicita">Gothic Italian + + <_item value="greek">Greek 1-stroke + <_item value="timesg">Greek medium + <_item value="cyrillic">Cyrillic + <_item value="japanese">Japanese + + <_item value="astrology">Astrology + <_item value="mathlow">Math (lower) + <_item value="mathupp">Math (upper) + <_item value="markers">Markers + <_item value="meteorology">Meteorology + <_item value="music">Music + <_item value="symbolic">Symbolic <_param name="emptyspace" type="description" xml:space="preserve"> diff --git a/share/extensions/hpgl_input.inx b/share/extensions/hpgl_input.inx index f40fd4ec0..4cbbba812 100644 --- a/share/extensions/hpgl_input.inx +++ b/share/extensions/hpgl_input.inx @@ -1,22 +1,22 @@ - <_name>HPGL Input - org.inkscape.input.hpgl - hpgl_input.py - hpgl_decoder.py - inkex.py - <_param name="introduction" type="description">Please note that you can only open HPGL files written by Inkscape, to open other HPGL files please change their file extension to .plt, make sure you have UniConverter installed and open them again. -   - 1016.0 - 1016.0 - false - - + <_name>HPGL Input + org.inkscape.input.hpgl + hpgl_input.py + hpgl_decoder.py + inkex.py + <_param name="introduction" type="description">Please note that you can only open HPGL files written by Inkscape, to open other HPGL files please change their file extension to .plt, make sure you have UniConverter installed and open them again. +   + 1016.0 + 1016.0 + false + + diff --git a/share/extensions/hpgl_output.inx b/share/extensions/hpgl_output.inx index d16cc55e5..bfb3e3567 100644 --- a/share/extensions/hpgl_output.inx +++ b/share/extensions/hpgl_output.inx @@ -1,46 +1,46 @@ - <_name>HPGL Output - org.ekips.output.hpgl - org.inkscape.output.svg.inkscape - hpgl_output.py - hpgl_encoder.py - inkex.py - <_param name="introduction" type="description">Please make sure that all objects you want to save are converted to paths. Please use the plotter extension (Extensions menu) to plot directly over a serial connection. - - - 1016.0 - 1016.0 - 1 - 0 - 0 - - - - - - - false - false - false - - - 1.00 - 0.25 - true - 1.2 - true - - - <_param name="settingsHelp" type="description">All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter. - - .hpgl - image/hpgl - <_filetypename>HP Graphics Language file (*.hpgl) - <_filetypetooltip>Export an HP Graphics Language file - true - - + <_name>HPGL Output + org.ekips.output.hpgl + org.inkscape.output.svg.inkscape + hpgl_output.py + hpgl_encoder.py + inkex.py + <_param name="introduction" type="description">Please make sure that all objects you want to save are converted to paths. Please use the plotter extension (Extensions menu) to plot directly over a serial connection. + + + 1016.0 + 1016.0 + 1 + 0 + 0 + + 0 + 90 + 180 + 270 + + false + false + false + + + 1.00 + 0.25 + true + 1.2 + true + + + <_param name="settingsHelp" type="description">All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter. + + .hpgl + image/hpgl + <_filetypename>HP Graphics Language file (*.hpgl) + <_filetypetooltip>Export an HP Graphics Language file + true + + diff --git a/share/extensions/plotter.inx b/share/extensions/plotter.inx index fc620f8a3..4ed5ce9de 100644 --- a/share/extensions/plotter.inx +++ b/share/extensions/plotter.inx @@ -1,82 +1,82 @@ - <_name>Plot - org.ekips.filter.plot - plotter.py - hpgl_decoder.py - hpgl_encoder.py - inkex.py - <_param name="introduction" type="description">Please make sure that all objects you want to plot are converted to paths. - - - COM1 - - - - - - - - - - - - - - - - - - - <_option value="xonxoff">Software (XON/XOFF) - <_option value="rtscts">Hardware (RTS/CTS) - <_option value="dsrdtrrtscts">Hardware (DSR/DTR + RTS/CTS) - <_option value="">None - - - - - - -   - <_param name="freezeHelp" type="description">Using wrong settings can under certain circumstances cause Inkscape to freeze. Always save your work before plotting! - <_param name="serialHelp" type="description">This can be a physical serial connection or a USB-to-Serial bridge. Ask your plotter manufacturer for drivers if needed. - <_param name="parallelHelp" type="description">Parallel (LPT) connections are not supported. - - - 1016.0 - 1016.0 - 1 - 0 - 0 - - - - - - - false - false - false - - - 1.00 - 0.25 - true - 1.2 - true -   - false - - - <_param name="settingsHelp" type="description">All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter. - - path - - - - - + <_name>Plot + org.ekips.filter.plot + plotter.py + hpgl_decoder.py + hpgl_encoder.py + inkex.py + <_param name="introduction" type="description">Please make sure that all objects you want to plot are converted to paths. + + + COM1 + + 9600 + 110 + 300 + 600 + 1200 + 2400 + 4800 + 9600 + 14400 + 19200 + 28800 + 38400 + 56000 + 57600 + 115200 + + + <_item value="xonxoff">Software (XON/XOFF) + <_item value="rtscts">Hardware (RTS/CTS) + <_item value="dsrdtrrtscts">Hardware (DSR/DTR + RTS/CTS) + <_item value="">None + + + <_item value="HPGL">HPGL + <_item value="DMPL">DMPL + <_item value="ZING">KNK Zing (HPGL variant) + +   + <_param name="freezeHelp" type="description">Using wrong settings can under certain circumstances cause Inkscape to freeze. Always save your work before plotting! + <_param name="serialHelp" type="description">This can be a physical serial connection or a USB-to-Serial bridge. Ask your plotter manufacturer for drivers if needed. + <_param name="parallelHelp" type="description">Parallel (LPT) connections are not supported. + + + 1016.0 + 1016.0 + 1 + 0 + 0 + + 0 + 90 + 180 + 270 + + false + false + false + + + 1.00 + 0.25 + true + 1.2 + true +   + false + + + <_param name="settingsHelp" type="description">All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter. + + path + + + + + -- cgit v1.2.3 From f8df38474cef597fd63d4c037eacde6170c0ffaa Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Tue, 27 May 2014 21:16:29 +0200 Subject: Shortcuts. Fix for bug #1323561 (Right handed ilustration file is incorrect). Fixed bugs: - https://launchpad.net/bugs/1323561 (bzr r13399) --- share/keys/right-handed-illustration.xml | 1 - share/keys/xara.xml | 1 - 2 files changed, 2 deletions(-) (limited to 'share') diff --git a/share/keys/right-handed-illustration.xml b/share/keys/right-handed-illustration.xml index 7e63b11cc..696cafea0 100644 --- a/share/keys/right-handed-illustration.xml +++ b/share/keys/right-handed-illustration.xml @@ -539,7 +539,6 @@ Future improvements: - diff --git a/share/keys/xara.xml b/share/keys/xara.xml index 3884ff146..25ebfcb48 100644 --- a/share/keys/xara.xml +++ b/share/keys/xara.xml @@ -542,7 +542,6 @@ Hom/end keys-select minimum or maximum feather values - -- cgit v1.2.3 From 53c9932a49aabce72e1ed13add4b69e36f7a0eae Mon Sep 17 00:00:00 2001 From: Adib Taraben Date: Tue, 3 Jun 2014 21:48:50 +0200 Subject: inkscape.pre0 build failures for win32 nsis (bzr r13407) --- share/extensions/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'share') diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am index 2c1e23954..e8be5d777 100644 --- a/share/extensions/Makefile.am +++ b/share/extensions/Makefile.am @@ -26,7 +26,8 @@ otherstuff_DATA = \ jessyInk_video.svg \ svg2fxg.xsl \ svg2xaml.xsl \ - xaml2svg.xsl + xaml2svg.xsl \ + inkscape.extension.rng module_DATA = $(wildcard $(srcdir)/*.inx) -- cgit v1.2.3 From 2886a9c0d808b60e0d5fc4ecb61b7edfcd77028c Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Thu, 12 Jun 2014 20:33:40 +0200 Subject: Replace FlowSymbols.svg file. Symbols from IBM Flowcharting Template X20-8020, 1970 Revision as well as DIN 66001 and ISO 5807. Partially fixes #1201325. (bzr r13423) --- share/symbols/FlowSymbols.svg | 588 +++++++++++++++++++++++------------------- 1 file changed, 319 insertions(+), 269 deletions(-) (limited to 'share') diff --git a/share/symbols/FlowSymbols.svg b/share/symbols/FlowSymbols.svg index 28a376820..c6f4af64b 100644 --- a/share/symbols/FlowSymbols.svg +++ b/share/symbols/FlowSymbols.svg @@ -1,271 +1,321 @@ - - - - - - - - -image/svg+xml - -Flow Chart Shapes -2013-04-18 - - -Martin Owens - - - - - - - - - -Martin Owens - - -English -Basic Flowchart Symbols - - - - - - - - - - -Flow Chart Shapes - - - - - - - - - - - -An operation or action step -Process - -Process - - -A formally defined sub-process. -Predefined Process - - -DefinedProcess - - -An alternate to the normal process step. -Alternate Process - -AlternateProcess - - -Split processes or a measurement or finished goods. -Extract - -Extract - - -Manually input into a system. -Manual Input - -ManualInput - - -Merge multiple processes into one or raw material storage. -Merge - -Merge - - -A waiting period. -Delay - -Delay - - -Indicates data inputs and outputs to and from a process. -Data I/O - -Data - - -Data stored in memory. -Internal Storage - - -InternalStorage - - - - - -Old computer punch card -Card - -Card - - -A document or report -Document - -Document - - -Storage on a hard drive -Direct Access Storage - - - - -DirectAccess - - -A general data storage flowchart symbol. -Stored Data - -Stored - - -A database -Magnetic Disk (Database) - - - - -MagneticStorage - - -Old computer punched tape input. -Punched Tape - -Tape - - -A start or stop point in a process. -Terminator - -Termination - - -Thick Arrow -Indicates movement of blocks. - - - -Transfer of materials. -Transfer - - - -A question or branch in the process. -Decision - -Decision - - -Shows flow from one block to another. -Flow Arrow - - - -Arrow with additional circle. -Circle Arrow - - - -Continuation on another page -Off-Page Connector - -Page ... - - -A jump from one point to another. -Connector - -Connector - - -Logical Or - - - - - -Summing Junction -Logical And - - - - - -A process step that isn't automated. -Manual Operation - -ManualOperation - - -A preparation or setup process step. -Preparation - -Preparation - - -A machine display. -Display - -Display - - -Sorting of data into a pre-defined order. -Sort - - - - -Organising data into a standard format or arrangement. -Collate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + image/svg+xml + + Flow Chart Shapes + 2013-04-18 + + + Tavmjong Bah + + + + + + + + + + Martin Owens + + + English + Basic Flowchart Symbols + + + + + + + + + + Flow Chart Shapes + + + + + + Process + Any processing function. + + + + + Input/Output + General input/output functions. + + + + + Document + A document or report + + + + + Manual Operation + An offline process (at "human speed"). + + + + + Preparation + A preparation or setup process step. (ISO) + + + + + Merge + Combine two or more sets of items into one set. (ISO) + + + + + Decision + A decision or switching type operation. + + + + + Magnetic Tape + Magnetic tape storage + + + + + + Display + Information display by online indicators, video devices, printers, etc. + + + + + Auxillary Operation + Offline operation. + + + + + Manual Input + Information input by online keyboards, switches, etc. + + + + + Extract + Removel of one or more specific sets of times from a set. (ISO) + + + + + Terminal/Interupt + A terminal point in a flowchart: start, stop, halt, etc. + + + + + Punched Card + Input/output function in card medium. + + + + + Punch Tape + Punched tape. + + + + + Online Storage + Input/output using any kind of online storage. + + + + + Keying + Operation using a key-driven device, e.g. typing. (IBM) + + + + + Sort + Arrange a set of items into sequence. (ISO) + + + + + Connector + Exit to or entry from another part of chart. + + + + + Off-Page Connector + Exit to or entry from a page. (IBM) + + + + + Transmittal Tape + Adding machine tape or other batch control information. (IBM) + + + + + Communication Link + Transcommunication link. + + + + + Collate + Merge with extracting. (ISO) + + + + + Comment/Annotation + Additional descriptive clarification (connect by dotted line). + + + + + Core + Core memory. (ISO) + + + + + + + Predefined Process + A formally defined sub-process. + + + + + + Magnetic Disk (Database) + A magnetic disk. (ISO) + + + + + + + + Magnetic Drum (Direct Access) + Magnetic drum. (ISO) + + + + + + Offline Storage + Offline storage. + + + + + + Logical Or + Shows when a process diverges. + + + + + + + Logical And + Summing junction. Shows when multiple branches converge. + + + + + + + Delay + A waiting period. + + + + + Loop Limit Begin + Start of a loop. + + + + + Loop Limit End + End of a loop. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 61a6f2cc2082528d4df3147c39d3e16d41388db4 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Fri, 13 Jun 2014 09:30:53 +0200 Subject: Display symbols in document order. Fix typo in FlowSymbols.svg (bzr r13424) --- share/symbols/FlowSymbols.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'share') diff --git a/share/symbols/FlowSymbols.svg b/share/symbols/FlowSymbols.svg index c6f4af64b..a9dde4798 100644 --- a/share/symbols/FlowSymbols.svg +++ b/share/symbols/FlowSymbols.svg @@ -47,7 +47,7 @@