Sonntag, Dezember 8, 2019

KnpSnappyBundle – stderr: „wkhtmltopdf: cannot connect to X server“ stdout: „“

Ich versuche, die KnpSnappyBundle zum erstellen von PDF-Dateien von twig-templates.

Ich habe folgte diesem post zu installieren wkhtmltopdf und es funktioniert, wenn ich tun:

wkhtmltopdf http://www.google.com test.pdf

aber wenn ich versuche eine PDF-Datei erstellen aus einer controller:

$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView('AcmePDFBundle:Default:template.html.twig'),
'../app/var/PDFfiles/PDF.pdf'
); 

Ich bin immer diese Fehlermeldung:

request.CRITICAL: RuntimeException: The exit status code '1' says something went wrong:
stderr: "wkhtmltopdf: cannot connect to X server
"
stdout: ""
command: /usr/bin/wkhtmltopdf --lowquality '/tmp/knp_snappy532ca2272fba44.73835084.html' '../app/var/files/PDF.pdf'. (uncaught exception) at /home/me/MyServer/project/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php line 304 [] []

Irgendeine Idee wie es zu lösen?

Dies ist meine Konfiguration für KnpSnappyBundle:

knp_snappy:
    pdf:
        enabled:    true
        binary:     /usr/bin/wkhtmltopdf
        options:    []
    image:
        enabled:    false
        binary:     /usr/bin/wkhtmltoimage
        options:    []
InformationsquelleAutor Manolo | 2014-03-22

2 Kommentare

  1. 4

    Aufgelöst Installation einer vorkompilierten version. jetzt können Sie Ihre version von hier (inspiriert von diese out-of-date-Antwort ):

    http://wkhtmltopdf.org/downloads.html

    verändert und meine config.yml zu:

    knp_snappy:
        pdf:
            enabled:    true
            binary:     /usr/local/bin/wkhtmltopdf
            options:    []
        image:
            enabled:    false
            binary:     /usr/local/bin/wkhtmltoimage
            options:    []

    und jetzt funktioniert es!

    • was ist der Unterschied zwischen den oberhalb und unterhalb Methoden der installation und Nutzung ?
    • Als http://code.google.com/p/wkhtmltopdf/downloads/list link existiert nicht mehr, ich habe gerade installiert wkhtmltopdf mit einem apt-get install wkhtmltopdf Befehl. Das ist, warum es nicht funktioniert hat.
    • wkhtmltopdf hat ein neues Zuhause wkhtmltopdf.org
    • Die Projekt-URL geändert haben. Der wget-Befehl sollte in der folgenden Adresse downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/… und descompact die heruntergeladene Datei mit tar -xJf wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
  2. 0

    Müssen Sie kopieren es in das Verzeichnis : /usr/local/bin, machen sur, es ist ausführbar und fügen Sie den symlink von wkhtmltopdf.sh wie :

    1 – der Befehl :

    HTML:

    sudo apt-get install wkhtmltopdf

    2 – legen Sie eine Binärdatei im Verzeichnis /usr/bin so kann der browser nicht über die Berechtigung zum ausführen in diesem Verzeichnis.
    Sie müssen kopieren Sie die wkhtmltopdf.sh Verzeichnis /usr/local/bin, dass der browser die Berechtigung in diesem Verzeichnis wie:

    HTML:

    sudo cp /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf.sh

    3 – Nach der machen sur, die binären haben die Erlaubnis der Ausführung wie :

    HTML:

    sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh

    4 – so können Sie jetzt testen, es ist Arbeit wie:

    HTML:

    /usr/local/bin/wkhtmltopdf.sh http://www.google.com google.pdf

    machen, laden Sie die pdf-Datei in das aktuelle Verzeichnis im terminal

    5 – Optional
    nun kannst du den symlink im Verzeichnis /usr/local/bin wie

    HTML:

    ln -s /usr/local/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf

    6 – Kopie an die /usr/bin/wkhtmltoimage in /usr/local/bin/wkhtmltoimage wie:

    HTML:

    sudo cp usr/local/wkhtmltoimage usr/local/bin/wkhtmltoimage

    8 – stellen-sur-dies ist die ausführbare Datei zu:

    HTML:

    sudo chmod a+x /usr/local/bin/wkhtmltoimage

    7 – ändern Sie das Verzeichnis von Binär-in-Konfiguration von symfony in config/packages/knp_snappy.yaml :

    HTML:

    knp_snappy:
        pdf:
            enabled:    true
            binary:     /usr/local/bin/wkhtmltopdf
            options:    []
        image:
            enabled:    false
            binary:     /usr/local/bin/wkhtmltoimage
            options:    []

    Ich Hoffe, dass es Ihnen helfen,

Kostenlose Online-Tests

Letzte Fragen

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile... var TableRow = Marionette.ItemView.extend({ tagName:...

Wie kann ich untersuchen, WCF was 400 bad request über GET?

Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client: AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int...

Bei der Verwendung von UUIDs, sollte ich auch mit AUTO_INCREMENT?

Wir bauen eine neue web-app, die eine offline-iPad - /Android-app-version auf einer Reihe von lokalen Geräten, die Einsätze mit neuen Daten. Als solche benötigen...

Actionscript-Objekt, das verschiedene Eigenschaften

Wie kann ich die Anzahl der Eigenschaften in einer generischen Actionscript-Objekt? (Wie die Array-Länge) InformationsquelleAutor Fragsworth | 2011-01-15

Wie plot mehrere Graphen und nutzen Sie die Navigations-Taste im [matplotlib]

Die neueste version von matplotlib erstellt automatisch Navigations-buttons unter den graph. Aber die Beispiele, die ich finden alles im Internet zeigen, wie erstellen Sie...