[reportlab-users] Barcode flowable horizontal offset, why?
   
    Jeff Kowalczyk
     
    reportlab-users@reportlab.com
       
    Wed, 14 Aug 2002 19:43:32 -0400
    
    
  
Can anyone tell me why this barcode (a flowable) is offset to the right of
its start coordinate? The grid is just for reference. Thanks.
from reportlab.pdfgen import canvas
from reportlab.extensions.barcode.common import *
from reportlab.extensions.barcode.code128 import *
def demo(canvas, x, y, text):
    c = canvas
    bc = Code128(text)
    bc.drawOn(c, x, y)
    t = c.beginText(x,y-10)
    t.setFont('Helvetica',6)
    t.textOut(text)
    c.drawText(t)
    draw_grid(c, x, y)
def draw_grid(canvas, x, y):
    c = canvas
    xlist = range(x-60, x+120, 20)
    ylist = range(y-60, y+120, 20)
    c.setLineWidth(0.05)
    c.setStrokeGray(0.25)
    c.grid(xlist,ylist)
    for x in xlist:
        t = c.beginText(x,ylist[8])
        t.setFont('Helvetica',6)
        t.textOut(str(x))
        c.drawText(t)
    for y in ylist:
        t = c.beginText(xlist[8],y)
        t.setFont('Helvetica',6)
        t.textOut(str(y))
        c.drawText(t)
    c.setStrokeGray(1.0)
if __name__=='__main__':
    c = canvas.Canvas('Barcoding.pdf')
    x, y = 120, 500
    c.circle(x, y, 1)
    demo(c, x, y,'Barcoding')
    c.save()
