
    BPcdR                         d Z ddlZddlZddlmZmZmZ  G d dej                  Zedk    r e            	                                 dS dS )z\
This extension allows you to draw crop, registration and other
printing marks in Inkscape.
    N)Circle	RectangleTextElementc                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )PrintingMarksg      ?c                 `   |                     ddd           |                     dt          j        dd           |                     d	t          j        d
           |                     dt          j        ddd           |                     dt          j        d           |                     dt          j        dd           |                     dt          j        d           |                     ddd           |                     dt          dd           |                     dt          dd           |                     d t          dd!           |                     d"t          dd#           |                     d$t          dd%           |                     d&d'(           d S ))Nz--wherezApply crop marks to...canvas)helpdefaultz--crop_marksTzDraw crop Marks)typer   r
   z--bleed_markszDraw Bleed Marks)r   r
   z--registration_marks	reg_markszDraw Registration Marks?)r   destr   r
   z--star_targetzDraw Star Target?z--colour_barszDraw Colour Bars?)r   r
   r   z--page_infozDraw Page Information?z--unitpxzDraw measurement)r   r
   z--crop_offsetg      @Offsetz--bleed_topzBleed Top Sizez--bleed_bottomzBleed Bottom Sizez--bleed_leftzBleed Left Sizez--bleed_rightzBleed Right Sizez--tabz'The selected UI-tab when OK was pressed)r
   )add_argumentinkexBooleanfloat)selfparss     0/usr/share/inkscape/extensions/printing_marks.pyadd_argumentszPrintingMarks.add_arguments&   s   )*BHUUUCT 	 	
 	
 	
 	/DVWWW"+ 	 	
 	
 	
 	/DWXXX%-6ISW 	 	
 	
 	
 	4L 	 	
 	
 	
 	(D7IJJJ/sRRR-eSGWXXX5#<O 	 	
 	
 	
 	:K 	 	
 	
 	
 	%;M 	 	
 	
 	
 	'(QRRRRR    c                 Z   dt          | j                  dd}t          t          j        |                    |dt          |          z   dz   t          |          z   dz   t          |          z   dz   t          |          z   d}|                    t          j        di |           d S )	N#000000nonestrokestroke-widthfillM , L styleidd strstroke_widthr   StyleaddPathElement	r   x1y1x2y2nameparentr%   line_attribss	            r   draw_crop_linezPrintingMarks.draw_crop_lineH   s     122
 
 U++,,B#%B/%7#b''ACG#b''Q
 

 	

5$44|4455555r   c                 `   dt          | j                  ddddd}t          t          j        |                    |dt          |          z   dz   t          |          z   d	z   t          |          z   dz   t          |          z   d
}|                    t          j        di |           d S )Nr   r   4z
4, 2, 1, 20)r   r   r    zstroke-miterlimitzstroke-dasharrayzstroke-dashoffsetr!   r"   r#   r$   r(   r)   r/   s	            r   draw_bleed_linezPrintingMarks.draw_bleed_lineU   s     122!$ ,!$
 
 U++,,B#%B/%7#b''ACG#b''Q
 

 	

5$44|4455555r   c                    t          t          |                    D ]}||         t          |t          |          z            dd}t          t          j        |                    |t          |          t          |          t          |t          |          z  |dz   z            d}	|                    t          di |	           d S )Nr   r   g      ?)r%   zinkscape:labelcxcyrr(   )rangelenr*   r   r,   r-   r   )
r   r=   r>   r?   r4   coloursr5   ir%   circle_attribss
             r   draw_reg_circleszPrintingMarks.draw_reg_circlese   s    s7||$$ 	1 	1A!!* #AG$4 5 5 E U[//00"&"gg"gg!c'll*q3w788 N JJv////0000	1 	1r   c                    g d}|                     t          j        |                    }t          t	          |                    D ]}||         ddd}	| j        dz  }
|
}|
t	          |          z  }||z  }t          t          j        |	                    dt          |           z   dz   t          |
          z   d	z   t          |           z   d
