Drukowanie bezpośrednio do PDF
2010-02-03 · rubyonrails
W aplikacjach webowych format PDF ugruntował już swoją pozycję. W większości przypadków jest formatem w którym “drukowane” są zarówno faktury, jak i wszelkiej maści dokumenty informacyjne. W przypadku frameworka Ruby on Rails do tej pory korzystałem z biblioteki Prawn.
Niestety możliwości tej biblioteki są dość ubogie jeśli chodzi o tworzenie dokumentów mocno customizowanych, wymuszając wręcz rysowanie co bardziej skomplikowanych elementów wizualnych. W powiązaniu z wymaganiami klienta powodowało to ciągłą, syzyfową pracę, by zapewnić poprawne wyświetlanie dokumentów gdzie treść oraz jej rozkład mógł się zmieniać.
Zrażony tymi problemami postanowiłem znaleźć rozwiązanie bazujące na htmlu jako formacie źródłowym dla PDF. Skierowałem swoje pierwsze kroki w kierunku GitHuba i tam też znalazłem gotowe rozwiązanie moich problemów w postaci plugina.
Plugin nazywa się Wicket PDF i jest tak naprawdę prostym wrapperem dla programu uruchamianego z linii poleceń wkhtmltopdf (bazujący na webkit).
Instalacja rozwiązania polega na zainstalowaniu wkhtmltopdf (ze źródeł, bądź z prekompilowanych binarek)
w przypadku mojego systemu operacyjnego(Mac OSX) wygląda to następująco:
możemy oczywiście przetestować funkcjonowanie tego programu:
lub
następnie instalujemy sam plugin:
tak zainstalowany plugin można bez problemu wykorzystać w następujący sposób:
generowanie linków dla dokumentów pdf może wyglądać następująco:
Lektura obowiązkowa: http://github.com/mileszs/wicked_pdf http://code.google.com/p/wkhtmltopdf/
http://andrzejsliwa.com/2010/02/03/drukowanie-pdf/
Autor: Andrzej Sliwa
Programista, pasjonat, scrum master, konsultant IT. Pasjonuje się językami dynamicznymi, metodami wytwarzania oprogramowania oraz metodologiami prowadzenia projektów, szczególnie dbający o jakość wytwarzanych rozwiązań. Obecnie koncentruje się na rozwoju w zakresie wykorzystywania frameworka Ruby on Rails, skalowanych rozwiązań, cloud computingu i języków funkcyjnych.