From 028820f3dd5d9b00a1b8ece509fe4b48bd83ffb5 Mon Sep 17 00:00:00 2001 From: elapouya Date: Fri, 13 Mar 2015 17:05:26 +0100 Subject: [PATCH] Add subdoc support --- .settings/org.eclipse.core.resources.prefs | 3 + CHANGES.rst | 7 ++- docxtpl/__init__.py | 62 ++++++++++++++++----- setup.py | 2 +- tests/cellbg.py | 22 ++++++++ tests/order.py | 7 +++ tests/subdoc.py | 25 +++++++++ tests/test_files/cellbg.docx | Bin 0 -> 8267 bytes tests/test_files/cellbg_tpl.docx | Bin 0 -> 11082 bytes tests/test_files/order.docx | Bin 9465 -> 9472 bytes tests/test_files/order_tpl.docx | Bin 13048 -> 13119 bytes tests/test_files/subdoc.docx | Bin 0 -> 8556 bytes tests/test_files/subdoc_tpl.docx | Bin 0 -> 11187 bytes 13 files changed, 111 insertions(+), 17 deletions(-) create mode 100644 tests/cellbg.py create mode 100644 tests/subdoc.py create mode 100644 tests/test_files/cellbg.docx create mode 100644 tests/test_files/cellbg_tpl.docx create mode 100644 tests/test_files/subdoc.docx create mode 100644 tests/test_files/subdoc_tpl.docx diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index add17fd..0e5c50a 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,2 +1,5 @@ eclipse.preferences.version=1 encoding//docxtpl/__init__.py=utf-8 +encoding//tests/cellbg.py=utf-8 +encoding//tests/order.py=utf-8 +encoding//tests/subdoc.py=utf-8 diff --git a/CHANGES.rst b/CHANGES.rst index d45a604..2a9364e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,8 @@ -0.1.2 (2015-03-13) +0.1.3 (2015-03-13) +------------------ +- add subdoc support +- add some exemples in tests/ + +0.1.2 (2015-03-12) ------------------ - First running version \ No newline at end of file diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index a315e1f..55f50f6 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -21,9 +21,17 @@ class DocxTemplate(object): def __getattr__(self, name): return getattr(self.docx, name) - def build_xml(self,context): - src_xml = etree.tostring(self.docx._element.body, pretty_print=True) - + def get_docx(self): + return self.docx + + def get_xml(self): + return etree.tostring(self.docx._element.body, pretty_print=True) + + def write_xml(self,filename): + with open(filename,'w') as fh: + fh.write(self.get_xml()) + + def patch_xml(self,src_xml): # strip all xml tags inside {% %} and {{ }} # that Microsoft word can insert into xml code for this part of the document def striptags(m): @@ -34,22 +42,28 @@ class DocxTemplate(object): def cellbg(m): cell_xml = m.group(1) + m.group(3) cell_xml = re.sub(r'](?:(?!]).)*.*?','',cell_xml,flags=re.DOTALL) - return re.sub(r'()',r'\1{{ %s}}\2' % m.group(2), cell_xml) + cell_xml = re.sub(r'','', cell_xml, count=1) + return re.sub(r'(]*>)',r'\1' % m.group(2), cell_xml) src_xml = re.sub(r'(](?:(?!]).)*){%\s*cellbg\s+([^%]*)\s*%}(.*?)',cellbg,src_xml,flags=re.DOTALL) - # replace xml code corresponding to the paragraph containing {{{ xxx }}} by {{ xxx }} - src_xml = re.sub(r'](?:(?!]).)*{{{([^}]*)}}}.*?',r'{{\1}}',src_xml,flags=re.DOTALL) - - # replace xml code corresponding to the row containing {% tr-xxx template tag by {% xxx template tag itself - src_xml = re.sub(r'](?:(?!]).)*{%\s*tr-([^%]*%}).*?',r'{% \1',src_xml,flags=re.DOTALL) - - # replace xml code corresponding to the paragraph containing {% p-xxx template tag by {% xxx template tag itself - src_xml = re.sub(r'](?:(?!]).)*{%\s*p-([^%]*%}).*?',r'{% \1',src_xml,flags=re.DOTALL) + for y in ['tr', 'p', 'r']: + # replace into xml code the row containing {%y xxx %} or {{y xxx}} template tag + # by {% xxx %} or {{ xx }} without any surronding xml tags. + pat = r'](?:(?!]).)*({%%|{{)%(y)s ([^}%%]*(?:%%}|}})).*?' % {'y':y} + src_xml = re.sub(pat, r'\1 \2',src_xml,flags=re.DOTALL) + return src_xml + + def render_xml(self,src_xml,context): template = Template(src_xml) - dst_xml = template.render(context) - + dst_xml = template.render(context) return dst_xml + + def build_xml(self,context): + xml = self.get_xml() + xml = self.patch_xml(xml) + xml = self.render_xml(xml, context) + return xml def map_xml(self,xml): root = self.docx._element @@ -59,10 +73,28 @@ class DocxTemplate(object): def render(self,context): xml = self.build_xml(context) self.map_xml(xml) + + def new_subdoc(self): + return Subdoc(self) class Subdoc(object): """ Class for subdocumentation insertion into master document """ - pass + def __init__(self, tpl): + self.tpl = tpl + self.docx = tpl.get_docx() + self.subdocx = Document() + self.subdocx._part = self.docx._part + + def __getattr__(self, name): + return getattr(self.subdocx, name) + + def __unicode__(self): + xml = '' + for p in self.paragraphs: + xml += '\n' + re.sub(r'^.*\n', '', etree.tostring(p._element,pretty_print=True)) + return xml + + class Tpldoc(object): """ class to build documenation to be passed into template variables """ diff --git a/setup.py b/setup.py index e3f6b9c..ac23556 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ News """ % read('README', 'CHANGES') setup(name='docxtpl', - version='0.1.2', + version='0.1.3', description='Python docx template engine', long_description=long_description, classifiers=[ diff --git a/tests/cellbg.py b/tests/cellbg.py new file mode 100644 index 0000000..d42ffc9 --- /dev/null +++ b/tests/cellbg.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +''' +Created : 2015-03-12 + +@author: Eric Lapouyade +''' + +from docxtpl import DocxTemplate + +tpl=DocxTemplate('test_files/cellbg_tpl.docx') + +context = { + 'alerts' : [ + {'date' : '2015-03-10', 'desc' : 'Very critical alert', 'type' : 'CRITICAL', 'bg': 'FF0000' }, + {'date' : '2015-03-11', 'desc' : 'Just a warning', 'type' : 'WARNING', 'bg': 'FFDD00' }, + {'date' : '2015-03-12', 'desc' : 'Information', 'type' : 'INFO', 'bg': '8888FF' }, + {'date' : '2015-03-13', 'desc' : 'Debug trace', 'type' : 'DEBUG', 'bg': 'FF00FF' }, + ], +} + +tpl.render(context) +tpl.save('test_files/cellbg.docx') diff --git a/tests/order.py b/tests/order.py index a7d90ee..db3077d 100644 --- a/tests/order.py +++ b/tests/order.py @@ -1,3 +1,10 @@ +# -*- coding: utf-8 -*- +''' +Created : 2015-03-12 + +@author: Eric Lapouyade +''' + from docxtpl import DocxTemplate tpl=DocxTemplate('test_files/order_tpl.docx') diff --git a/tests/subdoc.py b/tests/subdoc.py new file mode 100644 index 0000000..bb9afcf --- /dev/null +++ b/tests/subdoc.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +''' +Created : 2015-03-12 + +@author: Eric Lapouyade +''' + +from docxtpl import DocxTemplate + +tpl=DocxTemplate('test_files/subdoc_tpl.docx') + +sd = tpl.new_subdoc() +p = sd.add_paragraph('This is a sub-document inserted into a bigger one') +p = sd.add_paragraph('It has been ') +p.add_run('dynamically').style = 'dynamic' +p.add_run(' generated with python by using ') +p.add_run('python-docx').italic = True +p.add_run(' library') + +context = { + 'mysubdoc' : sd, +} + +tpl.render(context) +tpl.save('test_files/subdoc.docx') diff --git a/tests/test_files/cellbg.docx b/tests/test_files/cellbg.docx new file mode 100644 index 0000000000000000000000000000000000000000..478ab71be9d45c2a8e16db500d46427ffa5b4f58 GIT binary patch literal 8267 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

