Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][inne] Generowanie Plików RTF lub DOC
Forum PHP.pl > Forum > Przedszkole
dawhol
Czy jest możliwość zeby za pomocą formularza i php wstawic tekst w odpowiednie znaczniki w dokumencie worda
winksmiley.jpg tzn w wordzie mam miejsca np {imie} i chce zeby w ty miejscu pojawił sie tekst z pola INPUT o nazwie imie smile.gif.

Czy jest takie cos możliwe ?
nasty
tak, jest mozliwe ale tylko na windowsach (server),
tu masz link do artykulu
http://www.phpbuilder.com/columns/yunus20031124.php3
i w manualau na temacie COM w komentarzach jest sporo o wordzie i exelu
kossa
Zamiast dokumentu .doc użyj .rtf i zrobisz to na każdym serwerze :-) no problem

Pozdrawiam,
Łukasz

Tu masz przykładowy kod:

Kod
// konwersja symboli zastępczych szablonu na
// wartości pól formularza
function przeksztalc($tresc)
{
foreach($_POST as $symbol=>$wartosc)
$tresc = str_replace("^^".
strtoupper($symbol)."^^",
polskie($wartosc),$tresc);
return $tresc;
}
// konwersja polskich znaków na kody formatu
// unicode, wykorzystywane w plikach RTF



Kod
function polskie($co)
{
$tab = array("ą"=>"\u261a",
"Ą"=>"\u260A","ę"=>"\u281e",
"Ę"=>"\u280E","ć"=>"\u263c",
"Ć"=>"\u262C","ł"=>"\u322l",
"Ł"=>"\u321L","ń"=>"\u324n",
"Ń"=>"\u323N","ś"=>"\u347s",
"Ś"=>"\u346S","ź"=>"\u378z",
"Ź"=>"\u377Z","ż"=>"\u380z",
"Ż"=>"\u379Z");
$po_zamianie = strtr($co,$tab);
return $po_zamianie;
}
// wysłanie nagłowka określającego typ MIME
// dokumentu
header("Content-type: application/msword");
header("Content-Disposition: inline");
wylicz();
// odczytanie nazwy szablonu RTF
$plik = $_GET["dok"].".rtf";
// otwarcie szablonu RTF i pobranie
// jego zawartości
$fp = fopen($plik,"r");
$tresc = fread($fp,filesize($plik));
$tresc = przeksztalc($tresc);
// wyświetlenie gotowego dokumentu
print $tresc;


ten kod przetwarza formularz i wstawia dane po wcześniejszym konwertowaniu znaków do pliku .rtf znajdującym się na serwerze w miejsca zaczynające się od znaku ^^ np.: ^^IMIE^^


Łukasz
nasty
a jak ma windowsa to tak: (z manuala)
  1. <?php
  2. // starting word
  3. $word = new COM('word.application') or die('Unable to instantiate Word');
  4. echo 'Loaded Word, version {$word->Version}n';
  5.  
  6. //bring it to front
  7. $word->Visible = 1;
  8.  
  9. //open an empty document
  10. $word->Documents->Add();
  11.  
  12. //do some weird stuff
  13. $word->Selection->TypeText('This is a test...');
  14. $word->Documents[1]->SaveAs('Useless test.doc');
  15.  
  16. //closing word
  17. $word->Quit();
  18.  
  19. //free the object
  20. $word = null;
  21. ?>

mniej skomplikowane, a pozatym dawhol wyraznie napisal ze to ma byc ms word
dawhol
Znalazłem dzisiaj, wydaje mi sie łatwiejszy sposób od tych prezentowanych tutaj winksmiley.jpg

oto link do niego winksmiley.jpg
http://wortal.php.pl/wortal/artykuly/pomys...anie_plikow_rtf
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.