Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie pliku jpg
Forum PHP.pl > Forum > PHP
kristaps
Witam, mam pewien problem, w zasadzie na razie zastanawiam się nad wykonaniem pewnego skryptu. Jak wiadomo można generować pliki graficzne zawierające określony tekst. Można użyć do tego np. funkcji imagettftext. Jednak co w momencie gdybym chciał zapisywać w ten sposób tabele w html (przetworzone przez przeglądarkę)? Aktualnie zapisuje jakieś dane w exelu, a następnie zapisuje je w edytorze graficznym. To bardzo żmudne i długotrwałe.

Może ktoś podsunąć mi rozwiązanie? Obraz na pewno będzie miał stałą szerokość, a kod tabeli przed wprowadzeniem zostanie przefiltrowany z zbędnych elementów.
CuteOne
Witam,

w czym problem? Masz do dyspozycji całą paletę funkcji umożliwiających rysowanie(ImagickDraw) wystarczy trochę pracy i napisanie klasy generującej tabelę nie powinno stanowić większego problemu

Pozdrawiam
Brick
Pewnie chodzi ci o to żeby z całego HTML'a jaki jest na ekranie stworzyć jpg bez zabawy z rysowaniem tabelek itd?
Nie wiem czy to jest możliwe z użyciem samego PHP. Do PDFa są biblioteki ale do JPG nie znalazłem.

Jest takie narzędzie on-line ale zapewne używają jakiegoś PERLa czy czegoś innego do tego:
http://www.coolutils.com/online-html-converter.php#

Jeżeli chcesz mieć to uruchomione na serwerze to jest taka funkcja która zapisuje cały screen: imagegrabscreen() z biblioteki GD ale działa pod Windows tylko.

Jest też coś takiego jak ACA WebThumb ActiveX.
http://www.acasystems.com/en/web-thumb-activex/
ale to jest wtyczka ActiveX

Możesz zrobić z HTML'a PDF z wykorzystaniem PHP html2ps a potem go zamienić na JPG. Są biblioteki pod Linux które zamieniają postscript na JPG. Korzystałem z tego i działa dobrze.

Jest też Painty PHP
http://www.rabuser.info/painty.php#english
Ale on uwzględnia tylko najważniejsze tagi (P, BR, H,..) bez tabelek.

Wybór rozwiązania zależy od tego czy chcesz tego używać lokalnie (na swoim komputerze), czy na jakimś zewnętrznym serwerze (Linux / Windows?)
kristaps
Witam, mam nadzieję, że ciut lepiej opiszę swój problem. Dokładnie chodzi o to, bym mógł przefiltrować mniej więcej taki kod:

Kod
<TABLE style="WIDTH: 740px; DISPLAY: inline" class=x-grid cellSpacing=1 cellPadding=1 hasbox="2">
<TBODY hasbox="2">
<TR class=x-grid-header>
<TD class=x-grid-col></TD>
<TD class=x-grid-col>Typ</TD>
<TD class=x-grid-col>Moc kW</TD>
<TD class=x-grid-col>Moc KM</TD>
<TD class=x-grid-col>Poj. skok.</TD>
<TD class=x-grid-col>Cylindry</TD>
<TD class=x-grid-col>Rok od</TD>
<TD class=x-grid-col>Rok do</TD>
<TD class=x-grid-col>Silniki</TD></TR>
<TR class="x-grid-row x-grid-row-alt" hasbox="2">
<TD style="WIDTH: 200px" class=x-grid-col hasbox="2">2.8 V6</TD>
<TD style="WIDTH: 60px" class=x-grid-col>150</TD>
<TD style="WIDTH: 60px" class=x-grid-col>204</TD>
<TD style="WIDTH: 80px" class=x-grid-col>2792</TD>
<TD style="WIDTH: 60px" class=x-grid-col>6</TD>
<TD style="WIDTH: 60px" class=x-grid-col>04-2000</TD>
<TD style="WIDTH: 60px" class=x-grid-col>05-2006</TD>
...


pozbywając się zbędnych elementów/znaczników, a gotowy rezultat wraz z css zapisać do jpg. Właśnie tak działa HTML Converter, który podesłałeś. O ile przefiltrowanie nie stanowi dla mnie większego problemu, o tyle zapisanie przetworzonego kodu html do jpg jest czymś nowym. Tak chciałbym to mieć u siebie na serwerze.

Okno do wklejenia kodu > Czyszczenie i stylowanie > .jpg - także chciałbym wiedzieć jak to ugryźć.

Pozdrawiam i dziękuję za pomoc.
Brick
Ale nie napisałeś czy "u siebie na serwerze" oznacza twój serwer nad którym masz pełną kontrolę czy jest to zewnętrzny/hostingowy serwer?
No i co jest na tym serwerze - windows czy linux?
kristaps
Fakt. Mam dostęp do paru hostingowych serwerów, typu nazwa.pl. Mogę postawić swój serwer, żaden problem.
Brick
Jeżeli możesz postawić swój serwer to:
1. Instalujesz bibliotekę do generowania PDF z HTML. W 2009 roku testowałem różne biblioteki i najlepiej wypadł MPDF ale coś widze że strona projektu nie działa. Możesz spróbować PHP html2ps ale od razu sprawdź czy nie ma problemów z polskim czcionkami. W razie potrzeby moge ci wysłać lib do tego MPDF którego używam. Całkiem dobrze radzi sobie z tabelkami i nie miał problemów z polskimi znakami. Tutaj o tym pisałem dokładnie, podałem nawet przykłady użycia: http://forum.php.pl/index.php?showtopic=5438&st=180

2. Instalujesz na serwerze program konwertujący PDF do JPG. Jest tego sporo w sieci ale szczegółów nie znam bo to kolega instalował na serwerze linux. Mogę go zapytać co poleca. W każdym razie działa dobrze, mamy przećwiczone.

3. Uruchamiasz swój skrypt który:
- czyści tabelkę z niepotrzebnych elementów i wrzuca ją do mPDF
- mPDF generuje plik PDF który zapisujesz gdzie chcesz
- uruchamiasz w skrypcie za pomocą funkcji exec() program konwertujący PDF do JPG, który od razu go zapisuje gdzie mu każesz.
No i gotowe.

To rozwiązanie mam sprawdzone i wiem że działa.

Na serwerze hostingowym nie wiem czy ci się to uda. Tzn na pewno nie zainstalujesz swojego soft'a konwertującego PDF do JPG ale może mają jakiś do dyspozycji.

Ten program konwertujący PDF do JPG nazywa się imagemagick
d3ut3r
linkowany wcześniej:

http://www.coolutils.com/online-html-converter.php#

ma też wersję desktopową, co ciekawe jest tam napisane:

Convert HTML files via command line?

więc idealne rozwiązanie, to postawić swój serwer na windows i użyć tej aplikacji.
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.