[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: berle pro AREXX
On 08-Apr-97, Dusan Lampart wrote:
>pomoci AREXXu ovladam Typesmith. Ale nejde mi exportnout Intellifont.
>Nevim, jestli neco pisu spatne, ale proste mi to nejde :-(
>Takze shrnu-li to: jakou utilitkou by se dal resit
>1. problem a jak by se dal resit 2. problem ? :-)
>Doudy
Prosim te to neres. TypeSmith je na nic. Uz jednou jsem tady psal,
ze jsem se o to pokousel. Ma proste chyby v Arexxu. Pri save
se proste ukaze requester a nijak ho neobelstis. Navic mrsi fonty
a nekonvertuje kerning.
Jinak posilam zdrojak programu. Kdo trochu programuje, at se do toho nediva, mohl by ho trefit slak. Jednak jsem to delal uz davno a pak jsem stale musel dobastlovat ruzne vevi, ktere mely v TypeSmithu fungovat a nefungovaly.
Jinak ten script prevadi do adobe1 z adobe1. Jenom presklada tabulku.
(To, ze uklada jeste v jinem formatu je proto, protoze TS neumi rovnou ulozit
Adobe)
Zaver: 1. problem obelstis spatne
2. problem je vyresen v mem scriptu:
/* Konvertovaci Arexx script pro TypeSmith z tabulky WindowsEE do KOI8 */
options results
address command
/* zadani cesty k fontum a vytvoreni souboru se jmeny fontu */
RequestFile ">T:requester DH1:Adobe.tmp TITLE Vyber_adresar"
temp=open('FILE1','T:requester','R')
adresar=readln(FILE1)
temp=close(FILE1)
maska=delstr(adresar,lastpos('"',adresar),1)
maskaproDEL=maska
maska=maska||'(#?.PFB|#?.AFM)"'
list maska "to T:soubory lformat=%F%S"
sort "FROM T:soubory TO T:soubory2"
/* zjisteni poctu radku v souboru */
pocetfontu=0
temp=open('FILE1','T:soubory2','R')
do while eof(FILE1)=0
pocetfontu=pocetfontu+1
pom=readln(FILE1)
end
pocetfontu=pocetfontu-1
pom=close(FILE1)
nahoda=0
/* Vlastni prevod v programu */
run "DH1:DTP/TypeSmith/TypeSmith"
wait 4
address 'TYPESMITH'
options results
temp=open('FILE1','T:soubory2','R')
pocetfontu = pocetfontu/2
do i=1 to pocetfontu
IAFM=readln(FILE1)
IPFB=readln(FILE1)
import_PFB IPFB
import_AFM IAFM
MOVE_CHAR '141 244'
MOVE_CHAR '157 212'
MOVE_CHAR '200 227'
MOVE_CHAR '201 246'
MOVE_CHAR '204 229'
MOVE_CHAR '207 228'
MOVE_CHAR '210 238'
MOVE_CHAR '217 234'
MOVE_CHAR '218 245'
MOVE_CHAR '232 195'
MOVE_CHAR '233 214'
MOVE_CHAR '236 197'
MOVE_CHAR '237 201'
MOVE_CHAR '239 196'
MOVE_CHAR '242 206'
MOVE_CHAR '243 207'
MOVE_CHAR '248 210'
MOVE_CHAR '249 202'
MOVE_CHAR '250 213'
MOVE_CHAR '253 217'
MOVE_CHAR '138 243'
MOVE_CHAR '142 250'
MOVE_CHAR '211 239'
MOVE_CHAR '154 211'
MOVE_CHAR '158 218'
MOVE_CHAR '193 254'
MOVE_CHAR '225 193'
MOVE_CHAR '254 225'
MOVE_CHAR '205 233'
MOVE_CHAR '216 242'
MOVE_CHAR '221 249'
/* Ziskani jmena fontu */
temp=open(FILE2,IAFM,'R')
do p=1 to 3
temp=readln(FILE2)
end
retezec=readln(FILE2)
JmenoFontu=delword(retezec,1,1)
posledni=right(JmenoFontu,1)
kontrola=x2c(0d)
if posledni=kontrola then JmenoFontu=delstr(Jmenofontu,pos(kontrola,JmenoFontu),1)
temp=close(FILE2)
/* uprava jmena fontu, pokud je delsi nez 28 znaku */
if index(JmenoFontu,"DEE") > 0 then JmenoFontu=delstr(JmenoFontu,index(JmenoFontu,"DEE"),3)
if index(JmenoFontu,"PEE") > 0 then JmenoFontu=delstr(JmenoFontu,index(JmenoFontu,"PEE"),3)
if index(JmenoFontu,"TEE") > 0 then JmenoFontu=delstr(JmenoFontu,index(JmenoFontu,"TEE"),3)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Bold") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Bold")+1),3)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Italic") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Italic")+1),5)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Demi") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Demi")+1),3)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Regular") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Regular")+1),6)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Heavy") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Heavy")+1),4)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Medium") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Medium")+1),5)
if length(JmenoFontu) > 28 then
if index(JmenoFontu,"Light") > 0 then JmenoFontu=delstr(JmenoFontu,(index(JmenoFontu,"Light")+1),4)
if length(JmenoFontu) > 28 then
do
Navic=length(JmenoFontu)-25
JmenoFontu=delstr(JmenoFontu,26,Navic)
JmenoFontu=insert(nahoda,JmenoFontu,25)
nahoda=nahoda+1
end
/*pokud stale vetsi nez 28, zde pridat na konec nazvu cislo */
IPFB=IPFB||'.DMF'
SAVE_DMF IPFB
IAFM=IAFM||'.FM'
SAVE_FM IAFM
CLOSE_FONT
open_DMF IPFB
open_FM IAFM
FinalPFB='dh0:Adobe.NEW/'||JmenoFontu||'.PFB'
FinalAFM='dh0:Adobe.NEW/'||JmenoFontu||'.AFM'
TO_FRONT
EXPORT_PFB FinalPFB
EXPORT_AFM FinalAFM
CLOSE_FONT
address command
address 'TYPESMITH'
end
address command
delete "dh0:adobe.new/#?.info"
maskaproDEL=maskaproDEL||'#?.#?.#?"'
delete maskaproDEL
temp=close(FILE1)
address 'TYPESMITH'
QUIT
exit
Jinak zadani jmena do requesteru jsem vyresil,
ale stejne sem requester musel odkliknout.