[scribus] Script to reverse all numeric in text frames
JLuc
jluc at no-log.org
Tue Jan 22 14:10:14 UTC 2013
'o
Best for your idea and for your script
is to post a request on http://bug.scribus.net
Beside (or rather than scripting), that (mysterious to me) 'R' function
could usefully be extended with a new 'numerictoo' parameter,
to be specified through a dialog.
When true, 'R' behaves as now,
when false, numerics escape being reversed by 'R'.
'JL'
-------- Message original --------
Sujet: Re: Script to reverse all numeric in text frames
Date : Sun, 20 Jan 2013 10:05:54 -0800 (PST)
De : adam7171 <adam7171 at gmail.com>
Répondre à : Scribus User Mailing List <scribus at lists.scribus.net>
Pour : scribus at lists.scribus.info
Groupes de discussion: gmane.comp.graphics.scribus
Références : <loom.20121229T162914-463 at post.gmane.org>
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.Le 20/01/2013 19:05, adam7171 a écrit :>
> 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
>>
>>
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.
___
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
More information about the scribus
mailing list