From 2038c92784d9ee97d31b917bbd6b454262f9837e Mon Sep 17 00:00:00 2001 From: Georgy Litvinov Date: Thu, 17 Oct 2019 18:48:22 +0300 Subject: [PATCH] Improvements for validation button --- IPHRedaction/Validation.xba | 109 ++++++++++++++++++++++++++++++++---- redaction.oxt | Bin 54546 -> 55366 bytes 2 files changed, 98 insertions(+), 11 deletions(-) diff --git a/IPHRedaction/Validation.xba b/IPHRedaction/Validation.xba index 18fa2ae..013a180 100644 --- a/IPHRedaction/Validation.xba +++ b/IPHRedaction/Validation.xba @@ -1,22 +1,113 @@ -Sub markYX +Sub markZ End Sub +Private Function isInDoc(searchString As String) + Dim founds As Object + Dim sDesc As Object + Dim srch(0) as new com.sun.star.beans.PropertyValue + sDesc = Thiscomponent.createSearchDescriptor() + sDesc.SearchAll = true + sDesc.ValueSearch = false + sDesc.SearchStyles = false + sDesc.SearchRegularExpression = true + sDesc.SearchString = searchString + founds = Thiscomponent.findAll(sDesc) + If founds.count <> 0 Then + isInDoc = true + Else + isInDoc = false + EndIf +End Function + Sub validateButton - removeBadCharacters + Dim footnotesReport As String + Dim graphicsReport As String + Dim badText As Boolean + Dim badNumberings As Boolean + Dim badFootnoteSigns As Boolean + Dim badGraphics As Boolean + badGraphics = false + badText = false + badFootnoteSigns = false + badNumberings = false + footnotesReport = checkAllFootnotes + graphicsReport = checkGraphics + If footnotesReport <> "" Then + badFootnoteSigns = true + EndIf + If graphicsReport <> "" Then + badGraphics = true + EndIf + If isInDoc("[\uE000-\uF8FF]") Then + badText = true + EndIf + If badFootnoteSigns Then + MsgBox footnotesReport + EndIf + If badGraphics Then + MsgBox graphicsReport + EndIf + If badText OR badNumberings OR badFootnoteSigns OR badGraphics Then + MsgBox "Отошлите данную статью в отдел подготовки рукописей к изданию для получения дополнительной информации." + If badText Then + MsgBox "В тексте обнаружены неподходящие для публикции символы." & chr(10) & " Далее будет представлен список отрывков текста с подобными символами." + removeBadCharacters + EndIf + Else + MsgBox "Документ успешно прошел проверку. " & chr(10) & "Неподходящих для публикации символов найдено не было." + EndIf End Sub + +Sub testcheckGraphics + checkGraphics +End Sub + +Private Function checkGraphics + Dim drawPages As Object + Dim count as Integer + Dim draw As Object + Dim result As String + Dim shapeType As String + Dim oleN As Long + oleN = 0 + Dim graphicN As Long + graphicN = 0 + Dim formulaN As Long + formulaN = 0 + Dim frameShapeN As Long + frameShapeN = 0 + Dim drawingN As Long + drawingN = 0 + drawPages = ThisComponent.DrawPage +' Globalscope.BasicLibraries.LoadLibrary( "MRILib" ) +' MRI ThisComponent + count = drawPages.getCount() + For i = 0 to count-1 + draw = drawPages.getByIndex(i) + shapeType = draw.ShapeType + If InStr(shapeType,"com.sun.star.drawing") = 1 Then + drawingN = drawingN + 1 + EndIf + Next i + If drawingN <> 0 Then + result = "В документе найдены рисунки (" & drawingN & "), неподходящие для публикации." + EndIf + checkGraphics = result +End Function + Private Sub removeBadCharacters StartTracking AskAndReplace("[\uE000-\uF8FF]+","") - checkAllFootnotes + StopTracking showTrackedChanges End Sub -Private Sub checkAllFootnotes() +Private Function checkAllFootnotes() Dim footnotes As Object Dim count as Integer Dim charNum as Long @@ -34,16 +125,12 @@ Private Sub checkAllFootnotes() For j = 1 to charNum char = Asc(Right(Left(label,j),1)) If char >= 57344 AND char <= 63743 then - result = result & "Символ "& Chr(char) &" сноски "& i &" находится в диапазоне для частного использования"& chr(10) - 'Mri footnote - 'footNote.setLabel(Left(label,j-1) & "*" & Right(label,charNum-j)) + result = result & "Символ "& Chr(char) &" сноски "& i &" не подходит для публикации"& chr(10) End If Next j Next i - If result <> "" then - MsgBox result - EndIf -End Sub + checkAllFootnotes = result +End Function Private Sub showTrackedChanges dim document as object diff --git a/redaction.oxt b/redaction.oxt index f300c4024aceb245c3fd0e8d77ae2f43bf328632..770bd36822b2a5282f5688743fa07da983944d72 100644 GIT binary patch delta 2121 zcmV-P2)6f3xohcg*(34S5!y?p*RtEq8j2DxE zxF&xWiKty)h^Sq4cnbgl1n2_*00ig*008Y+TTdHD6n?gU#ncaIt(di)q)h~IDzI^C zi2%Z+Qrq-ly*suS);sR(EP=O#G`)zZk*d75QvU%-LrVgjh@AqvJ>x2%f)z(%E$@dm9{SkH<0_)Z4%32AP zq`Gb~s|3cgHo+m+TadIyX~@`kp;{$iog~(;)@rq?6e&e6xyA@LN}n5!Z5a%ri5Y*6 z;SPLb0L(5k=(6G2X6bg<@1c=FcfKqZS6mChYq7XN?OlUm)b?GITR^tgalw1d!v-~n zT}A;FwB#ZAR4x`;_6YTf?^+%wulKgG$t2ZlVb7c*f)%Y+Muvx6`~aC`q}1vtmJ^lna8NN4|f}Tnd`JrKp*u&R6&S6&ND(_x<+GcKd5dET=3fJh_!Z z+RT*CO69IMSSEY<_;Z@Eds(GykU1UU$ogiko+KgbiKJa{hKw-yH9QC=;Sa%SZ~{-q zD0med1?Rze_&EFtg^z%C6dr_6;U##9K=J?tj)PMa{1r^#@pnO*1TTMsH^B)CABKk`We2NJLbcMk>HfO$HgBM^;}A|eB^vz&Wi_bdjD14QwN z?BZp^Y7Px*m<-lFkX5y*L7D~eId=q{J`;c)Ajlv0@E9rx(jJsgulSi$M6YC zI(jQO!7sD$51-7!KPrN3h#VH4*5I`$RN>UQg!+)P77her> zYJ6f_)OfG~_l&8#fLvv;^gAxY156X~yd-Q^-oJ660l zP%X2yVu5&kr(}QngpOdTr(|MEB17R~)#Wav#Ztsrl1Bu-rNm;2kVycN*MMex4QMG& zan2YMZ?SO4AwAejCR~Peaba7vd(@yd_ViU^Sn_ROQ&n_#vjY@WY~{!XP_w5%az!E< zNv8AxW=&4ym!~$N$mX6RMr6+B>(CG)PdT0C{f=wlJ zQWfcF=JKa-indS#)#IU-f-ru(0{p0PVHU3OA!v(z5sOS;oK$T!lKCh`N23r@w7d0hs<(Z?6-}l)TyzYpW zLGZWa?JR$}7A#uFF!AiWz!gcYq^}rdsm)E2abnRMk_X}q^K)IOj<=1B^o2?*=dPdc zHaJX(5N-mTF1suuCVj^#j?u$Tequ}ym|R&zc}RT9_iE}s81+*u9QV_O-4u!DwNf3W z`nPbG+OZ61%6JkreU%e{5#iB5tJu|q7;j7Nz_x#ACGLQf0Wy+MH2?!s+q4Hmrmf;W zlX{iya;07_3o+;>A<4U_fj+)*?fP}JwANBYhZ8@!cH{ar#AJUVlwheIGOO;lWNSrO z3w9IsBDbkFqiQi&abp)ysq z@6vybGy0-n@eL9E6o7d35>@JgV|!zRFJqeFB=Y$(Z2FYKXOp;$634+*Z}XkRt;Lq$ z3yS!ve9t9aOn2?L<1@oo>@vNj)IP%wd;^cWKC!0bJ#6|6M}k`9Tt($a_g%8EWSV%) zvazdqlIgGts#VYurN+KiE=vduI`FPu>gRufNJC$P2;vs*PJtgabu2IRb0BBb-{!vIx^F{X-4rYEb<^^q~mfcM;yIW`6j-{Wnlc0|c|= zytots(36v%(K`bdiKvqy&m5EZ(OnMElTlB@BGigj2LJ$!7n5VsGy@ljsFNYj9Fw-v z9s?A>0F(W^8j~~9B9ma#1d|uj8Vg0i002x$Lq$$gMU#-zD3hAV4h|Rq000000RR91 zw1L3OlYrAw0-nv2)YDP|63~+<)J+3b&;XM@%@~uA)Ib7K(Ua2DItIhh00000PSN-P delta 1278 zcmVc*9?<^ zxF&zL6{uZZ6{uZxcnbgl1n2_*00ig*008Y*&2HO95I&PnvE{*#T8WZkw+U?1fqpF1 zfFm2RT{LKVSd$})Ho40#myUgOfFPFwd4|40;I^pI)b1-#Z`4^XDVefzaQ{v*U{U+c zH?uR}%r5QCr{_^f&OjsqXO7je+ZF-laxZ^izGEF74x3M`r(5RcXM?@|;fwuklDHy> z<$A=uGz7AL)Z5+Z6RX*3?Zv?M#^b;Rn+w0y8XOLYUJtmNM!+P&=&jcF$Rd_@w>{}u z7`z%26Jp7_#vE%RWxU>Mag5IA(I2(j?UtrkWlD@j;8@?#Fz~3vYG#IzGC!q08V`RY z6+M~+uC;ZL9+QZQ(-+^G<~H*Pu1!;cXF34%QYkqz4FM59gC6zz6Dp`HQL4Gaz6j2c zs}^J#(NH_eLtLJspr%3ar<tvDOxbsI(D^y@0&E{-UxB7E+VjAl$l5N9 zrS@x_)Ek|8J*VxAHFL$68xHyM@#@+d>5c{k7%K3q)yHeAL{5O^9&;^=FDo>PHwt01 zpR()hkL)VD%|4V`=jQ%I)Kq`Wx~6LrnO`(mt4Q)5suL}Br#_3z+Urt}E;MvdFEkUhWe=x`0R5g1rI|I_E6wus-n#zIm8u!IUO;60OBl|U0p7Z>?CD&f;XK# zR(|%NaQhm<7{u)Qnn!=L;T+slLP@NZ$u$bG?3D5KuIoZ9tF;#wV@1;jX*Wn$2zpVg z*R=#x_{pPMyRHOa@QPHDJO;`Vdtcx?MaT<$VWe1U>0ytsg4z9Za8La5Mw;<+e{_%{ zg@@Ppu??0~sCUE)O;|Q33vZf#xpjYQcp?-9^C^@L@D=lrj@&`_t@b9bb)hRueEwN~ z?r*ZBGmE?4ox;w8r?B(DDeV03Q`k`zF1@U(e~NsX!G#$d(=hoog#W=1Zni4_Lu~y8 zvlPI*6aq(5lhV{X1GW{YlVQ{rlW@}plPuL;4o6Z^Ppa0bSRw=f0M`tYm(?@_wiT$8 zVbm6raMK2p>eU_t;Jg5nF~Ay=XVoH;N7fz-5xxKbOi4pUPE$pbvC<@yl-3>sjL4I; o)=~m$%99A!QUc!0lU&zL0wK+ltJhfq9?p{n*g6J}&Hw-a0MW5<1^@s6