begin 666 Barcoding.pdf
M)5!$1BTQ+C,-"B63C(N>(%)E<&]R=$QA8B!'96YE<F%T960@4$1&(&1O8W5M
M96YT(&AT=' Z+R]W=W<N<F5P;W)T;&%B+F-O;0T*)2 G0F%S:6-&;VYT<R<@
M)SQR97!O<G1L86(N<&1F8F%S92YP9&9D;V,N4$1&1&EC=&EO;F%R>2!I;G-T
M86YC92!A)R -"C$@,"!O8FH-"B4@5&AE('-T86YD87)D(&9O;G1S(&1I8W1I
M;VYA<GD-"CP\("]&,2 R(# @4B ^/@T*96YD;V)J#0HE("=&,2<@)SQR97!O
M<G1L86(N<&1F8F%S92YP9&9D;V,N4$1&5'EP93%&;VYT(&EN<W1A;F-E(&%T
M)R -"C(@,"!O8FH-"B4@1F]N="!(96QV971I8V$-"CP\("]"87-E1F]N=" O
M2&5L=F5T:6-A#0H@+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<-"B O3F%M
M92 O1C$-"B O4W5B='EP92 O5'EP93$-"B O5'EP92 O1F]N=" ^/@T*96YD
M;V)J#0HE("=086=E,2<@)SQR97!O<G1L86(N<&1F8F%S92YP9&9D;V,N4$1&
M4&%G92!I;G-T86YC92!A=" P># P)R -"C,@,"!O8FH-"B4@4&%G92!D:6-T
M:6]N87)Y#0H\/" O0V]N=&5N=',@-R P(%(-"B O365D:6%";W@@6R P#0H@
M(# -"B @-3DU+C(W#0H@(#@T,2XX.2!=#0H@+U!A<F5N=" V(# @4@T*("]2
M97-O=7)C97,@/#P@+T9O;G0@,2 P(%(-"B @+U!R;V-3970@6R O4$1�H@
M(" O5&5X= T*(" @+TEM86=E0@T*(" @+TEM86=E0PT*(" @+TEM86=E22!=
M(#X^#0H@+U1R86YS(#P\(" ^/@T*("]4>7!E("]086=E(#X^#0IE;F1O8FH-
M"B4@)U(T)R G/')E<&]R=&QA8BYP9&9B87-E+G!D9F1O8RY01$9#871A;&]G
M(&EN<W1A;F-E(&%T(# G( T*-" P(&]B:@T*)2!$;V-U;65N="!2;V]T#0H\
M/" O3W5T;&EN97,@." P(%(-"B O4&%G94UO9&4@+U5S94YO;F4-"B O4&%G
M97,@-B P(%(-"B O5'EP92 O0V%T86QO9R ^/@T*96YD;V)J#0HE("=2-2<@
M)SQR97!O<G1L86(N<&1F8F%S92YP9&9D;V,N4$1&26YF;R!I;G-T86YC92!A
M=" P># P)R -"C4@,"!O8FH-"CP\("]!=71H;W(@*&%N;VYY;6]U<RD-"B O
M0W)E871I;VY$871E("@R,# R,#@Q-#$Y,S<S,2D-"B O4')O9'5C97(@*%)E
M<&]R=$QA8B!H='1P.B\O=W=W+G)E<&]R=&QA8BYC;VTI#0H@+U-U8FIE8W0@
M*'5N<W!E8VEF:65D*0T*("]4:71L92 H=6YT:71L960I(#X^#0IE;F1O8FH-
M"B4@)U(V)R G/')E<&]R=&QA8BYP9&9B87-E+G!D9F1O8RY01$9086=E<R!I
M;G-T86YC92!A=" P># G( T*-B P(&]B:@T*)2!P86=E('1R964-"CP\("]#
M;W5N=" Q#0H@+TMI9',@6R S(# @4B!=#0H@+U1Y<&4@+U!A9V5S(#X^#0IE
M;F1O8FH-"B4@)U(W)R G/')E<&]R=&QA8BYP9&9B87-E+G!D9F1O8RY01$93
M=')E86T@:6YS=&%N8V4@870@,'@G( T*-R P(&]B:@T*)2!P86=E('-T<F5A
M;0T*/#P@+T9I;'1E<B!;("]!4T-)23@U1&5C;V1E#0H@("]&;&%T941E8V]D
M92!=#0H@+TQE;F=T:" W,C$@/CX-"G-T<F5A;0T*1V%S,DAB04HE3"8T2#<[
M8G,M1EHO+VE?;F=1+3%S0"E%,5M)2S!0)S5H;4MF:58N)S1?9DM@;RI?(C9(
M#0HJ9#XO(DE>+TT\83,T3#Q-;CY*-W%I0RE':",M0'$Z:5$C/7!,+"MU+5DI
M36U(6G _7UA<(TY**3MC0'0-"E@S8$Y7(SIN92,K9BE*8R]M(7(G829?-V9F
M83TT8V$^+5IL9715=2]J83QO5VLE)'!4:C<H66U;;$5<.0T*0S@^1RM<3RQK
M=%M;=#='82HN;D,G6D4K*%];4D0O)"9$058K2$]'2"UC,U-Q+71A6FE1:U=S
M4$PC66HA#0HI.6U9)UM1)R=:;R1/<EEA+B8K*5!49UE!9T]).U F:' I0BXE
M='%P)2-R9C,K5&XX8%4G*4)+2FEL;F4-"D),-6Y26SQJ/UDV,SYA<6<I9",X
M.2Y;.S)J+R593"DY:G5M/TE#6UQ/8B-E*D4H43A<,'5"/5MB*R8_30T*-G-K
M<4969F(Z-$<].R([3$PD)3-.7TI:7&I4-C=J8CME+C1%9%U"*&Y36B9L3R5C
M5VXY6#Q81$TP6#$Z#0IP)612;5PB/T=<:%)@3S=O)CYA-'!7;"1T;5I5930V
M4W)Q:7!7)$1=9SXR8&LE6$-25"MN92%U6%<Z(V0-"D5K<"4P,RLM9V1?:$]7
M:RLE1EP[:CUL82\L7V\W,$(A;R5/9DX[<D R:E-:<C1,='!,,E J3DYD5$@K
M9@T*:RM5)&52=&EM-$0G)2H^4BY,.B1C/CT[,&HN7DA21G-9-%@V)B=U/EI=
M3B<C5$P[3R-*9TM!1"<A549"#0HT-BQG6% K2%I ,TIF0TM>-SPK6"HN3#(F
M."YO;CYR2$Q8.$YK7S)M+BU<7"TE44)0835#4&-M.G-T12X-"E-B57 B6499
M24)/,#XL3&<U:RXK/UQA/2,Y0F%#4S5";&)D<5I^/F5N9'-T<F5A;0T*#0IE
M;F1O8FH-"B4@)U(X)R G/')E<&]R=&QA8BYP9&9B87-E+G!D9F1O8RY01$9/
M=71L:6YE<R!I;G-T86YC92!A=" G( T*." P(&]B:@T*/#P@+T-O=6YT(# -
M"B O5'EP92 O3W5T;&EN97,@/CX-"F5N9&]B:@T*>')E9@T*," Y#0HP,# P
M,# P,# P(#8U-3,U(&8-"C P,# P,# Q-#4@,# P,# @;@T*,# P,# P,#(W
M-" P,# P,"!N#0HP,# P,# P-#<U(# P,# P(&X-"C P,# P,# W.#,@,# P
M,# @;@T*,# P,# P,#DU-2 P,# P,"!N#0HP,# P,# Q,3@X(# P,# P(&X-
M"C P,# P,#$S,CD@,# P,# @;@T*,# P,# P,C(R.2 P,# P,"!N#0IT<F%I
M;&5R#0H\/" O240@#0H@("4@4F5P;W)T3&%B(&=E;F5R871E9"!01$8@9&]C
M=6UE;G0@+2T@9&EG97-T("AH='1P.B\O=W=W+G)E<&]R=&QA8BYC;VTI( T*
M("!;*%PS-34L7#,U,EPS-#$A7#(Q-EPS,S%<,#(P1UPS-S5*7#(T,EQ<7"E<
M,C<W7#,R,RD@*%PS-34L7#,U,EPS-#$A7#(Q-EPS,S%<,#(P1UPS-S5*7#(T
M,EQ<7"E<,C<W7#,R,RE=( T*( T*("]);F9O(#4@,"!2#0H@+U)O;W0@-" P
I(%(-"B O4VEZ92 Y(#X^#0IS=&%R='AR968-"C(R.# -"B4E14]�H`
`
end