Chrome-pdf / Phantom-pdf en raspberry pi 3 ó OS Raspbian



  • Hola a todos!

    Como puedo configurar la dependencia chrome-pdf o phantom-pdf en un sistema operativo raspbian / raspberry pi 3?
    He seguido las indicaciones siguientes https://jsreport.net/learn/ubuntu, pero aun no me ha funcionado, tengo la salidad HTML.


  • administrators

    Hola! puedes especificar como intentaste generar un reporte? estas llamando a jsreport desde la http API? o iniciaste jsreport y desde la UI (studio) intentaste generar un reporte? más detalles sobre como intentaste generar el reporte van a ayudar a saber si algo que estas haciendo esta mal.

    Nota: Como puedes apreciar en otros posts del foro, el lenguaje usado es Ingles por lo que sería conveniente y de ser posible si las preguntas y respuestas que formules lo hicieras en este idioma. Esto ayuda a que otros miembros del equipo puedan entender el contenido del post y ayudar de ser necesario.



  • Hola! instale jsreport en una raspberry para generar unos reportes en pdf, los templates de ejemplo vienen con chrome-pdf, hice un template sencillo para probar con Phantom-pdf ya que no pude instalar google-chrome-unstable. tengo habilitado web server y accedo a este mediante http por el puerto 5488 y entro a http://host:5488/studio/template, instale la dependencia para usar phantomjs para renderizar pdf y me sale el siguiente error.

    Error: Command failed: /home/pi/jsreportapp2/node_modules/phantomjs/lib/phantom/bin/phantomjs --ignore-ssl-errors=yes --web-security=false --ssl-protocol=any /home/pi/jsreportapp2/node_modules/phantom-html-to-pdf/lib/scripts/standaloneScript.js /tmp/jsreport/autocleanup/3b2c5ee5-76e8-4a09-8c50-d0de439d69ecsettings.html
    /home/pi/jsreportapp2/node_modules/phantomjs/lib/phantom/bin/phantomjs: 1: /home/pi/jsreportapp2/node_modules/phantomjs/lib/phantom/bin/phantomjs: Syntax error: word unexpected (expecting ")")

    at ChildProcess.exithandler (child_process.js:275:12)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Socket.stream.socket.on (internal/child_process.js:346:11)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at Pipe._handle.close [as _onclose] (net.js:567:12)

  • administrators

    parece que tanto los ejecutable de chrome and phantomjs tienen problemas con raspberry pi debido a que usan otra arquitectura (ARM) y requieren binarios por separado, por lo que no estoy seguro si vas a poder ejecutar jsreport normalmente debido a esto.

    parece que phantomjs no soporta raspberry pi por defecto, por lo que no vas a poder usarlo. existen distribuciones no oficiales que soportan raspberry pero nunca las he probabo por lo que no sabría decirte si funciona, si gustas puedes intentar instalar esa distribucion y luego en tu archivo jsreport.config.json agregar esto a la configuracion con la ruta hacia el binario que descargaste de phantomjs-on-raspberry:

    { 
      "extensions": {  
        "phantom-pdf": {
           "phantomPath": "/ruta/al/binario-de-phantom-que-soporta-raspberry
         }
      } 
    }
    

    por que no pudiste instalar google-chrome-unstable? cual fue el error? tambien puedes probar saltando este comando: sudo apt-get install -y google-chrome-unstable de los pasos, y probar ya que por defecto una version de chrome se instala cuando instalas jsreport, probablemente esta instalación detecte que estas usando raspberry y te descargue el binario correcto para tu maquina.



  • Hola, no pude instalar google-chrome-unstable porque no tiene un candidato para la instalación

    // Chrome dependency
    Entrada :: sudo apt-get install -y libgconf-2-4
    Entrada :: sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    Entrada :: sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
    Entrada :: sudo apt-get update
    Entrada :: sudo apt-get install -y google-chrome-unstable
    Salida :: Leyendo lista de paquetes... Hecho
    Salida :: Creando árbol de dependencias
    Salida :: Leyendo la información de estado... Hecho
    Salida :: E: No se ha podido localizar el paquete google-chrome-unstable

  • administrators

    Ya veo, lamentablemente no tengo mas ayuda que dar ya que el proceso en si no esta 100% soportado por el propio Chrome o Phantom. Pero encontre este issue en donde puedes ver todas las discusiones de personas que han intentado usar Chrome en Raspberry, en ese link hay diferentes soluciones y cosas que intentar, por lo que te recomendaria intentarlo, una ves logres instalar el ejecutable Chrome solo necesitas especificarle a jsreport que quieres usar ese ejecutable, puedes hacerlo con la siguiente configuración:

    {
      "extensions": {
         "chrome-pdf": {
           "launchOptions": {
             "executablePath": './ruta/al-ejecutable/de-chrome-que-funciona-en-raspberry'
           }
         }
       }
    }
    


  • Hola, ya me funcionó con chromium-browser

    sudo apt-get install chromium-browser
    

    Adicional a esto, seguirá saliendo un error, pero este se soluciona agregando esto en la configuración

    {
      "extensions": {
         "chrome-pdf": {
           "launchOptions": {
             "executablePath": './ruta/al-ejecutable/de-chrome-que-funciona-en-raspberry'
           },
            "args": ["--no-sandbox"]
         }
       }
    }
    

    Agregando la linea "args": ["--no-sandbox"] en la configuración chrome-pdf.


Log in to reply
 

Looks like your connection to jsreport forum was lost, please wait while we try to reconnect.