+
    ̧6j                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHt	  ! R R]4      t
 ! R R]
4      tR	 t]R
8X  d
   ]! 4        R# R# )    )
Standard39)colors)cm)ascii_uppercasedigitsc                      a  ] tR t^	t o RtR],          tR],          tR],          tRt	R],          t
R],          tR],          t]t^
],          t^
],          tRR
 ltR tRtV tR	# )BaseLTOLabela  
Base class for LTO labels.

Specification taken from "IBM LTO Ultrium Cartridge Label Specification, Revision 3"
available on  May 14th 2008 from :
http://www-1.ibm.com/support/docview.wss?rs=543&context=STCVQ6R&q1=ssg1*&uid=ssg1S7000429&loc=en_US&cs=utf-8&lang=en+en
g@g333333?g333333?g      @gQkw@g(\?g_vO?Nc                   \        W`P                  4      V n        W@n        \	        V4      ^8w  g   V\
        \        ,           9  d   \        RV,          4      hV'       g   \	        V4      ^8  g   VP                  4       '       g   \        RV,          4      hT\        T;'       g    ^ 4      P                  ^\	        V4      ,
          4      ,           R,          : RV: 2p\	        V4      ^8w  d   \        RV: RV: RV: R24      hWpn        \        P                  ! V VV P                  V P                  V P                  V P                   V P"                  V P$                  RVR	7
       R
# )a  
Initializes an LTO label.

prefix : Up to six characters from [A-Z][0-9]. Defaults to "".
number : Label's number or None. Defaults to None.
subtype : LTO subtype string , e.g. "1" for LTO1. Defaults to "1".
border : None, or the width of the label's border. Defaults to None.
checksum : Boolean indicates if checksum char has to be printed. Defaults to False.
availheight : Available height on the label, or None for automatic. Defaults to None.
zInvalid subtype '%s'zInvalid prefix '%s':N   NLzInvalid set of parameters (z, )T)ratio	barHeightbarWidthgaplquietrquietquietchecksumN)maxCODEBARHEIGHTheightborderlenr   string_digits
ValueErrorisalnumstrzfilllabelr   __init__	CODERATIOCODEBARWIDTHCODEGAP
CODELQUIET
CODERQUIET)selfprefixnumbersubtyper   r   availheightr    s   &&&&&&& V/opt/hart-platform/venv/lib/python3.14/site-packages/reportlab/graphics/barcode/lto.pyr!   BaseLTOLabel.__init__   s     +'9'9:LA>>3g=>>c&kAo..""2V;<<"S1%5%;%;AFO%LLbQQ"$u:?#)67< = =
D!"&..&*kk%)%6%6 $#'??#'??"&%-		/    c                   VP                  4        VP                  W#4       V P                  '       dO   VP                  V P                  4       VP	                  ^ ^ V P
                  V P                  V P                  4       \        P                  ! V VV P
                  V P                  ,
          R,          V P                  V P                  ,
          4       VP                  4        R# )z$Draws the LTO label onto the canvas.       @N)	saveState	translater   setLineWidth	roundRect
LABELWIDTHLABELHEIGHT
LABELROUNDr   drawOnCODENOMINALWIDTHr   restoreState)r'   canvasxys   &&&&r,   r8   BaseLTOLabel.drawOnD   s    ;;;,Q(() 	$ ??4+@+@@#E**4;;6	8 	r.   )r   r   r    ) N1NFN)__name__
__module____qualname____firstlineno____doc__r   r5   r6   r7   r"   r9   r   r#   r$   r%   r&   r!   r8   __static_attributes____classdictcell____classdict__s   @r,   r	   r	   	   sq      rJ(KJI{2IMB;LGl"Jl"J'/R r.   r	   c                   d   a  ] tR t^Tt o RtRt^],          tR],          tRt	^t
R	tR tR tRtV tR# )
VerticalLTOLabelzL
A class for LTO labels with rectangular blocks around the tape identifier.
g?皙?c                    RV9   d   VR,          V n         VR MRV n         V P                  V P                  ,
          VR&   \        P                  ! V .VO5/ VB  R# )zX
Initializes the label.

colored : boolean to determine if blocks have to be colorized.
coloredFr+   N)rN   r6   BLOCKHEIGHTr	   r!   )r'   argskwargss   &*,r,   r!   VerticalLTOLabel.__init__h   sZ     !),DLy! DL $ 0 01A1A A}d4T4V4r.   c                   \         P                  V VVV4       VP                  4        VP                  V P                  4       VP                  ^ ^ ^ 4       VP                  W#4       V P                  V P                  V P                  ,          ,
          R,          p\        V P                  4       EF  pV P                  w  rgV P                  pWPP                  ^,
          8X  d!   V P                  VR p	Vw  rgVR,          pWg3pMV P                  V,          p	VP                  4        VP                  WEV P                  ,          ,           ^ 4       V P                  '       du   V	P                  4       '       d_   VP                  ! \!        \"        V P$                  \'        V	4      ,          \"        P(                  ! ^^^4      4      P+                  4       !   MVP                  ^^^4       VP-                  ^ ^ V P                  V P.                  RR7       VP                  V P                  VP0                  ! V	.VO5!  ,           R,          V P.                  R,          4       VP3                  R4       VP4                  ! V!   VP                  ^ ^ ^ 4       VP7                  ^ ^ V	4       VP9                  4        EK  	  VP9                  4        R# )z5Draws some blocks around the identifier's characters.r0   NT)fillg     V@)r	   r8   r1   r3   	LINEWIDTHsetStrokeColorRGBr2   r5   NBBLOCKS
BLOCKWIDTHrange	LABELFONTr    rN   isdigitsetFillColorRGBgetattrr   COLORSCHEMEintColorrgbrectrO   stringWidthrotatesetFontdrawCentredStringr:   )
r'   r;   r<   r=   xblocksifontsizenewfontparts
   &&&&      r,   r8   VerticalLTOLabel.drawOnv   s(   D"	 	DNN+  Aq)??DMM$//$ABCGt}}%A>>LTnnG]]Q&'zz!"~&,zz!}W&78!<|||&&040@0@T0K06Q10E)GGJsuN &&q!Q/KK1doot/?/?dKKdoof.@.@.P.PPRUU"..s25MM$NNG$""1a+$$Q40!3 &4 	r.   rN   N)zHelvetica-Bold   )
redyellow
lightgreen	lightbluegrey	orangeredpink	darkgreenorangepurple)rA   rB   rC   rD   rE   rZ   r   rX   rO   rU   rW   r^   r!   r8   rF   rG   rH   s   @r,   rK   rK   T   sC      'I2Jr'KIH	K5% %r.   rK   c                    ^ RI Hp  ^ RIHp V ! RVP                  R7      pVP                  R^4       VP                  w  r4VP                  VR,          V^\        ,          ,
          R4       ^\        ,          ;rV^\        ,          ;rx^
\        ,          p	R\        ,          p
R	p\        R
VR4      P                  W%V4       Wz,          pV^,          p\        R
VRRR7      P                  W%V4       Wz,          pV^,          p\        R
VR4      P                  W%V4       Wz,          pV^,          p\        R
VRRR7      P                  W%V4       Wz,          pV^,          p\        R
VRRR7      P                  W%V4       Wz,          pV^,          p\        R
VRRRR7      P                  W%V4       VP                  4        VP                  4        R# )z
Test this.)Canvas)	pagesizesz
labels.pdf)pagesize	Helveticar0   zSample LTO labelsg333333@i  RL3rL   )r   Trn   )r   rN   N)reportlab.pdfgen.canvasr{   reportlab.libr|   A4re   rf   r   r	   r8   rK   showPagesave)r{   r|   r;   widthr   xposxorigyposyorigcolwidth
lineheightcounts               r,   testr      s   .'L9<<8F
NN;#llOU
U3Yqt5HIr6Dr6DBwHrJEuc"))&=D	QJEuc  &vT :D	QJET5#&--fDAD	QJET5#!##)6&#=D	QJET5# ""(&t"<D	QJET5#!4117d1K
OO
KKMr.   __main__N)!reportlab.graphics.barcode.code39r   r   r   reportlab.lib.unitsr   stringr   r   r   r	   rK   r   rA    r.   r,   <module>r      sK    9   " ;I: IVG| GR#J zF r.   