[scribus] Script to reverse all numeric in text frames
adam7171
adam7171 at gmail.com
Sun Jan 20 18:05:54 UTC 2013
Dear all,
I've solved the problem in MS Access (my CMS for a newsletter) and it does
reverse all numeric and also replace them in reversed order. After that I
could export that text to Scribus and use the Reverse font to get all the
text in the Right-To-Left in correct order.
I've listed my codes below. I just am not so familiar with Python and would
really like to convert these codes to Python scripts for Scribus. If we can
achieve this, it means a TOTAL SOLUTION for Arabic, Hebrew and other
Right-To-Left languages. I can already see a lot of irritated Scribus users
from the Hebrew and Arabic communities.
These codes works fine. Any more suggestion you're most welcome to let me
know. Also you could share this with your Python buddies.
Also I can explain my ideas on algorithms regarding the subject.
Rgds,
Adam
'===
Dim strString As String
Dim strParts() As String
Dim i As Integer
Dim strResult As String
Dim boo_IsNumeric As Boolean
Dim strWord As String
Dim boo_IsAlphaNum As Boolean
strString = TextBoxDescription.Value
strParts = Split(strString, " ")
For i = 1 To UBound(strParts)
strWord = strParts(i)
boo_IsNumeric = IsNumeric(strParts(i))
If boo_IsNumeric = True Then
strResult = strResult & "|" & strParts(i)
End If
If boo_IsNumeric = False Then
boo_IsAlphaNum = boo_IsAlphaWithNumeric(strWord)
If boo_IsAlphaNum = True Then
' strResult = strResult & ", " & strParts(i)
End If
End If
Next i
strResult =
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(strResult,
",", ""), "!", ""), "?", ""), ":", ""), "-", ""), "~", ""), "(", ""), ")",
""), "[", ""), "]", ""), "{", ""), "}", ""), "/", "")
MsgBox strResult
MsgBox StrReverse(strResult)
strString = strResult
strParts = Split(strString, "|")
For i = 1 To UBound(strParts)
Me.TextBoxDescription.Value = Replace(Me.TextBoxDescription.Value,
strParts(i), StrReverse(strParts(i)))
Next i
'====
Public Function boo_IsAlphaWithNumeric(strText As String) As Boolean
Dim i As Long
For i = 1 To Len(strText)
Select Case Mid(strText, i, 1)
Case Chr(48) To Chr(57)
boo_IsAlphaWithNumeric = True
Exit Function
End Select
Next i
boo_IsAlphaWithNumeric = False
End Function
'xx*xx END of Codes
RESPONSE By:-
============
Ivan Winters | 30 Dec 2012 20:49
(http://comments.gmane.org/gmane.comp.graphics.scribus/42787)
Script to reverse all numeric in text frames
Assuming ADAM's problem is with rtl text then a workaround with a script
could presumably check each character using an 'is numeric' test (or
similar test which scripting languages should support). If the Is Numeric =
1 then the character is looped out of the 'reverse text' function and kept
(or returned depending in which sequence the script performs the commands
in) to it's original order.
Just a suggestion from someone who only occasionally plays with scripts.
Ivan Winters
-----
adam7171 wrote:
>
> I've got a font in UTF-8 reversed in Scribus text frames but the numeric
> are
> displayed flipped too. I need to keep everything else reversed (which
> can be done on Scribus) but the numeric to be intact.
>
>
> ___
> Scribus Mailing List: scribus at lists.scribus.net
> Edit your options or unsubscribe:
> http://lists.scribus.net/mailman/listinfo/scribus
> See also:
> http://wiki.scribus.net
> http://forums.scribus.net
>
>
--
View this message in context: http://old.nabble.com/Script-to-reverse-all-numeric-in-text-frames-tp34842352p34923722.html
Sent from the Scribus New mailing list archive at Nabble.com.
More information about the scribus
mailing list