Generowanie pdfa w railsach
Przy nowej aplikacji przyszło mi generować pdfa. Zarezerwowałem trochę czasu na to przewidując, że będą problemu. Po szybkim rozpoznaniu znalazłem wiele sposobów.
Sprawdziłem kilka z nich i okazało się ze jest problem z polskimi znakami, czego można było się spodziewać. Kolejne pare pytań do wujka google i w miare sensowny okazał się htmldoc. W skrócie przy htmldocu sprawa polega na zainstalowaniu zewnętrznej aplikacji, przygotowaniu bardzo ubogiego html i program htmldoc konwertuje html do pdfa. Na pierwszy rzut oka wszystko ok, instalacja pod windowsem poszła w miare bezproblemowo, potem stworzenie html i już ładnie śmiga.
Po próbie generowania wszystkiego przez metodę kontrolera okazuje się że IO.popen jest wykonywany po tej metodzie i nie można w ciele metody przekierować przeglądarki do pdfa bo go jeszcze nie ma.
Wszystko to dotychczas odbywało się lojalnie, próba zainstalowania htmldoca na serwerze site5 na początku się nie powiodła, ale po wymienieniu jednego maila z supportem wszystko się wyjaśniło.
Wpisując polecenie prosto z shella wszystko działało natomiast z rubego nic sie nie generowało. Po dokładnym przegrzebaniu się przez dokumentacje okazało się ze jest parametr HTMLDOC_NOCGI który należy ustawic na true. Tak też zrobiłem, ale… nic się nie zmieniło. Pomoc jaka przyszła z forum htmldoca też nie wiele pomogła.
Po 2 dniach wielkich problemów, za namową znajomego powróciłem do fpdf, która w rubym jest jako rpfdf. Opanowanie podstawowych metod i wygenerowanie czcionek z polskimi ogonkami zajeło mi 3 godziny. Instalacji na serwerze na dobrą sprawę nie ma, gdyż rfpdfa załącza się jako normalną klasę rubego. Ilość czcionek jest ograniczona tylko przez posiadanie plików tff. Dotychczas generowałem tylko ariala w dwóch wersjach, ale inne nie powinny powodować problemów.
Podsumowując w moim przypadku htmldoc okazał się wielkim nie wypałem, mimo początkowych szybkich rezulatatów, natomiast prawdziwym hitem okazało się rfpdf. Wszystko szybko, łatwo i przyjemnie, bez uciekania się do zewnętrznych aplikacji. Polecam wszystkim!
Wkrótce powinno uzbierać sie parę czcionek, które udostępnie “dla leniwych”.