Tenho usado o wkthmltopdf para converter documentos html em PDF dinamicamente no meu servidor web linux. O programa originalmente precisava do X11 ou servidor X semelhante para rodar corretamente, mas através de muitas solicitações dos desenvolvedores para que ele rodasse em servidores sem GUI, tenho certeza de que ele roda um servidor X virtual na versão estática . Tenho usado a versão estática (autônoma) do programa e funciona muito bem! Eu colocaria o arquivo executável em uma pasta e executaria:
./wkhtmltopdf file1.html file2.pdf
No entanto, gostaria de instalar este programa em todo o sistema. Usei o apt-get install wkhtmltopdf
(acabei de instalar ontem) e como estou rodando em um sistema de 64 bits, também precisei apt-get install ia32-libs
. Após a instalação, posso encontrar a versão assim:
wkhtmltopdf --version
resultado:
Name:
wkhtmltopdf 0.9.9
License:
Copyright (C) 2008,2009 Wkhtmltopdf Authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
Authors:
Written by Jakob Truelsen. Patches by Mário Silva, Benoit Garret and Emmanuel
Bouthenot.
Agora, quando tento executar o programa instalado via aptitude, recebo o seguinte erro:
wkhtmltopdf: cannot connect to X server
Alguém sabe como posso consertar isso? Eu acho que esta versão está faltando um servidor X virtual ou algo assim.
fonte
/usr/bin/
diretório, poderá usá-lo de qualquer lugar. Eles adicionaram um servidor x virtual ao executável estático, portanto, não há necessidade de fazer o script de wrapper.If you get the error "Cannot connect to X server" then continue to number 6.
deveria significar? Estou muito confuso com isso. Você quer dizer para continuar para o número 7?Isso resolveu o problema para mim:
fonte
sudo yum install xorg-x11-server-Xvfb
resp.sudo dnf install xorg-x11-server-Xvfb
.Tentei fazer,
sudo apt-get install wkhtmltopdf
mas sem sucesso. Em vez disso, recomendo que você tente:Baixe o executável mais recente (.11 rc1):
wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
descompacte-o:
tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
renomeie-o:
mv wkhtmltopdf-i386 wkhtmltopdf
chmod para executável:
chmod a+x wkhtmltopdf
coloque-o em / usr / bin:
sudo mv wkhtmltopdf /usr/bin
fonte
https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
Acabei de fazer:
1- Para baixar dependências wkhtmltopdf
# apt-get install wkhtmltopdf
2- Baixar da fonte
# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb
# dpkg -i xxx.deb
3- Experimente
# wkhtmltopdf http://google.com google.pdf
Está funcionando bem
Funciona!
fonte
apt-get install -f
após instalar o pacote para obter as dependências. Caso contrário, funcionou como um encanto. Muito prefere este método aos outros descritos.wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
seguido porsudo dpkg --install wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo mv wkhtmltopdf /usr/bin
partir do/usr/local/bin/
diretório, mas funcionou muito bem! Eu tentei todos os outros métodos nesta página sem sorte antes.Encontrei um método para resolver esse problema sem um servidor X falso. Na versão mais recente do wkhtmltopdf não precisa do servidor X para funcionar, mas não nos repositórios oficiais do Linux.
Solução para Ubuntu 14.04.4 LTS (confiável) i386
Solução para Ubuntu 14.04.4 LTS (confiável) amd64
O usuário felixhummel obteve uma solução muito boa, mas o repositório com o utilitário mudou.
fonte
Expandindo a resposta de Timothy ...
Se você é um desenvolvedor da web que deseja usar wkhtmltopdf como parte de seu aplicativo da web, pode simplesmente instalá-lo em sua
/usr/bin/
pasta da seguinte forma:Agora você pode executá-lo em qualquer lugar usando
wkhtmltopdf
.Eu pessoalmente uso a biblioteca Snappy em PHP. Aqui está um exemplo de como é fácil criar um PDF:
fonte
Atualize para a versão wkhtmltopdf mais recente do SourceForge (0.12 no momento da redação deste artigo). Não é necessário um servidor X para funcionar.
Exemplo para Ubuntu 14.04:
fonte
para 14.04.1-Ubuntu https://wkhtmltopdf.org/downloads.html
fonte
fonte
O problema provavelmente está na versão antiga do wkhtmltopdf - a versão 0.9 do repositório de distribuição requer a execução do servidor X, mas a versão atual - 0.12.2.1 não o exige - pode ser executada sem controle.
Baixe o pacote para sua distribuição em http://wkhtmltopdf.org/downloads.html e instale-o - para Ubuntu:
fonte
wkhtmltopdf
>0.11
não tem esseX-server
problema.Portanto, instalando
0.12.2.1
em um servidor Linux.Primeiro instale o servidor xvfb:
Obtenha a versão necessária de wkhtmltopdf em http://wkhtmltopdf.org/downloads.html
Instale wkhtmltopdf:
ou instale com
wget
Instale a dependência (se necessário):
Crie um link simbólico em
/usr/local/bin/
:Agora tente abaixo e deve funcionar,
fonte
Acabei de descobrir que posso simplesmente mover o executável estático para o
/usr/bin/
diretório e executá-lo de qualquer lugar.fonte
Recomenda-se usar pelo menos 0.12.2.1.
A partir de wkhtmltopdf> = 0.12.2, ele não requer mais o servidor X ou emulação. Você pode baixar a nova versão em http://wkhtmltopdf.org/downloads.html
fonte
Segui as instruções aqui e fiz wkhtmltopdf funcionar para mim, mas gostaria de oferecer um pouco da perspectiva que descobri enquanto fazia minha própria dancinha com
wkhtmltopdf
-xvfb
.Isso é importante porque o mesmo motivo que faz com que ele lance o
cannot connect to X server
erro infame também está fazendo com que seja executado com limitações de servidor, mesmo se você fornecer um servidor X. Essas limitações incluem não ser capaz de obter várias fontes de entrada, definir cabeçalho e rodapés, etc. (verifique a seção Funcionalidade reduzida do manual ).wkhtmltox
por si só não requer um X11, porém está usando bibliotecas QT que requerem. Em novas versões do wkthmltox, os desenvolvedores fizeram um patch para o QT que permite que ele seja executado com um X11.Atualmente, algumas versões são construídas contra o QT corrigido e outras não. Você pode verificar sua versão executando
wkhtmltopds --version
. Deve haver uma linha no final dizendoCompiled against wkhtmltopdf patched qt.
Então, para concluir, se você instalar e usar uma versão que usa as bibliotecas corrigidas ela deve funcionar em um servidor linux sem o
xvfb
servidor, como posso confirmar.fonte
solução para Centos7 :
Encontramos este problema dentro de contêineres docker e a instalação acima tem wkhtmltopdf com QT corrigido
fonte
sudo rpm -Uvh https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
Preste atenção: seu arquivo pode ser
wkhtmltopdf.sh
ouwkhtmltopdf
, verifique-o na segunda etapaVocê deve copiá-lo para o diretório: / usr / local / bin , verifique se ele é executável e adicione o link simbólico de wkhtmltopdf.sh como:
1- o comando:
2 - insira o binário no diretório / usr / bin para que o navegador não tenha permissão para executar neste diretório. Você deve copiar o wkhtmltopdf.sh para o diretório / usr / local / bin porque o navegador tem permissão neste diretório como:
3 - Após verificar o binário terá permissão de execução como:
4 - agora você pode testar, funciona como:
faça o download do pdf no diretório atual do seu terminal
5 - Opcional, agora você pode adicionar link simbólico em seu diretório / usr / local / bin como
fonte
/usr/bin/
/usr/bin/wkhtmltopdf
wkhtmltopdf http://www.google.com test.pdf
dica: informações detalhadas deste linkfonte
Basta instalar a versão 0.12.4 ou superior. Isso parece resolver o problema.
Consulte Como posso instalar o wkhtmltopdf mais recente no Ubuntu 16.04? .
fonte
Se você configurar wkhtmltopdf para Rails ou algo em Centos, você pode seguir estas etapas abaixo:
Em centos server bash.
wget link_of_wkhtmltopdf_rpm.rpm
rpm -ivh link_of_wkhtmltopdf_rpm.rpm
which wkhtmltopdf
=> Você obterá o caminho de wkhtmltopdf.
Configuração para wicked_pdf ou pdfkit com caminho na etapa 4. Esta é a configuração de amostra com wickedpdf. config / initializers / wicked_pdf.rb
Reinicie o servidor.
FEITO.
fonte
Para uso de 64 bits:
fonte
Apenas diga ao backend Qt para não usar o X:
fonte