![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Od niedawna zacząłem używać php do generowania dokumentów Worda. Wcześniej używałem do tego Perla i musze przyznać, że tam mi to lepiej wychodziło.
O ile proste przykłady jeszcze mogę znaleźć (np. otworz dokument, wpisz cokolwiek, zapisz i wypluj doca) o tyle trudniejsze rzeczy to już raczej wiedza tajemna. Nawet nie radzę sobie z justowaniem tekstu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jednym z podstawowych problemów jest przekazywanie parametrów do metod. Wezmy dodawanie kopert: Perl $document->Envelope->Insert( { ExtractAddress => 0, OmitReturnAddress => 0, PrintBarCode => 0, PrintFIMA => 0, Address => $destination_address, ReturnAddress => $return_address } ); w parametrze przekazuje sie tablice haszujaca i nie interesuje Cie nawet kolejnosc parametrow. Niestety w php za diabła nie mogę tak zrobić. php $document->Envelope->Insert(); $document->Envelope->ReturnAddress=$return_address; $document->Envelope->Address=$address; jest to o wiele mniej wygodne a poza tym nie jestem pewny czy zawsze moge wszystkie parametry wywołania metody zastąpić właściwościami obiektów. Aktualnie robie korespondencje seryjną. To już jest prawdziwy hardcore. Tam tych parametrów do metod jest cała masa i uzycie właściwości jest na maksa niewygodne (jeśli wogóle możliwe - do tej pory nie zadziałało mi więc nie wiem). Inna sprawa to stałe VB takie jak wdXXX - muszę je eksperymentalnie wypróbowywać, ale to już bardziej problem VB. Jeśli ktoś ma dostep do jakiś bardziej skomplikowanych przykładów do php + OLE to byłbym wdzieczny za pomoc. Pozdrawiam Łukasz |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy robisz w ten sposb ale proponuje tworzyc makra rejestrowane i na ich podstawie sprawdzic jakie obiekty i metody sa wywolywane.
Pozniej wystarczy to przeniesc na php. W msdn.com jest takze wiele informacji na temat stalych i ich wartosci oraz samych obiektow oraz ich metod dostepnych w Officie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie robię to w ten sposób, jednak problem tkwi właśnie w przenoszeniu kodu do php :|
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Nie mogąc sobie poradzić z korespondencją seryjna z Worda
http://forum.php.pl/viewtopic.php?t=8451 postanowilem uzyc Makr Worda. Stworzylem makro generujące korespondencje seryjna. Z php generuje sobie plik CSV, ktory jest zrodlem danych. Tworze sobie obiekt COMowy odpalam makro i zapisuje utworzony dokument. Tak wyglada teoria, w praktyce jest troche gorzej Kod: $word = new COM("word.application") or die("Unable to instantiate Word"); $word->Visible = 0; $word->DisplayAlerts = 0; //plik z Makrem $document = $word->Documents->Open($temporary_file_name1) or die("Cannot open file"); $word->Run("Makro1"); $word->Documents[1]->SaveAs($temporary_file_name1); $word->Quit(); działa pieknie z lini poleceń. z browsera już nie (wypluwa pusty plik). Dla mnie to jest totalna paranoja. Siedze nad tym od 2 dni i nie mam pojecia co to może być. Byłbym wdzięczny za jakieś wskazówki bo może błądze bez sensu. Łukasz |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:16 |