2012-01-05 18 views
9

Czy istnieje sposób, aby programowo utworzyć (po stronie klienta lub serwera (PHP)) obraz z określonej strony DIV lub kompletnej (strony internetowej)? Obecnie tworzę stronę internetową z bezpłatnymi kuponami. Chodzi o to, kiedy użytkownik końcowy klika przycisk "Drukuj", aplikacja otwiera nową kartę/okno z wybranymi kuponami jako pojedynczym obrazkiem (JPG, PNG lub itd.) w formacie A4 gotowym do druku. Każdy kupon ma swoje własne dane (nazwa artykułu, cena, opis itp.), Więc muszę to zrobić programowo nad zaprojektowanym przeze mnie szablonem kuponu.Programowo utworzyć obraz ze strony internetowej lub pojedynczego DIV

Nie proszę o pisanie kodu, tylko po to, aby zaproponować rozwiązanie, które mógłbym zastosować/rozwinąć. Jeśli jeszcze nie istnieje, prześlemy/opublikuję go za darmo :)

Aktualizacja: Zrobiłem to z biblioteką PHP GD :) Nadal niezadowolony z pomysłu użycia obrazów zamiast PDF, ponieważ każde drukowanie daje wyniki z różnych Rozmiary kuponów (obrazy) na różnych komputerach. Dlatego PDF może być lepszym rozwiązaniem. Możesz zobaczyć/przetestować go na demo.svikuponi.ba - Wystarczy wybrać kilka kuponów i kliknąć przycisk PRINTAJ powyżej.

+3

Byłoby znacznie lepiej (i łatwiej) wydrukować pliki PDF zamiast obrazów; istnieje wiele metod robienia tego z PHP lub przez konwersję HTML. – Viruzzo

+0

Witryna powinna być tak prosta, jak to tylko możliwe, zaprojektowałem ją tak, aby starsze osoby (nie eksperymentujące) mogły wykonać proste czynności: wybieranie i drukowanie kuponów. To dlatego preferuję format obrazu (plik PDF musiałby mieć zainstalowaną Adobe i ostatecznie przeglądarka wyświetliłaby okno pobierania (wierzę, obserwowałem kilka osób zagubionych przez to wszystko :)). – AlenBer

+0

Po prostu obraz będzie: Naciśnij: Control + P – AlenBer

Odpowiedz

2

w PHP, istnieje wiele obrazów związanych funkcje, takie jak imagettftext() w GD biblioteki o szczegóły, to sprawdzić http://php.net/manual/en/book.image.php jeśli GD nie jest wystarczająca, można spróbować Imagick oraz

dla szablonu, wy możesz spróbować utworzyć prawdziwy uchwyt kolorów w php ze swojego pliku (obrazu) i dodać część tekstową lub coś innego z różnymi efektami i kodami kreskowymi itp.

, ale w twoim przypadku sugerowałbym dynamiczne tworzenie PDF, ponieważ byłoby lepiej z formatowaniem zamiast zwykłego obrazu, pdf lib: http://www.fpdf.org/

+0

Czy to nie oznacza, że ​​użytkownik końcowy musiałby zainstalować Adobe PDF! Szukałem formatu obrazu tylko dlatego, że nie musi on mieć niczego zainstalowanego w przeglądarce, a szerokość/wysokość strony również byłaby generowana automatycznie, aby użytkownik końcowy nie martwił się o prawidłowe jej wypunktowanie. – AlenBer

+1

Wierzę, że PDF to format szeroko stosowany i bardzo niewiele komputerów nie ma czytnika PDF, podobnie jak flash. ale w każdym razie możesz nadal używać mojej sugestii na szablonie obrazów GD + część – tom91136

4

Oto świetny sposób na tworzenie obrazów po stronie klienta: http://smus.com/screen-capture-for-chrome-os

Można wziąć to i stworzyć aplikację internetową, która będzie działać dobrze na WebKit (dla innych przeglądarek - Zajrzę w JS polyfills).

1

możesz łatwo mieć obraz tła swojego tokenu/kuponu i nakładać tekst za pomocą niektórych zmiennych php.

Uważam, że możliwe jest również stworzenie unikalnego kodu kreskowego z obrazem php.

+0

Miałem ten sam pomysł, mając domyślny szablon i po prostu przewyższałem nad nim dane tekstowe. Czy lepszą praktyką jest przetwarzanie po stronie serwera lub w jakiś sposób po stronie klienta! – AlenBer

+0

strona klienta zmniejszyłaby obciążenie serwera, ale wtedy wszyscy użytkownicy muszą spełniać "wymagania strony klienta", tak jak niektóre aplety java – tom91136

+0

poleganie wyłącznie na kliencie nie zawsze jest dobrym pomysłem, nie ma gwarancji na javascript. po stronie serwera jest więcej obciążenia, ale dla twoich potrzeb nie zajmie to dużo czasu, ponieważ jest to po prostu echo zmiennych do ekranu i ewentualnie tworzenie obrazu. chyba że twój kupon zostanie pobrany przez miliony, oddałbym głos na serwerze. – ChelseaStats

1

Możliwe jest pobranie screenshot ze strony internetowej, ale jest to dość kłopotliwe. Musisz uruchomić przeglądarkę, aby wyświetlić stronę i uzyskać zrzut ekranu.

Prawdopodobnie lepszym rozwiązaniem jest przeanalizowanie niektórych specyfikacji i podanie ich kilku funkcjom: GD lub Imagick. Jest to mniej wszechstronne, ale łatwiejsze w zarządzaniu.

4

Czy ktoś wspomnieć html2canvas i/lub jsfeedback?

Tworzy zrzut ekranu strony całkowicie w javascript, a następnie można wysłać do serwera za pośrednictwem ajax ..

Oczywiście, wsparcie CSS brakuje niektórych rzeczy.

Powiązane problemy