z   d	z   t          |          z   dz   t          |
           z   d	z   t          |           z   dz   t          |
           z   d	z   t          |          z   d
z   d	z   t          |          z   dz   t          |
          z   d	z   t          |           z   dz   t          |
          z   dz   dt          |          z   dz   t          |          z   dz   t          |          z   dz   d}|                     t          j        di |           d S )N)r   z#00ffffz#ff00ffz#ffff00r   r&   1r   r    zfill-opacityr      zm r"    z,0z zz
translate(z	) rotate())r%   r'   	transformr(   )	r-   r   Groupr@   rA   	mark_sizer*   r,   r.   )r   r=   r>   rotater4   r5   rB   grC   r%   r?   stepr   	regoffsetregmark_attribss                  r   draw_reg_markszPrintingMarks.draw_reg_marksu   s   IIIJJu{d+++,,s7||$$ ,	8 ,	8A$QZOOE"ADW%F
IU[//00yj//"  a&&	
  vg,,   d))	 
 qb''  te**  qb''  !" f++#$ %& '( d)))* +, a&&-. /0 te**12 34 a&&56 78 *b'' b'' 	
 f++ =% %OL EE%#66o667777Y,	8 ,	8r   c                    | j         dz  }dddd}d}d}|dt          j        z  k     r|t          j        dz  z  }|d	t          t          j        |          |z            z   d
z   t          t          j        |          |z            z   dz   t          t          j        |dz             |z            z   d
z   t          t          j        |dz             |z            z   z  }|dt          j        z  k     |                    t          j                              }	||	_	        |	j
                            ||           ||	_        t          j        |          |	_        d S )NrJ   z#000 device-cmyk(1,1,1,1)rH   r   rI   z M 0,0r      z
 L 0,0  L r"   r#   g
ףp=
?)rO   mathpir*   sincosr-   r   r.   labelrM   add_translatepathr,   r%   )
r   r=   r>   r4   r5   r?   r%   r'   rC   elems
             r   draw_star_targetzPrintingMarks.draw_star_target   sk   NQ/
 

 1tw;2AdhqkkAo&&'  dhqkkAo&&	'
  dhq4x((1,--.  dhq4x((1,--.
A 1tw; zz%+--..
$$R,,,	[''


r   c           	         |                     t          j        |                    }t          j        ||f          t          j        |          z  |_        d}|r3t          | j        dz  t          |j        |j	                  dz            }ddd|d	z    d
ddddd
dd|dz  d	z   |d	z    d
dd|dz  d	z   dd
fD ]4}	d}
|
d	k    r(t          j
        d          }|	d         dk    s|	d         dk    r
d|
z  |_        |	d         dk    s|	d         dk    r
d|
z  |_        |	d         dk    s|	d         dk    r
d|
z  |_        t          |          |	d         |dz  t          ||
z  dz  |	d         z             t          |	d                   ||d}t                      }|                                D ]\  }}|                    ||           |                     |           |
dz  }
|
d	k    (6d S )NrG   )	translate)rP   r      -   *z#000   )cr   xyr?   z#0FFrQ   z#F0F   bz#FF0whiterg      r      
   rh   ri   )r    r   r   rh   ri   widthheightg?)r-   r   rN   	TransformrM   minrO   maxrp   rq   Colorredgreenbluer*   r   itemsset)r   r=   r>   rP   r4   r5   bboxgrouplocbarrC   colorr_attrectattvalues                   r   draw_coluor_barszPrintingMarks.draw_coluor_bars   s@   

5;$///00/RH===A
 A
 A
 
  	Mdnq(#dj$+*F*F*KLLCaajAAaa88sRx1nS1W:NNsRx1n1EE	
 	 	C Aq&&G,,s8s??c#h#oo #aEIs8s??c#h#oo"%'EKs8s??c#h#oo!$qEJJJ!(m$'!GcAglc#h677SX !  !{{"'++-- ) )JCHHS%((((		$S+ q&&	 	r   c           	         | j                             d          | _        | j                             d          | _        | j        j        dk    rB| j         j                                        }|!t          j	        t          d                    n| j                                         }| j                                        }| j                             t          | j        j                  | j        j        z             }| j                             t          | j        j                  | j        j        z             }| j                             t          | j        j                  | j        j        z             }| j                             t          | j        j                  | j        j        z             }| j                             t          | j        j                  | j        j        z             }||k     rd}n||z
  }||k     rd}	n||z
  }	||k     rd}
