[PHP] RTF document

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een ordersysteem geschreven en vanuit dit systeem kunnen diverse documenten genereerd worden naar RTF documenten.
Dit werkt allemaal naar behoren, alleen nu zit ik met 1 ding.

Ik wil graag van het RTF document dat gegenereerd wordt in kunnen stellen wat de pagina marges zijn. Momenteel worden dus de standaard marge instellingen gepakt.
Weet iemand of dit mogelijk om dit aan te passen?

Stukje code dat een RTF document genereerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=document.rtf");
header("Pragma: no-cache");
header("Expires: 0");

echo '<table width="800" border="0" cellspacing="0" cellpadding="4" align="left">
        <tr>
            <td>FAX TO :</td>
            <td>'.$list_bedrijf->bedrijf_naam.'</td>
            <td>FROM &nbsp;:</td>
            <td>'.$list_order->order_employee.'</td>
        </tr>
</table>';

[ Voor 56% gewijzigd door Verwijderd op 16-07-2004 14:32 ]


Acties:
  • 0 Henk 'm!

  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 13-08 08:00
euhm, nu weet ik niet zo heel veel van rtf en php, maar is rtf niet een ander formaat dan html? zoals het er nu uitziet lijkt het alsof je gewoon html doorstuurd als rtf

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Verwijderd schreef op 16 juli 2004 @ 14:29:
Weet iemand of dit mogelijk om dit aan te passen?

Stukje code dat een RTF document genereerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=document.rtf");
header("Pragma: no-cache");
header("Expires: 0");

echo '<table width="800" border="0" cellspacing="0" cellpadding="4" align="left">
        <tr>
            <td>FAX TO :</td>
            <td>'.$list_bedrijf->bedrijf_naam.'</td>
            <td>FROM &nbsp;:</td>
            <td>'.$list_order->order_employee.'</td>
        </tr>
</table>';
Dit is HTML, geen RTF.

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 12:22

pistole

Frutter

met deze code "fop" je Word, en aangezien Word dom genoeg is om een html document gewoon te renderen, "werkt dit".

Wat je eigenlijk zou moeten doen is een rtf-template maken, en deze vullen in php... (of een 3rd party objectje gebruiken)

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pistole schreef op 16 juli 2004 @ 14:53:
met deze code "fop" je Word, en aangezien Word dom genoeg is om een html document gewoon te renderen, "werkt dit".

Wat je eigenlijk zou moeten doen is een rtf-template maken, en deze vullen in php... (of een 3rd party objectje gebruiken)
Het werkt in principe gewoon goed.
Ik las inderdaad ergens wat over rtf-templates, maar ik heb hier nog geen fatsoenlijk artikel over kunnen vinden waar ik wat aan had.

