ࡱ> !# G bjbjَ  ] j ^  @ _!pڼ / =!"#$% [ @ Normal<A@<Default Paragraph Font8O8Homonym number H*mHnH Authorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV.DOTAuthorized Gateway CustomerC:\RTLREV\RTLREV97.DOTWolfgang WitteveenC:\rtlrev\Test\RTLREV97.DOTV ~ Reverse right-to-left te&xtReverse Right to Left TextReverseRightToLeftText.MAIN(&Finish exporting from ShoeboxReverse Right to Left TextReverseRightToLeftText.MAIN-Re&verse right-to-left textReverse right-to-left te&xt &Embedded RTL Embedded RTLEmbedded right to leftReverse right-to-left text+TemplateProject.ReverseRightToLeftText.MAIN+TEMPLATEPROJECT.REVERSERIGHTTOLEFTTEXT.MAIN@@@GTimes New Roman5Symbol3& Arial"hF$0 Authorized Gateway CustomerWolfgang WitteveenOh+'0   < H T `lt|ssAuthorized Gateway Customeruth Rtlrev97.dottewWolfgang WitteveenC24fMicrosoft Word 8.0C@V@@w>@ pڼ՜.+,D՜.+,0 hp  JAARStl   Title 6> _PID_GUIDAN{8D28446A-4641-11D1-BDFF-0080C83DA020} "&K%=M()*+,./0123456789:;<'>?@ABCDEFGHIJNOPSTUVWXYLRoot Entry F7oڼ@ _!pڼ$$1TableWordDocumentSummaryInformation(DocumentSummaryInformation8Macros!pڼ@ _!pڼVBA!pڼ@ _!pڼThisDocument   !"#$%&'()*+,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~x # (SLSS<N0{00020906-0000-0000-C000-000000000046}8($HMExAttribute VB_Name = "ThisDocument" Bas0{00020P906-0C$0046} |CreatablFalse ^PredeclaIdTru "@ExposeTemplateD0eriv$eCustomiz2ReverseRightToLeftText. -*Rtlrev32 Rtlrev AO_VBA_PROJECTR'PrivB  Dim iViewNo@rmal sFilePath^$AbBasicRtfWindow @'dlgT;s As Ob ject:@>t =B.Dia@logRec.S&(F`e?'Note: T@pf0 shouldpRTF; @can webke suVt i s?H('1) To gerrq& lajCb,DDdone c@Pag vAU with@ hstuff=A&wr R.WaitCurs@w1 'ShowIrglass c AQ0HideBmFpcharact@= @!C+ab%mcreenUpdX Save ti@4byt%"> at work2:wenem@er` xp acolum^pa0breakm'if( 'sminadi=@ʛD4'Jse }``”DInsCbB" 51a#%'(g"bRc) # eC(i.eh@ift+En <)Sa'aenn'`each Tmul$tiB pBgrPaphsAdele spaceh B)AgseL#ೡiM<> 0snH{cgN2) Cc\lo.!w zo`9 Ditz7$gj\[AFrom$]]sd% AppInfo2g (InStr( , "6.0")1 Or;Q7%d0 @)FnR.Und|V|BARqw/ mea|AEqO l #uiGr0ly loadedtnneJDunusiPny qu(ЉpQproduca GPF[!`cess)DASo op uFpPQocimd y whi/5`haGaRnearyy8slpWR[hn# ' \Valuesj n 'Gpfvn07X(O1+:=r.p, AddToMru:=0GActc ]}15e5oq7slowIf0 Ccl_l0|WPl'3) RҘ r utilityt@0m5$ 5[1b5JCI@ ("c.bp", C7Els}.32'`i'4eo9'6SS{&l! OCps9 _ct4(Wit 1)s)u),tJ*?"% >2 'ЭntStatusBar "Finish ys1E*}ԟpBeepqSP ֳ(odAbSmartPΐ$1sML1off #iP8ercUNext?xtCc ' "0WtpKnqEdle@be< f0o }@a D~ *cause`uC[9goXpinfloop$!A HgbToolsOpasڼ7&T U >t .| S/lR P'UV s] w@ulgr p"`J-ersing right-to-left text: inserttline breaks " WordBasic.PrintStatusBar sMessage$ + "0%\EndOfDocumeDntoff = TGetSelUrtPos() 'Offs"eo d='s last charIiPerckWK0[N(($+ 1) * ?) / 10EB YgLChiledCMR(5<> 0dWnot aghe end... HZ 'If t%p hasnged, n updaterogress7@I>AF OThE@Z P\@^ @` @b @d `f (ME  6 "8 ` @h > : F( 8p D F "8@H "PX`hpx" > > 80.h02: @P B >  8 >X , 8 F(p  0 6 > 4X . * 2(.8h2  , & 0 "H p $x      *  &(  P ` 4h    "       B @P "     : >@   2       4( ` >p    "  (  0@ ,X 4 2 0 0( 6X 8  @ B  <h @ :(8P h x    " (H/ReverseRightToLeftText macro for Microsoft WordVersion 3.09 (October 1997)9If your document contains text in a right-to-left script,7then before printing it using a non-Middle-East edition4of Microsoft Word, it must be reversed line-by-line.?If documents based on this template contain right-to-left text,1run this macro as the LAST step before you print.=NOTE: You'll also need to copy the Rtlrev and Rtlrev32 macros?to your document template. See rtlrev.txt for more information.A@l@ZZZZZZZE .!0%2.,8Note: The file should be in RTF; can we make sure it is?81) To get correct layout for printing, this must be done1in Page Layout view with no hidden stuff showing. .B@4Show the hourglass cursor .B@6Hide non-printing characters .%8'  .B@:!Show the text in Page Layout view@ .B@< %Save time by not showing Word at work:Note: we'll need to insert explicit column and page breaks;if the document's dominant text direction is right-to-left.8These breaks need to be inserted before the line breaks.InsertColumnBreaks '1aInsertPageBreaks '1b81c) Insert explicit breaks (i.e. Shift+Enter) at the end&of each line in multi-line paragraphs.2Also delete the space at the end, if there is one.A@> F .B@8g@2) Save and close the RTF file so that its text can be reversed. .%@' " .B@B .%D' $ $6.0} $7.0}'& &0Under VBA, if closing the document means closing7the last copy of the template that is currently loaded,-then the currently running macro simply quits'(often producing a GPF in the process).#So open up the associated template,+which should have all the necessary macros. .%F' ( , .!HB@28Get the template name. ,!LN .B@J ( .B@P,So the file gets closed belowh8 .B@R .B@4Show the ordinary cursor 3) Run the Rtl Reverser utility. $6.0} Rtlrev.bRun " .%('*a Rtlrev32.bRun " .%('*hX4) Reopen the document. * " .B@J & #Reselect the template and close it. ,!LNT .B@J .B@Rh%Finished reversing right-to-left text .B@V .B@XhHl ReverseText(ZhZZZZZ; Smart cut and paste prevents EditClear below from deleting: a space and causes the macro to go into an infinite loop.ZE .!0%h.f f .!HB@h f!j'Z f(j f .B@h4Use the character offset as the measure of progress.5Reversing right-to-left text: inserting line breaks ' \ \0% .B@V .B@l .%n'^)Offset to document's last char'` `  ^d'b .B@p .B@r .%t'While not at the end... .%n'd8If the percentage has changed, then update the progress. d b dd ^ .%'` \ `$v % .B@V `  ^d'bh .B@x d .%n %What does this condition really mean? -Since a paragraph mark counts as a character, ,moving right one from the end of a paragraph *moves to the start of the next. But moving )from the end of a line within a paragraph 0moves past the first character in the next line. $| .B@z&Insert an explicit line break ^ '^h :If there are spaces at the end of the line (or paragraph),<then delete them. Why? They don't count in the line's length5now, but if they get reversed to the line's beginning9they will, and that'll push text off the end of the line,3causing an extra (invalid and unsightly) line wrap. .B@~ .B@~ .%  .B@ ^ '^ .B@~X .B@t .B@t .B@r  Restore the user's setting. Z f(j f .B@hl InsertLineBreaks tAttribute VB_Name = "ReverseRightToLeftText" 'l macro for Misoft Wor dbVion 3.09 (October 1997):If your document contains tv in a rA-to-l script,;then bexe printing it usa non-Middle-East edit)9of ,mu!be rd line-by-.VSs b ased mthiVmpla_ ZfYrun ahe LAST stepfh:NOTE: You'll also ne<$topy'e RtlZ and32sZ teU. Se@;!.txtpmore]UmaAK@ Public Sub MAItN(o ă  E@WinExecxK g0#@ get Y` thiie La agraY"tartPving@ @ ME 6 H 8 B@HPX@` @ B B(p& ( : :X 6 6 8 @Php/Rtlrev32.bRun macro function for Microsoft WordZZZ2Reversing right-to-left text: running Rtl Reverser .B@V:NOTE: Since we don't want to hard-code an explicit path to<rtlrev32.exe here, we're assuming its folder is on the path,;or, even better, it's someplace like in the Windows folder. rtlrev32.exe " '  $'# SW_SHOWNORMAL    .B@XUnable to run Rtl Reverser .B@ 'a3NOTE: In 32-bit Windows, Word doesn't need to yield4for rtlrev32.exe to get a chance to run, but it does0need to be hidden, so that it cannot receive any0user interface actions that it'd have to act on. .B@ Rtl Reverser .% .B@'Truehf Rtlrev32.bRunpMAttribute VB_Name = "Rtlrev32"  '4.bRun macro function for Mi$soft WordfPrivaDeclare F\WinExec Lib "K ernelf (ByVal lpszCmdLinPe$, uShow As Integer)  me(sFilePath$) Dim sZ hinst FALSE_ aBasic.bntStatusBareversing right-to-leztext: runn R er)'NOTE: Since we don't want to hard-code an explicit Np\I'r.exe here ,#'assu"m;itsld@er is the",!or, Kn betteit's s@omepla%like in @idow.COA $" + G[C BW@ |(F, 1) 'SW_SHOWNORMAL If 0 g*ElLseDpIn"-6bgDH,Btes!tneedyiel'JL}get a cha', @doesb~idden,mjat cannot receivyusrfyas'Xa` FD=G,AppHidy!Wh k"eIs`_(`@o  enh" {1-1'Tru$EBIf &} x} [ @ rtY"teP@ J@ pporPME % 4 N8 Z l NX Z . B8@HP@X @ @ B`& ( < <H 6 6  (0 8H`h-Rtlrev.bRun macro function for Microsoft WordJ Word 97 does not support external functions called from 16-bit libraries.U The declaration has been commented out, because the function will generate an error.h Private Declare Function WinExec Lib "Kernel"(ByVal lpszCmdLine$, ByVal uCmdShow As Integer) As IntegerJ Word 97 does not support external functions called from 16-bit libraries.U The declaration has been commented out, because the function will generate an error.) Private Declare Sub Yield Lib "Kernel"()Z`ZxZ2Reversing right-to-left text: running Rtl Reverser .B@V:NOTE: Since we don't want to hard-code an explicit path to:rtlrev.exe here, we're assuming its folder is on the path,;or, even better, it's someplace like in the Windows folder. rtlrev.exe " '  $'# SW_SHOWNORMAL    .B@XUnable to run Rtl Reverser .B@ 'a6NOTE: In Windows 3.1, not only does Word need to yield5so that rtlrev.exe gets a chance to run, but it needs/to be hidden too, so that it cannot receive any0user interface actions that it'd have to act on. .B@ Rtl Reverser .%A@ .B@'Truehf Rtlrev.bRunxAttribute VB_Name = "Rtlrev" ',.bRun macro function f or Mi$soft WordbRem 97 does not support externals called from 16-bit libraries. NThe declaraxhas been comment!>out,ca`use t/will genestdoleP f%\*\G{00020430-C 0046}#2.0#0#C:\WINDOWS\SYSTEM\STDOLE2.TLB# Automation#/MSForms>!SFErms/z pFEC14BBA2-341E-11D1-BDFFF80C83DAUF3.TWD#Microsdir{PROJECTwmPROJECT pCompObjjPoft = ` Ob Libr8ary9P0ڐrP3,PJ@P\VBE\(EX(.E .`M CxOffi cDxO@ufi*cBx+x,2DF8D04C-5BFA-101BIUE5UAA@w4DE52UMICROSOFT O@FFICE\MSO97.DLLCV 8.0W ¢ThisDoc@umentN2D-Th2sDDcuenHB1BB,B"B"+BReverseRightToLeftTex2,+ SvreR@%g&tT@&Lf@%TxR'D# !  tlre v322Fa lr` v32o m !R 5c2/R( [ o ThisDocumentThisDocumentReverseRightToLeftTextReverseRightToLeftTextRtlrev32Rtlrev32RtlrevRtlrevID="{8D28446B-4641-11D1-BDFF-0080C83DA020}" Document=ThisDocument/&H00000000 Module=ReverseRightToLeftText Module=Rtlrev32 Module=Rtlrev Name="TemplateProject" HelpContextID="0" CMG="1715A0DBA0E5B3E9B3E9B3E9B3E9" DPB="2E2C99F4A71CBF1DBF1DBF" GC="4547F2E91E011F011FFE" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000   FMicrosoft Word Document MSWordDocWord.Document.89qion bWordBasicsRtfWindowName bReversed܁ dlgTemplates,! WordBasic DialogRecord FileTemplatesuy WaitCursor)kShowAllI ViewNormal5ViewPa^  *\G{000204EF-0000-0000-C000-000000000046}#3.0#9#C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA332.DLL#Visual Basic For Applications*\G{00020905-0000-0000-C000-000000000046}#8.0#409#C:\Microsoft Office\Office\MSWORD8.OLB#Microsoft Word 8.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\STDOLE2.TLB#OLE Automation*\G{EC14BBA2-341E-11D1-BDFF-0080C83DA020}#2.0#0#C:\WINDOWS\SYSTEM\MSForms.TWD#Microsoft Forms 2.0 Object Library*\G{EC14BBA3-341E-11D1-BDFF-0080C83DA020}#2.0#0#C:\WINDOWS\TEMP\VBE\MSForms.EXD#Microsoft Forms 2.0 Object Library.E .`M *\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\MICROSOFT OFFICE\OFFICE\MSO97.DLL#Microsoft Office 8.0 Object Library1uF4 ThisDocument 134467531*D,ReverseRightToLeftText 234467531*D #Rtlrev32 334467531*D 0 Rtlrev 434467533*DH[ hH0cD(AF= eD(AF= gD(AF= iD(AF= QT0SFALSEREMWordkVBAWin16~Win32MacRTLREV97Dstdole`MSFormsC ThisDocument< _EvaluateOfficeuTemplateProjectEModule1bReverseRightToLeftText_MAIN, ReverseText iViewNormal sFilePathi sWordVersion bWordBasicsRtfWindowName bReversed܁ dlgTemplates,! WordBasic DialogRecord FileTemplatesuy WaitCursor)kShowAllI ViewNormal5ViewPageJScreenUpdating! InsertLineBreaksFileNameFromWindow$FileSave AppInfo$3 WindowName$ CurValuesȤFileOpen TemplateAddToMrufActivate| FileClose_RevertnPrintStatusBar=BeepbSmartCutPastesMessagemoffEndGaiPercentoffNextPercenta` offNextChar dlgEditToolsOptionsEdit SmartCutPaste EndOfDocumentGetSelStartPos StartOfDocument EndOfLinem CharRightPStr StartOfLineMInsertrChrK~CharLeft Selection$ WW6_EditClear0Rtlrev32CWinExecW lpszCmdLine4uCmdShow$Kernel32_bRun sCmdLine'bhinst FALSE_;MsgBoxRAppHide AppIsRunningAppShowjrRtlrevdYieldDocumentjx  H