n||z
  }
||k     rd}n||z
  }|j        |z
  }|j        |z   }|j        |z
  }|j        |z   }|j        |j        dz  z   }|j        |j        dz  z   }| j                             d          }|r|                    |d                    |                    t          j                            d                    }|                     d	d
           |                     dd           | j        j!        r|                    t          j"        d                    }d|_#        | $                    |j        ||j        || j        z
  d|           | $                    ||j        || j        z
  |j        d|           | $                    |j        ||j        || j        z
  d|           | $                    ||j        || j        z   |j        d|           | $                    |j        ||j        || j        z   d|           | $                    ||j        || j        z
  |j        d|           | $                    |j        ||j        || j        z   d|           | $                    ||j        || j        z   |j        d|           | j        j%        r|                    t          j"                              }d|_#        |                     d	d           | &                    |j        |z
  ||z
  |j        |z
  ||z
  | j        z
  d|           | &                    ||
z
  |j        |z
  ||
z
  | j        z
  |j        |z
  d|           | &                    |j        |z   ||z
  |j        |z   ||z
  | j        z
  d|           | &                    ||z   |j        |z
  ||z   | j        z   |j        |z
  d|           | &                    |j        |z
  ||	z   |j        |z
  ||	z   | j        z   d|           | &                    ||
z
  |j        |z   ||
z
  | j        z
  |j        |z   d|           | &                    |j        |z   ||	z   |j        |z   ||	z   | j        z   d|           | &                    ||z   |j        |z   ||z   | j        z   |j        |z   d|           | j        j'        ri|                    t          j"                              }d |_#        |                     d	d            tQ          |
|z   | j                  }| )                    |j        |z
  | j        dz  z
  || j        d!z  z
  d"d#|           tQ          ||z   | j                  }| )                    |j        |z   | j        dz  z   || j        d!z  z
  d$d%|           tQ          ||z   | j                  }| )                    ||j        |z
  | j        dz  z
  d&d'|           tQ          |	|z   | j                  }| )                    ||j        |z   | j        dz  z   d(d)|           | j        j*        rv|                    t          j"                              }d*|_#        |                     d	d*           |j        |j        k     rtQ          |
|z   | j                  }| +                    |j        |z
  | j        dz  z
  |d+|           tQ          ||z   | j                  }| +                    |j        |z   | j        dz  z   |d,|           ntQ          ||z   | j                  }| +                    || j        d!z  z
  |j        |z
  | j        dz  z
  d-|           tQ          |	|z   | j                  }| +                    || j        d!z  z
  |j        |z   | j        dz  z   d.|           | j        j,        r|                    t          j"                              }d/|_#        |                     d	d0           |j        |j        k    rtQ          |
|z   | j                  }| -                    |j        |z
  | j        dz  z
  || j        z   d1d2||           tQ          ||z   | j                  }| -                    |j        |z   | j        dz  z   || j        z   d1d3||           ntQ          ||z   | j                  }| -                    || j        z   |j        |z
  | j        dz  z
  dd4||           tQ          |	|z   | j                  }| -                    || j        z   |j        |z   | j        dz  z   dd5||           | j        j.        rs|                    t          j"                              }d6|_#        |                     d	d6           tQ          |	|z   | j                  }| j                             d7          }d8| d9t          |          t          |j        |z   | j        z   d:z             d;}|                    t_          d?i |          }d<t          ta          | j         1                    |j        | j        j                  d                    z   d=z   t          ta          | j         1                    |j        | j        j                  d                    z   d>z   | j        j        z   |_2        d S d S )@N1cm3mm	selectionzSelection is emptyr   rJ   z9//*[@id="printing-marks" and @inkscape:groupmode="layer"]zPrinting Marksr&   zprinting-markszsodipodi:insensitivetrue	CropMarksrG   cropTL1cropTL2cropTR1cropTR2cropBL1cropBL2cropBR1cropBR2