Y1uNV3MzeOJKQllH3hFSDdzU4U)&Dr zK(a1|wR}*s9n2gV4M?i98oLbh=#>!^myrc>v8?4>18C@z_Esjj9{1vzuc&+c84G7m zzxnAGAdV|Gz7s5ZNE+freb8odl*;5R=NKNT;)}4M@K)4vR>+PjyVoI59BhobXt`1P zX6=!kVv>fFH;+WfspymbII5WLv4z?=u}PHhO-#a&Ti{XLJc&6;1ICMx;7ka!)ua13 z3nT~?YruPaj1CH{E_xK~i@ka;`~Y>FeRFl#cEw2I(!LMy79CZ_RbYVIH5M)}Q$cT>N{Jv9wc!EO6mH+9d!U*z2#G$D~h&UWm0o;cy9bs5aX6ba<6|I&c4GuhEv7pCKMIJb^;(PwLmdFE#@!CpQ{VH>uDx_{@9-} z|A!Ux0M=QT_AvyX7WUUV^axM<8#3U2?w1%A7@{8CSGV2z4idKH0!xcQ00DZz;6VX5 zGM@wH2eOSAK*Q(eWmPg0oOBnO4-VX;T+81K7vtNNLKK=7953zqd{LLZzw@#rG&6&f z=Yu!->K`V~e+avL{n4_(`39vWQm4UNQi1ZCFpH`Y9>ma*`kA8C+A)QE3{8)!NxWN7b`tWpF;uAx|?R1xQ%kb z?2@6la}{|@6xJwP{QV-FA*|%q?>3-;CUz6wb6mNafeJVGg#+MR|M3! z@Q6`vJR2=wcOAE{ip1}fhR+-};V(Ce6Fkg4NQ3=f6rC6=ji8(&);alr`F{!^q>0AbNF-l;%|86)7b0( z5i_2{pU)BhhFc*0?^DI+mYz@A{dw!ck;J!xUTP5i5adyaqJ zRs4;oeA40nryk?Eh3Aa@ZwrV|nfBYlKl%G}_;UjEH~bp!PxxPSNLAs*6Ic2}oJI!x L(IvPM|8ezSzR0aU literal 0 HcmV?d00001 diff --git a/tests/test_files/cellbg_tpl.docx b/tests/test_files/cellbg_tpl.docx new file mode 100644 index 0000000000000000000000000000000000000000..1b63f8c8dcd317e8fe604ee5253c4969d80cd49f GIT binary patch literal 11082 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 delta 1878 zcmZ8ic{JN;8%^v=YKtutC8av{ny7tim?kBO8v8b=eP2>Zt4UkmP+Qf{Qi?_~q9hng zb;eT0uBB)#rHZk~*0I()V$OW0-}nCWoO|AL?|IL2?!7M=_4OJr7R|~A1%W_Zpj$4L zyfI*wTP{_pV16+7Etf#EFk{|{F`$%1ngmnlZ?Ih=*?pDbO?xgPZZ7PbZYq>A0{8CF z<*{j~y@|2OZ))@qsYMUo*xsBY930Gfv~Br&B#5|cOel|fYI?C>S^4fyJbD{@RJYd> zAJhF~H<1&KC%4jPJNVp%qRDX_R>p!V%A->1N>?yMz9f{K4nD$af8=7J+G<@n$-iK# zosr2Q`PX8U-u!y}sn1nr+R<148o7|nkCyBIqI)URG5KKy{UVREzY-)qZ{*V{yv}k7iBj8Y7;+N{bilK z8GofA^Co1Y>aH3R3vqm>+CND;KPL9`baCkBk@fo7lu9Zd_n*TqXX%GD8xb4phO%@E znO#?t@%!Dtr;EU0O`VT%!6T$blW*+}8@*DtSKjEM7d~mGLq(Cz0%Iv^-2-m$6$68o zpFZ+GwMUHJ>$y5{TjtJUvP(tE(DxsHK33Ni&(q=W2 zF5Nl@S#O<5K1T87Z)y=tEgS0LoP#8dy3ZU%zKE)>;VCIz%hn7#s!zpX0MTUJ>O#L) z^luD2HaC1iYUV9*`N&>7E4h91obBS9ev?f@;DGg80|c7=M%>^s27^FxEFh4;i7h;X zJ+NWHAwU}&jO3XhhXtaein>x?)h*L~AAL-`TS${VzDtgWHH_TcFqofOQEc;6Ep_7@ z;-+<9vQ}1>0 zpn5HBljJ}ntIX;czdzDzQ}?!ghC8v_=wY&%nBjTuJW|+_;!;edc;XbUYm}nt=(xqw z%Wo}XOo$zTBfW6YFFCnv7N&?l<1DX5mC66ojr0QEpG&;gm1poZDhQ`vvDLYBg zkX@E_ilK6zG@XFT7-fvP!%_t-r9E=md~09#X-mzE9Y@U4=lVhFm(s>1CadsG;}U&Gw82L~z8#q*NObfkvYN{CN4Am7sEQWCBG2xLn1UT`h|a z-DxPKE=_evE`uB*-(eGv1M6qGMcQl4>p`JU3XNS<9r97R|Lz|5#q2 z;(4J5!ueAHJh}KWhnbQ{0PIC#U;D9^L~0V|*TZ4C+8n~CAjzi5SGpyormg7ia4@Pz zFtNEeY>ua}rC5FW0zqdfLnM3Q5SNOU9K$FQDte#`f{x_Nm}#{zHqzb7vT(GLOdwQk zD4XJGbhVgDk(cn2{^7A>3AW~fU9VE!t%xdHNE}|n@SRc~2DsLd3F$Aari3F=ZyM5C z{JQGtsjh|2D7vOW)1%iCl`8`09K=a=nFD(jSMo5^UHgo68Hp#mdX|G<6y@!6-zqFB zdLeR?`Z9~3G?DuJNZR&ompiV;q6l+|TNe9+kVeF$b8G6l$qm7AZ3fa3x6t8#NzWBz zDU_Ub=SEbR<`UN*+#XsZI1GiM^UHHH8YQT2IeB3#MSB&x2an%4ywf>14&Hl^A@QM7 z*W$ebu6aE%G<*B8^@wA)eh>n=TEM2W9``YBiDC0H7Y3^)^(gHLJH-Y)wA*hSB1VLN zmbkY#PJpe(SyiV)8DC^QBR-9U#@Qykj9=*3wkiYi&<-k#b=xMW9S!T9STI@-U#Pn= zGDt2y& zGva~5xVH_J+V(jB`JH86h*_vcSVu{ zW+vhP+vuc_P7fKJ5Ae##Fo`O1l3)P<{SOF~lVnll0W5f=fD$?0Qwe%-DoZ;%2!xXW zfrS6%pG-2?7I-fQXG-jyNMHd`_<1JKflGo{0b97-Df_=s1IsnQA4_P0@5iXbTYcT2Z&PAjndLeHxj-g zeDC}H_~QP&=icYsbMASb=RB7V?T$4x6tr`{*U@tly{q z#I^+|C-TyEn{(ali*D@iT{y^%^1-T275>+Lvg2- zYIrf}dQ1^NM#fE3L?O_H0W!U&b3F3lQI&Nj1d4Z3tlh)e64CXg@@sTt?|s5^or~)x z5#b6nRQ(MgF=`)n1N*9ADp3ciZ$e?uQ&oZanTZh)iJbN4%ul@s)WzQip7p=6sKeEc zcv8FOyw=N0b(&5=REEZ3hx^^IO!a)DOYe*C*GEu~aNp6a$dE6_i0a&?5#RLmFW{^a z^=s4hW(O3;Op(9mXWkq(P05L_7}oGhU2CVbp$eOs_9hgTHuAoTptEkxUwvd_bpHb-I-ZXjAgcR$^0BU&`8Dhu_q>#NHzSYLhdbc99_+er-sco0LHdg1F z@tU01Zz(QOS@XroL zF2<%0b%#kGNxT4+0;}#Al3H+67IK?$5ljF(`z7zHnTK_dwyFoKe{RP{K?NQ!SMd)@ zFrU;~R|LZAE#7L7PIe{6AF>VCFg+)edHy*4**~P9$O);nV;wr z6<>p{u5}^-4)h;vi@gm?DEOAM_zG@#z;(&BQ*zIEQL#%b}%43DL7(v({H*62)T;zt|8&8oRfT3W$|&y|lp zIf=1yxnJ*n-Drg69qo1L1cQO>N0VdxmmdW}X?o5VGoDrLh!T*|oN179+OMr93+Ps` zCx+KH=v}zOGZ_iHG6AikKVYDliM2P{s7LzD^zLOL$<-s42W&mPX_g$x2!CMu-bKDC zdBi9BomS>r$0gPms*Pr&Uc?`!D3t73=#4;nU-rwa}Sy2?O?hX|5xKU9s9( zhBBK&8DrnHvXX^Ig_ajXkvG*bn$j6KGmOSx75G5+n6G?KRaP&il{GsthQA%5l0zIU zo*}>|C5h%)N#Q}`fd-SC6-GAv@^?@nfF(U z+-RgSxuWI$samw0ZRkT&?VleAhHqbwce-0lfwzloN)qap$hK9Y)fY-qtVz?}f5jYD zO}WRW>q?TyaJwEiIis)Gh4rnua8eCBsmOwiz};7yL09UnB-*OwmRST^MD3dOK=|Q< znJCs-#LTbM_K2D{5RyJNLq!6Ozxj31exw^Hr)eNg0lNHac%;{9z@epbA~RC)#H7#u z*WR=U$8D3DqvG%e>t2f{ea!{y2uxikaJ(u@5S&q5sz5ft(qu?@?SGs-nO>BkQ5g_gvMW=75DB_85yH!|IjN54O5d?Zr=& z?hUMQhM`pNeD`;&4BO_^VpK?!d8zlUB^I`JNiS5N40OQ3MggCGLO-7)FsAQaP+}QB z+M0@a%8CPJJ(Afvesj}iyzCk-PJeC2S3^kHvBWeCcUcZ)fh6Wm zHKZ-MamfYyt&=w|GMq~>91_Cu@+B?bUi^YCFScZt5({#tWa_t;NlM`q_no@J9;eS) zMZ3W*Ti@*S)^k$*$!&&m*+!wFHU1oBIe#VRO0crXX2EMF8a;eV#S=5jAVoNMBC8>t zyD@TxYSTWyl|bwtHfqH%aGWlTSKoz2M-~_UmS*SrE^CRoNuW-}j9U}F7oVBamx?M= zib@13n&+82`x4FgWwT+b7i!9XvRwx>RC$mV(#QW0$z7=U@-n9DQ6tSm)%H{q$V^lc z*zCJNo_01}&UX8I-yO7zrXdS5VIpbtK*WlO3!$@oir=2pfrzDu>7zJ#`rgfFL61Pw zHsZA4!hqx0gv5BW?(5ITzR^N)G?_m4XLRnGBHXl268%*?)pKG(;N!EIuqjwvr9{!< zcwxL2xl5Fl$}kshiDyv$?j?{(l;P%2ZXs^ zmwpsP;R&iY+#>=2im-faf-G%tm&}~nH&Bgv9xbtt28<32+%hECr)X#r2p=Mf%%v;tlz<+^eb#rK7$yjgVWB0x{=1i(% zAKIwmyli1ljbILKxJwLD`pWo++PN5iE!(#R>GezgA%#Vd&+*nV?kF>SGTF$krY_8X zo3g7Q19l}Xi;%CjD2h>#W02`<`a?voj1?;L78N@G`|>xuN8S2G>E^Kw2C1ih+mt{n*dPwo@oy%rS-O{Kb{cTKT6gNX*YWvse|t^H8$9N?ZZ~WX zM~pc2z5QV;qp%3EyXNThlU(lA-emI4wWH;E&U=CQ{e@+kn;rpsplXkMv(ih$9~8s) z7nmYti<=1P%QrD zq-0|wawiGwGF5sXS29+oG>h?+dw&+BGw&)O=dmMtX2a-oN?|gzwqOJAbQaRbnuk0o zDIb@917DsqOsew0qp;ttiw_2JAE@4i2ult4t^4-RRblGZ>8n}Mq!SnW{0q849+O@H z-qyj~Eko3mzr!WB5}l_wL2f&>+pk9C?z7jl^lcC~9nE$W1w!Wtu^P=6`H)s z{K20YKNl861E$kdzjJappF%H-c?#eY?MEbkf|s)MelnR^$iS8Q>w7Pikk^40iDx_( z8jU1SDkd4{oX>@_vYkrS1RtZTs96i>dC9Y6+`zy}KrbgkWF{Czx8~Yt{LM`GtfBnl6kwVV>CeM5BCuoLX8q~4257^C_NP5~eWsn^ZL+_S8EMN4yd z&&MRcV4v}352dY>IdQ4J;=$Xb^r~`!kkMqdFToj7u=$O1(;BCD;mfk$AzNw^I{7+> zoO$L^nQ!P)M*Za-wNXia^FkKpEdZ_V&~AAq`(R^)SviflSf^TO0pv%K68j-d&+IYH z*J1w7+_2`!CPxJfWFO4l+dc~YVbS;z1ahy#LUln{XYL&+^50I*IB0MP&MB7l+uYb?Pd{O^bUJrMJ^H~l}f5ElSo lkG9kILVJ3P*`d9#t1uR9AP+s&e_`sd;}Sd|XYqeJ{{p_8%5eYy delta 3596 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 E0|*9l00000 literal 0 HcmV?d00001