[ Voor 67% gewijzigd door Verwijderd op 16-07-2004 14:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

RTF ziet er uit als :

code:
1
2
3
4
5
{\rtf1\ansi\paperh16843\paperw11904\margl1361\margr240\margt240\margb240
\psz9{\colortbl\red0\green0\blue0;\red255\green255\blue255;}{\fonttbl\f0
\fcharset0\fnil Arial;\f1\fcharset0\fnil Arial;\f2\fcharset0\fnil Arial;\f3\fcharset0\fnil 
Arial;\f4\fcharset0\fnil Arial;\f5\fcharset0\fnil Arial;}\pard\fs16\sb288\tx153\tx7356
{\tab\b\f1\cf0\cb1

Acties:
  • 0 Henk 'm!

Verwijderd

http://www.php9.com/index...ich%20Text%20Format%20RTF
en het is zelfs al voor je gedaan... http://www.smartsystems.ro/rtfgen/rtfgen_be.zip
Nu kan je wel zelf uitzoeken hoe je marges e.d. moet instellen, gewoon door de source van een rtfje scrollen en leren ;)

BTW: google: http://www.google.be/sear...th+php&ie=UTF-8&hl=nl&lr= de eerste had ik al prijs :p

[ Voor 18% gewijzigd door Verwijderd op 16-07-2004 14:59 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 16 juli 2004 @ 14:57:
http://www.php9.com/index...ich%20Text%20Format%20RTF
en het is zelfs al voor je gedaan... http://www.smartsystems.ro/rtfgen/rtfgen_be.zip
Nu kan je wel zelf uitzoeken hoe je marges e.d. moet instellen, gewoon door de source van een rtfje scrollen en leren ;)

BTW: google: http://www.google.be/sear...th+php&ie=UTF-8&hl=nl&lr= de eerste had ik al prijs :p
Dat script had ik zelf ook gevonden, maar het gaf bij mij niet het gewenste resultaat.

Hoe kan ik de source van rtf bestand bekijken?
Wanneer ik het open in Notepad zie ik alleen maar ellende en Wordpad opent het gewoon netjes.

Acties:
  • 0 Henk 'm!

  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 13-08 08:00
die ellende is de key naar het succes :)
(moest de ellende te ellendig zijn (met van die blokjes enzo), dan moet je ff checke of het wel goed hebt opgeslagen als rtf)

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Verwijderd schreef op 16 juli 2004 @ 15:02:
Hoe kan ik de source van rtf bestand bekijken?
Wanneer ik het open in Notepad zie ik alleen maar ellende en Wordpad opent het gewoon netjes.
Dat komt doordat RTF gewoon ellende IS. En om stiekem HTML in een .rtf bestand te flikkeren daar doe je niemand een plezier mee.

Kijk anders eens naar PDF. Voor PHP zijn er diverse scripts voor om PDF te maken, ook die gratis voor commercieel gebruik zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nexxennium schreef op 16 juli 2004 @ 15:45:
[...]

Dat komt doordat RTF gewoon ellende IS. En om stiekem HTML in een .rtf bestand te flikkeren daar doe je niemand een plezier mee.

Kijk anders eens naar PDF. Voor PHP zijn er diverse scripts voor om PDF te maken, ook die gratis voor commercieel gebruik zijn.
PDF werkt inderdaad ook perfect, maar men wil de mogelijkheid hebben om makkelijk het document aan te passen naderhand. Zoals het aanpassen van de kolombreedte bijvoorbeeld van een tabel. Vandaar dat er gekozen voor rtf.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een RTF template, die lees ik uit door middel van php en gooi dit in een string. Vervolgens vervang ik hier en daar wat en schrijf vervolgens deze string weer weg in een RTF bestand.

Nu ziet een stukje RTF code erzo uit.
code:
1
2
3
4
5
6
7
8
{\b\f2\cf1\lang2057\langfe1043\langnp2057\insrsid14752321 <I>\cell <QTY>\cell
<PN>\cell }\pard \ql \li0\ri0\widctlpar\intbl\faauto\rin0\lin0\pararsid97192 {\b\f2\cf1\lang2057
\langfe1043\langnp2057\insrsid14752321 <DESCRIPTION>\cell }\pard \qc \li0\ri0\widctlpar\intbl\faauto
\rin0\lin0\pararsid97192 {\b\f2\cf1\lang2057\langfe1043\
langnp2057\insrsid14752321 <CUR>\cell }\pard \qr \li0\ri0\widctlpar\intbl\faauto\rin0\lin0\pararsid97192
 {\b\f2\cf1\lang2057\langfe1043\langnp2057\insrsid14752321 
<PRICE>\cell <TOTAL>\cell }\pard \ql \li0\ri0
etc etc..................

Maar dit wegschrijven gaat niet helemaal goed, omdat php automatisch \t & \r en \n vervangt.
Ik heb al geprobeerd om alle \t \r \n te vervangen door \\t \\r \\n, maar dan werkt het nog niet. Ik heb ook alle \ al een keer vervangen door \\, maar helaas.

Heeft iemand dit zelfde probleem wel eens gehad of weet iemand hier een antwoord op?

[ Voor 193% gewijzigd door Verwijderd op 19-07-2004 11:28 ]


Acties:
  • 0 Henk 'm!

Verwijderd

\\red gebruiken, lijkt me.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 17 juli 2004 @ 14:44:
\\red gebruiken, lijkt me.
Nee dit is geen optie, het werkt namelijk niet

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19-09 22:18

chem

Reist de wereld rond

De zooi niet tussen " maar ' zetten.

Klaar voor een nieuwe uitdaging.

Pagina: 1