2015-12-28 14 views
9


wkhtmltopdf generuje z formatu PDF na Ubuntu bez X Server

Czy to możliwe, aby ustawić format PDF do generowania w wkhtmltopdf?
Z mojego komputera wkhtmltopdf generuje sformatować "PDF-1.4"

enter image description here

Ale zdalnego serwera Ubuntu 14.04, który jest generowanie pdf z 'wirtualnym' X serwera przy użyciu xvfb dając formatu PDF-0:

enter image description here


Jedynym problemem jest otwieranie wygenerowanego pliku pdf w Chrome :)
Chrome nie może otworzyć PDF-0.

Dzięki

+0

wkhtmltopdf jedynie ustawia pole twórca odpowiednio od wersja 0.12.1 (w szczególności od [to], (https://github.com/wkhtmltopdf/wkhtmltopdf/commit/a762a849a64c2bd4e697d7ac37e7be5e59300bc6) zmian). Podejrzewam, że musisz uruchomić starszą wersję na swoim zdalnym serwerze. Czy masz szansę na aktualizację? - Nadal uważam, że główną przyczyną jest wewnątrz [QPrinter] (http://doc.qt.io/qt-5/qprinter.html), więc twój problem może również wynikać z różnych wersji QT, które używasz. Czy możesz opublikować pierwszy wiersz wynikowego pliku PDF, jak pokazano w edytorze tekstu?Koduje wersję PDF. – morido

+0

Wersje uruchomione na moim komputerze lokalnym i serwerze są takie same. 0.12.2.4 dokładnie – DAKZH

+0

Co prowadzi nas do wniosku, że twój problem jest najprawdopodobniej zakorzeniony w QT (lub nawet gdzieś dalej w łańcuchu). Czy możesz zaktualizować biblioteki QT na serwerze i spróbować ponownie? – morido

Odpowiedz

2

to wygląda PDF wynikające z Xvfb może nie być w 100% poprawne. Występują pewne problemy z metadanymi. Na przykład brakuje takiego twórcy. Również PDF-0 nie wydaje się być prawidłową wersją PDF. Mogą wystąpić inne problemy z dokumentem. To byłby prawdopodobnie powód, dla którego wygenerowany plik nie pojawia się w Chrome.

Dobrym sposobem na sprawdzenie dokumentu byłoby użycie narzędzia do inspekcji programu Acrobat. Sprawdza dokument pod kątem potencjalnych problemów i może stanowić wskazówkę co do tego, co się dzieje. Narzędzie znajduje się w sekcji "Drukowanie" w programie Acrobat. Profil do uruchomienia nosi nazwę "Problemy ze składnią raportów w formacie PDF". Jestem pewien, że istnieją inne narzędzia, które mogą również wyjaśnić, co jest nie tak z dokumentem.

Ta sekcja powinna zapewnić rozwiązanie problemu. Jak wspomniano w komentarzach poniżej, zaktualizowanie wersji QT z wersji 4.8.6 do nowszej powinno rozwiązać problem. Wydaje się, że działająca konfiguracja działa w wersji 5.3.2, natomiast niedziałająca jest w QT 4.8.6.

+0

Dziękuję. Tak, to zdecydowanie problem z generowaniem pdf przez xvfb. W rzeczywistości analizowałem pdf z Acrobatem, a wyniki są obrazem. Czy możesz pomóc w znalezieniu przyczyny, dla której xvfb generuje zły plik PDF, podczas gdy w moim lokalnym komputerze generowanie plików PDF jest dobre. – DAKZH

+0

Mogę spróbować. Czy możesz podać mi więcej szczegółów na temat twojej instalacji, lub zaktualizować swój OP z tym? Na komputerze lokalnym używasz pliku wkhtmltopdf do generowania plików PDF. Jaki jest twój lokalny bieg? Następnie na zdalnej maszynie z systemem Ubuntu używa się pliku wkhtmltopdf do generowania plików PDF. Używasz xvfb do zdalnego połączenia się z nim. Czy to założenie jest poprawne? Czy masz szansę spróbować zalogować się na serwerze lokalnie, aby wyeliminować xvfb z obrazu? Proszę poprawić mnie, jeśli moje założenia dotyczące konfiguracji są błędne. –

+0

Użyłem [tej konfiguracji] (https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server) do uruchomienia pliku wkhtmltopdf bez X serwera na komputerze serwera. – DAKZH

0

Bounty odpowiedź:

Widocznie QT 4 i 5 zachowują się inaczej QT podczas drukowania do pliku PDF. W ten sposób problem można rozwiązać, aktualizując biblioteki QT na swoim serwerze.

Można rozważyć złożenie błąd przed wkhtmltopdf od swojej opisanego zachowania oczywiście czyni to niezgodne z Qt 4.

Zobacz również oryginalny komentarz here.

Powiązane problemy