![]() |
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||
|
|
|||
| Functions | Platforms | ||
XML and Parsing, Rich Text Format (RTF) (OMRTF) |
|||
You can use the RTF parser library to parse an RTF document. Like an XML document, an RTF document consists of markup and data content. The OmniMark RTF parser library maps the markup structures of RTF to OmniMarks markup rules according to the rules detailed below. When you use the RTF parser, you launch it just like an external XML parser, using do markup-parse and you access the structure and data content of the RTF file just as you would with an XML file -- by writing markup rules.
The following program illustrates the operation of the RTF parser by implementing a crude RTF to XML converter:
import "omrtf.xmd" unprefixed
process
do markup-parse rtf
scan file #args[1]
output "%c"
done
element #implied
output "<%q"
repeat over attributes as a
output " " || key of attribute a || '="%v(a)"'
again
output ">%c</%q>%n"
translate "<"
output "<"
translate ">"
output ">"
translate "&"
output "&"
The only markup rules rules fired by the RTF parser are:
RTF commands are translated into XML-like elements, as follows:
The OMRTF library is based on version 1.7 of the RTF spec
, according to which, the RTF command names that are "destinations" are the following:
aftncn
aftnsep
aftnsepc
annotation
atnauthor
atndate
atnicn
atnid
atnparent
atnref
atntime
atrfend
atrfstart
author
background
bkmkend
bkmkstart
buptim
category
colortbl
comment
company
creatim
datafield
do
doccomm
docvar
dptxbxtext
falt
fchars
ffdeftext
ffentrymcr
ffexitmcr
ffformat
ffhelptext
ffl
ffname
ffstattext
field
file
filetbl
fldinst
fldrslt
fldtype
fname
fontemb
fontfile
fonttbl
footer
footerf
footerl
footerr
footnote
formfield
ftncn
ftnsep
ftnsepc
g
generator
gridtbl
header
headerf
headerl
headerr
htmltag
info
keycode
keywords
lchars
levelnumbers
lfolevel
list
listlevel
listname
listoverride
listoverridetable
listpicture
listtable
listtext
manager
mhtmltag
nesttableprops
nextfile
nonesttables
objalias
objclass
objdata
object
objname
objsect
objtime
oldcprops
oldpprops
oldsprops
oldtprops
operator
panose
pgp
pgptbl
picprop
pict
pn
pnseclvl
pntext
pntxta
pntxtb
printim
private
pwd
pxe
result
revtbl
revtim
rsidtbl
rtf
rxe
shp
shpinst
shppict
stylesheet
subject
tc
template
title
txe
ud
upr
urtf
userprops
xe
|
Functions omrtf-version rtf |
Platforms HP/UX IBM OS/2 Linux (Intel) MS Windows 98/ME MS Windows NT/2000/XP Sun Solaris |