Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Fri May 23 11:48:37 CDT 2003
Thanks Bryan, This is what I needed. > RTF Files are just plain old ascii text. > So Low level File I/O will work to write it. Yes, that's clear - I wanted to see some advanced code to prepare RTF files' raw contents - and the RTF spec you referred to seems to have more than enough info including samples... THNX a lot! Shamil ----- Original Message ----- From: "Bryan Carbonnell" <Bryan_Carbonnell at cbc.ca> To: <accessd at databaseadvisors.com> Sent: Friday, May 23, 2003 7:56 PM Subject: Re: [AccessD] OT: Writing raw RTF document usingVB/VBA/C(++)/DELPHI/... > Shamil, > > RTF Files are just plain old ascii text. So Low level File I/O will work to write it. > > The biggest challenge would be to get the text string correct before writing them out to the file. > > Here is a link to the RTF spec. > > http://msdn.microsoft.com/library/?url=/library/en-us/dnrtfspec/html/rtfspec .asp?frame=true > > As for PDF, here is the link to the PDF Specs. > > http://partners.adobe.com/asn/acrobat/docs.jsp#filefmtspecs > > Bryan Carbonnell > bryan_carbonnell at cbc.ca > > >>> shamil at smsconsulting.spb.ru 23-May-03 11:37:38 AM >>> > Hi All, > > Has anybody seen on the Internet any advanced code samples of writing raw > text of RTF documents with different formatting styles, headings, lists, > tables etc. using VB/VBA/C#/C(++)/ <literally any programming language> but > without usage of ActiveX controls, without MS Word Automation etc. - i.e. > just plain raw code to write raw RTF like in P.S. of this message? > And maybe .PDF too? - or this latter is too much to have for free? - maybe > then good description of .PDF format in electronic form or printed as a > book? Any useful refs on that? > > TIA for any info, > Shamil > > P.S. Raw rtf sample > > {\rtf1\ansi\ansicpg1252\uc1 > \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset204\fprq2{\*\pa > nose 02020603050405020304}Times New > Roman;}{\f1\fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;} > {\f2\fmodern\fcharset204\fprq1{\*\panose 02070309020205020404}Courier > New;}{\f3\froman\fcharset2\fprq2{\*\panose > 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose > 05000000000000000000}Wingdings;} > {\f30\froman\fcharset0\fprq2 Times New Roman;}{\f28\froman\fcharset238\fprq2 > Times New Roman CE;}{\f31\froman\fcharset161\fprq2 Times New Roman > Greek;}{\f32\froman\fcharset162\fprq2 Times New Roman Tur;} > {\f33\froman\fcharset177\fprq2 Times New Roman > (Hebrew);}{\f34\froman\fcharset178\fprq2 Times New Roman > (Arabic);}{\f35\froman\fcharset186\fprq2 Times New Roman > Baltic;}{\f38\fswiss\fcharset0\fprq2 Arial;}{\f36\fswiss\fcharset238\fprq2 > Arial CE;} > {\f39\fswiss\fcharset161\fprq2 Arial Greek;}{\f40\fswiss\fcharset162\fprq2 > Arial Tur;}{\f41\fswiss\fcharset177\fprq2 Arial > (Hebrew);}{\f42\fswiss\fcharset178\fprq2 Arial > (Arabic);}{\f43\fswiss\fcharset186\fprq2 Arial Baltic;} > {\f46\fmodern\fcharset0\fprq1 Courier New;}{\f44\fmodern\fcharset238\fprq1 > Courier New CE;}{\f47\fmodern\fcharset161\fprq1 Courier New > Greek;}{\f48\fmodern\fcharset162\fprq1 Courier New > Tur;}{\f49\fmodern\fcharset177\fprq1 Courier New (Hebrew);} > {\f50\fmodern\fcharset178\fprq1 Courier New > (Arabic);}{\f51\fmodern\fcharset186\fprq1 Courier New > Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\b > lue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0; > \red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\g > reen128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\b > lue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue19 > 2;}{\stylesheet{ > \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 > \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 > Normal;}{\s3\ql > \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\ > lin0\itap0 > \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 > \snext0 heading 3;}{\*\cs10 \additive Default Paragraph > Font;}}{\*\listtable{\list\listtemplateid-1472272512\listhybrid{\listlevel\l > evelnfc23\levelnfcn23\leveljc0\leveljcn0 > \levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltempl > ateid67698695\'01\u-3983 > ?;}{\levelnumbers;}\f14\fs16\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23 > \leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\l > eveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\b > rdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23 > \levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\lev > elindent0{\leveltext\leveltemplateid67698693\'01\u-3929 > ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 } > {\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstar > tat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-391 > 3 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880 > \jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\lev > elfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplatei > d67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 > \leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\ > leveltemplateid67698693\'01\u-3929 > ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li4320\jclisttab\tx4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 > \leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\ > leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr > \brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 > \leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\ > leveltemplateid67698691\'01o;}{\levelnumbers;}\f2 > \chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 > \leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\ > leveltemplateid67698693 > \'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 > \chshdng0\chcfpat1\chcbpat1\fbias0 > \fi-360\li6480\jclisttab\tx6480 }{\listname > ;}\listid2140488109}}{\*\listoverridetable{\listoverride\listid2140488109\li > stoverridecount0\ls1}}{\info > {\title This is a header}{\author Shamil Salakhetdinov}{\operator Shamil > Salakhetdinov}{\creatim\yr2003\mo5\dy23\hr19\min30}{\revtim\yr2003\mo5\dy23\ > hr19\min31}{\version1}{\edmins1}{\nofpages1}{\nofwords0}{\nofchars0}{\*\comp > any SMS Consulting Ltd.} > {\nofcharsws0}{\vern8269}}\margl1701\margr850\margt1134\margb1134 > \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospacef > orul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1701\dgvori > gin1134\dghshow1\dgvshow1 > \jexpand\viewkind1\viewscale130\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine > \htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule > \fet0\sectd > \linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultc > l > {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta > .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta > .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta > .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl > 5 > \pndec\pnstart1\pnindent720\pnhang{\pntxtb > (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb > (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb > (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang > {\pntxtb > (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb > (}{\pntxta )}}\pard\plain \s3\ql > \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adj > ustright\rin0\lin0\itap0 > \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {This is a > header > \par {\listtext\pard\plain\f14\fs16 \loch\af14\dbch\af0\hich\f14 > \'71\tab}}\pard\plain \ql > \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls1\adjus > tright\rin0\lin720\itap0 > \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {list line1 > > \par {\listtext\pard\plain\f14\fs16 \loch\af14\dbch\af0\hich\f14 > \'71\tab}list line2 > \par {\listtext\pard\plain\f14\fs16 \loch\af14\dbch\af0\hich\f14 > \'71\tab}etc\'85 > \par }} > > -- > e-mail: shamil at smsconsulting.spb.ru > Web: http://www.smsconsulting.spb.ru/shamil_s > > > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com