BleedMarksbleedTL1bleedTL2bleedTR1bleedTR2bleedBL1bleedBL2bleedBR1bleedBR2RegistrationMarksg      ?r:   regMarkL180regMarkR90regMarkTz-90regMarkB
StarTargetstarTargetLstarTargetRstarTargetTstarTargetB
ColourBarsPrintingColourBarsZ   PrintingColourBarsLPrintingColourBarsRPrintingColourBarsTPrintingColourBarsBPageInformation9ptz
font-size:zpx;font-style:normal;font-weight:normal;fill:#000000;font-family:Bitstream Vera Sans,sans-serif;text-anchor:middle;text-align:center   )r%   rh   ri   zPage size: rh   rK   r(   )3svgviewport_to_unitrO   min_mark_marginoptionswherer   bounding_boxr   AbortExtension_get_page_bboxdocumentgetrootr*   crop_offsetunit	bleed_topbleed_bottom
bleed_leftbleed_rightleftrighttopbottomrq   rp   xpathremover-   Layernewrz   
crop_marksrN   r\   r7   bleed_marksr;   r   rt   rU   star_targetr`   colour_barsr   	page_infor   roundunit_to_viewporttext)r   r{   r   offsetbtbbblbrbmtbmbbmlbmroffset_leftoffset_right
offset_topoffset_bottommiddle_verticalmiddle_horizontallayerg_cropsg_bleedg_centerr=   r>   
g_pag_infoy_margin	font_sizetxt_attribstxts                                r   effectzPrintingMarks.effect   s   22599#x88??<,,8%2244D|*1-A+B+BCCC  8))++D m##%% **())DL,==
 
 X&&s4<+A'B'BT\EV'VWWX&&)**T\->>
 
 X&&s4<+B'C'CdlFW'WXXX&&())DL,==
 
 ;;CCv+C;;CCv+C;;CCv+C;;CCv+C i&(zF*X&
f, (dkAo6 Ia8 G
 
  	!JJuQx   (899::		$()))		(&111 <" K	ii{ ; ; ;<<G'GM 		T^+   dn,   

T^+   t~-   		.   dn,   

.   t~-   <# L	ii..G(GMKKl+++   	BS 	BS 4>1     c!2c!DN22     
RS 
RS 4>1     s"2s"T^32     	B#	B#dn4     c!b c!DN2b      
R#
R#dn4     s"b s"T^3b    <! +	yy//H0HNLL2333S6\4#788B	B$.1"45$.3"66   S6\4#788B
R4>A#56$.3"66   S6\4#788B!2!!34   S6\4#788B!b DNQ$67   <# '	yy//H)HNLL|,,,{TZ''vt';<<%%INdnq&89#!	   vt';<<%%JOt~'9:#!	    vt';<<%%%(<<HrMT^a%78!	   vt';<<%%%(<<K"$(:;!	   <# /	yy//H)HNLL3444{TZ''vt';<<%%INdnq&89#dn4)   vt';<<%%JOt~'9:#dn4)    vt';<<%%%6HrMT^a%78)   vt';<<%%%6K"$(:;)   <! 	5;==11J0JNN4!23333<)=>>H11%88I vi  v  v  v*++x/$.@2EFF K
 ..!;!;{!;!;<<C$(33DJ@QRRTUVV  	
 $(33DKARSSUVWW   ,#	$ HHH	 	r   N)__name__
__module____qualname__r+   r   r7   r;   rE   rU   r`   r   r   r(   r   r   r   r   "   s        L S  S  SD6 6 66 6 6 1 1 1 /8 /8 /8b( ( (8$ $ $LB B B B Br   r   __main__)
__doc__rX   r   r   r   r   EffectExtensionr   r   runr(   r   r   <module>r      s   0 
   0 0 0 0 0 0 0 0 0 0H	 H	 H	 H	 H	E) H	 H	 H	V zMOO r   