2013-03-14 23 views
13

Szukam dobry, open source, generator/biblioteka PDF, który przekonwertuje html (z stylowaniem itp.) Do pliku PDF.Google App Engine Konwerter PDF

Wymagania:

  • Musi być Java czy Python i uruchomienia na Google App Engine.
  • Musi być bezpłatny, z otwartym kodem źródłowym.
  • Musi być łatwy w użyciu/zużyty.

Tak Próbowałem sam tego szukać - wypróbowałem wiele "rozwiązań", które znalazłem w Google itp. Żaden jeszcze mnie nie zadowala. Wiele wydaje się niekompletnych, błędnych lub nie działa dobrze na GAE. Pomyślałem, że odwołam się do społeczności StackOverflow po opinie i sugestie.

+6

Czy patrzyłeś na Pisa https://pypi.python.org/pypi/pisa. Właściwie wspomnienie o narzędziach/bibliotekach, które przeglądasz, pomoże. –

+4

Należy wspomnieć, co próbowałem, w przeciwnym razie to pytanie może zostać zamknięte. – Lipis

+0

Witam, otrzymałeś rozwiązanie do wdrożenia JAVA. Jeśli tak, proszę dać mi znać. –

Odpowiedz

10

Do HTML/obrazu do PDF używam biblioteki Python http://www.xhtml2pdf.com/, która używa Pisa, Reportlab, pyPdf i html5lib działa na GAE. Używałem go do generowania bardzo ładnych plików PDF z osadzonymi obrazami, a gdy zorientowałem się, jak uzyskać prawidłowy rozmiar strony, okazało się, że jest to bardzo dobra biblioteka.

Musisz bibliotekę xhtml2pdf i jego zależności: https://github.com/chrisglass/xhtml2pdf

wrzuciłem razem jakiś przykład kodu w Pythonie i umieścić go w tym pastebin: http://pastebin.com/FFEZjNs3

pdf_data można dostać w końcu jest binarny Dane pliku PDF. Plik html_data, który podajesz pisa, jest naprawdę dowolnym ciągiem zawierającym dokument HTML.

Istnieje kilka zalecanych rzeczy do uwzględnienia w kodzie HTML, aby uzyskać dobrze sformatowany wynik PDF. Oto przykładowy dokument HTML podobny do używanego przeze mnie szablonu bazowego. Uwaga pole meta autora i CSS @Page: http://pastebin.com/q1wRm9nJ

Oto docs o kompatybilnym CSS i HTML: https://github.com/chrisglass/xhtml2pdf/blob/master/doc/usage.rst#supported-css-properties

Możesz dołączyć obrazów przy użyciu adresu URL obrazu zewnętrznego lub użyć a dataUri i xhtml2pdf mają funkcję tworzenia tych "pisa.makeDataURI()".

Mam nadzieję, że to pomaga.

+0

Doskonała odpowiedź, to było to, czego potrzebowałem! – Fortes