2011-02-11 35 views
5

Potrzebuję przekonwertować plik html do dokumentu. Używam html2pdf do konwersji PDF.Jak przekonwertować html do dokumentu w php

Czy istnieje taki sam rodzaj biblioteki dla html2doc?

(PS musi być free/open source)

EDIT

Po Mark Eirich komentarzu ..

Oto dwa screeny. Dokument Word nie jest prawidłowo wyrównany. Sprawdź y-scroll w dokumencie tekstowym. WORD document, check y scroll..

html file, on browser..

tag ciała jest: -

<body style="margin-left:350px; margin-right:350px;"> 

próbowałem go, ale bez skutku dostosować ..

EDIT 2

po Mark Eirich sekundę komentarz, który przyszedł wiedzieć, że słowo bierze rzeczy w pikselach nie ja n% wiek .. Mam ostatni numer z powrotem do ziemi .. Każda pomoc .. proszę sprawdzić dwa zrzuty ekranu. Różnica polega na skrzyni zewnętrznej. i ten html wygenerowany dokument wygląda dziwnie.

Original word file

html generated doc file

+0

Program Microsoft Word odczytuje kod HTML bez żadnej konwersji. Po prostu zakończ nazwę pliku .doc i gotowe. –

+0

@ Mark Eirich nie działa poprawnie. Sprawdź edytuj część ... –

+0

@piemesons: Smutek. Nie mam dużego doświadczenia z Wordem.Jednak spróbuj tego (1) ustawić szerokość na ciele, (2) ustawić marginesy w calach "w" lub centymetrach "cm", lub (3) dodać dodatkowe opakowanie wewnątrz ciała i ustawić margines/szerokość na nim ; być może Word ignoruje tag ciała. Możesz także spróbować wygenerować kod HTML w programie Word, a następnie wyświetlić go, aby zobaczyć, co robi program Word, aby ustawić marginesy. –

Odpowiedz

1

w celu konwersji do programu Microsoft Word COM potrzebny jest włączony serwer (z systemem Windows i Office na nim). Jeśli masz taki serwer, powinien działać !. Przeczytaj http://php.net/manual/en/book.com.php, aby uzyskać szczegółowe informacje.

W przeciwnym razie najlepszym ujęciem w html2doc jest html2rtf, co można uzyskać za pomocą biblioteki, takiej jak http://paggard.com/projects/rtf.generator/ lub http://sourceforge.net/projects/phprtf/.

Następnie po utworzeniu RTF służysz go do przeglądarki z nagłówkiem doc

header("Content-type: application/vnd.ms-word"); 
header("Content-Disposition: attachment;Filename=document_name.doc"); 

Jeśli użytkownik ma słowo to będzie otwarte do obsługi pliku.

Zapisanie rtf jako dokumentu jest ok, a słowo otworzy się w widoku układu bez żadnych skarg. Można również służyć HTML z powyższym nagłówku, ale problemem jest to, że słowo zostanie otwarty w widoku strony internetowej i to jest złe :)

+4

Poprosił o rozwiązanie, które jest bezpłatne/open source! –

+0

Co to jest "widok internetowy" i dlaczego jest zły? (Nie jestem zbyt obeznany ze słowem.) –

+1

phprtf jest open source, zarówno GPL, jak i LGPL, i jest właściwie dobrze połączone, to jest niebo w porównaniu z innymi bibliotekami php html2rtf, no cóż, te, które są technicznie html2rtf tylko w nazwie. – asnyder

5

Odpowiedź IMO byłoby, z następujących powodów:

dokumentów Microsoft Office są bardzo skomplikowane w sposobie projektowania, nie tylko w sformatowanym pliku z odniesieniami do obiektów, takich jak obrazy, w samym systemie istnieje system plików do zarządzania binarnymi danymi tych obiektów.

Pozwól mi przynieść cytat z naszym własnym Joela:

Jeśli zacząłem czytać te dokumenty z nadzieją na spędzenie weekendu pisząc jakiś fajny kod, który importuje dokumenty Worda do systemu bloga, lub tworzy Arkusze kalkulacyjne w formacie Excel z osobistymi danymi finansowymi, złożonością i długością specyfikacji prawdopodobnie wyleczyły cię z tego pragnienia. Zwykły programator byłoby stwierdzić, że binarne formaty Urzędu:

  • są celowo ukrywane
  • są wytworem obłąkanego umysłu Borg
  • zostały stworzone przez szalenie złych programistów
  • i są niemożliwe do odczytania lub utwórz poprawnie.

Byłbyś zły na wszystkich czterech liczy ....

Czytaj dalej w dół do możliwego rozwiązania:

Jeśli naprawdę chcesz, aby wygenerować fantazyjne sformatowany Słowo dokumenty, najlepiej jest utworzyć dokument RTF. Wszystko, co Word może zrobić, może być wyrażone w RTF, ale jest to format tekstowy, a nie binarny, więc możesz zmieniać rzeczy w dokumencie RTF i nadal będzie działać. Możesz stworzyć ładnie sformatowany dokument z symbolami zastępczymi w programie Word, zapisać jako RTF, a następnie za pomocą prostego zastępowania tekstu, zastępować symbole zastępcze w locie. Teraz masz dokument RTF, który będzie otwierać każdą wersję Worda.

@source: http://www.joelonsoftware.com/items/2008/02/19.html

Niektóre linki, które mogą Cię zainteresować wzdłuż swojej podróży:

Mimo, spróbuj otworzyć plik programu Word z WinRAR;) Może utworzenie archiwum z niektórych nagłówków, a następnie zmieniając rozszerzenie będzie wystarczające, Nigdy nie próbowałem

+0

Dlaczego głosowanie w dół? – RobertPitt

+2

moje myślenie jest takie, że ktoś podał link do działającego rozwiązania, a ty powiedziałeś, że to niemożliwe. Nie warto jednak głosić, ponieważ przeprowadziłeś całkiem niezłą dyskusję i lubiłem czytać wypowiedzi Joela w tej sprawie. – ajacian81