Instalar pdfkit rails en ubuntu 12.04

diciembre 18, 2013 at 3:14 pm

A veces se requiere crear pdfs apartir de los htmls según lo que paso aca, para que nuestras vistas en rails al acceder a ellas via .pdf algo asi como ventas/1.pdf por dar un ejemplo, solo con el hecho de instalar el pdfkit te ayuda con esa tarea, pero ojo como pdfkit utiliza wkhtmltopdf entonces primero se tiene que instalar esta libreria pero esta libreria a su vez requiere xserver entonces se tiene que instalar las librerias del cliente xserver bueno vamonos por pasos.

Primero instalar el xserver para esto ejecutamos esta linea

apt-get install xvfb

Ya con esto no saldra este error: wkhtmltopdf: cannot connect to X server

bueno ahora sigue instalar el wkhtmltopdf para esto hay 3 opciones segun la pagina oficial pero utilizaremos la de ubuntu por que somos cholos entonces ejecutamos

apt-get install wkhtmltopdf

Despues creamos un archivo que se llame wkhtmltopdf.sh en la carpeta /usr/bin/ que contenga el siguiente comando ‘xvfb-run –server-args=”-screen 0, 1024x768x24″ /usr/bin/wkhtmltopdf $*’

vi /usr/bin/wkhtmltopdf.sh
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf $*

Bueno las opciones son para que sea la pantalla 0, de resolucion 1025×768 de 24 pulgadas.

Guardamos y le asignamos permisos de ejecucion y creamos un link simbolico a /usr/local/bin/wkhtmltopdf:

chmod a+x /usr/bin/wkhtmltopdf.sh
ln -s /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf

y hacemos una prueba para ver si wkhtml quedo bien configurado

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

Ahora solo falta configurar el pdfkit esto esta mas facil, agregas al gemfile

gem 'pdfkit'

y ejecutas:

 bundle install

En nuestro archivo application.rb agregamos estas lineas

require 'pdfkit'
config.middleware.use PDFKit::Middleware

Tambien para modificar las opciones de pdfkit crea un archivo pdfkit.rb en la carpeta initializers de rails:

# config/initializers/pdfkit.rb
PDFKit.configure do |config|
  config.wkhtmltopdf = '/path/to/wkhtmltopdf'
  config.default_options = {
    :page_size => 'Legal',
    :print_media_type => true
  }
  # Use only if your external hostname is unavailable on the server.
  config.root_url = "http://localhost" 
end

Listo reinicias el servidor y ya debería de funcionar.

Documentacion de pdfkit
Script de wkhtmltopdf

Cualquier duda en los comentarios.

Renderizar un archivo en Rails 3.2

diciembre 3, 2013 at 5:15 pm

Un dia tube la necesidad de mostrar un archivo en vez de una vista en rails por que se generan y se guardan para no usar procesamiento del servidor solo ocupaba leer ese archivo y mostrarlo tal cual sin ningún tipo de modificación, mi archivo era xml yo tenia una vista xml, por si no se generaba el archivo mostraba la vista y ahi si usaba poder de procesamiento del servidor pero bueno para renderizar un archivo se tiene que hacer lo siguiente:

  1. Que el archivo exista
  2. Comprobar que tipo de archivo es
  3. Renderizar

Mas o menos son los pasos que tenemos que seguir bueno aqui va el codigo:

 

    file_path = "#{Rails.root}/public/{@post.title}.xml"
     xml_file = File.new(file_path, 'r') if File::exists?( file_path )
 
respond_to do |format|
    if !xml_file
        format.xml 
      else
        extname = File.extname(xml_file)[1..-1]
       mime_type = Mime::Type.lookup_by_extension(extname)
      content_type = mime_type.to_s unless mime_type.nil?
       format.xml {render :file => file_path, :content_type => content_type}
 
        end
end

Bueno explicado por lineas seria algo asi

     file_path = "#{Rails.root}/public/{@post.title}.xml"
     xml_file = File.new(file_path, 'r') if File::exists?( file_path )

Tenemos la ruta del archivo y luego preguntamos si existe si existe la variable xml_file tendra el contenido del archivo de lo contrario false.

if !xml_file
        format.xml

Si no existe el archivo tendremos que procesar los datos en la vista.

        extname = File.extname(xml_file)[1..-1]

Extramos la extencion del archivo en este caso es un xml.

            mime_type = Mime::Type.lookup_by_extension(extname)
          content_type = mime_type.to_s unless mime_type.nil?

obtenemos el tipo de de mime es osea algo asi para saber si es xml y el content_type para ver si el contenido es efectivamente un xml.

format.xml {render :file => file_path, :content_type => content_type}

Al final renderizamos el archivo enviando la ruta(file_path) y el tipo de contenido(content_type)

Listo

Instala el whatsapp en tu pc o mac

noviembre 15, 2013 at 1:19 pm

logo-whatsapp

El otro dia instale el whatapp en mi mac pero no sirve de mucho por que no puedes usar el mismo numero en diferentes dispositivos con el whatsapp esto te puede servir con un telefono al que no puedas instalarle el whatsapp como un lamparin  o uno que no sea smartphone, pues esta es una buena opcion.

Pasos:

  1.  Instalar bluestacks de la pagina oficial
  2. Abrir el bluestatcks
  3. Una vez en el bluestacks abrir tuiter o facebook con tu cuenta
  4. Desde tu maquina publicar en tu cuenta de tuiter o facebook la direccion de descarga de whatsapp http://www.whatsapp.com/android/ de android
  5. Abrir la url en el tuiter o facebook en bluestacks y descargar el apk
  6. Instalar Whatsapp y listo

 

10 usos curiosos que le puedes dar a la cámara de tu móvil Android

junio 18, 2013 at 4:13 pm

Con Android hoy en día se pueden hacer tantísimas cosas… sorprende por ejemplo la cantidad de funciones que podemos asignar a la lente de la cámara de nuestro móvil, y el provecho que podemos sacarle, pues no solo nos es útil para grabar vídeos o hacer fotos, al contrario de lo que muchos creen.

cupon-escaner-sorteos

Hace unos días en ADNFriki pudimos leer un interesante artículo que trata sobre esto mismo, e indica 10 usos curiosos que se le pueden dar a la cámara de un teléfono móvil Android. En GodieBoy hemos querido hacer un pequeño resumen. Estos son:

  • Escanear documentos
  • Ver si nuestros cupones están premiados
  • Jugar a juegos de realidad aumentada como Ingress de Google
  • Ver información de aquello que nos rodea
  • Guardar notas mediante fotografías (gracias a apps como Evernote)
  • Cazar ladrones (con una app llamada Gotya!)
  • Usar el móvil como Webcam (con IP Webcam)
  • Leer códigos de barras o traducir texto de imágenes
  • Ver las estrellas
  • Reconocer monumentos y lugares de interés turístico

Se dicen pronto, pero son muchas cosas. Por si fuera poco, si la cámara de tu teléfono tiene flash, también puedes usarla como linterna, ¿lo habías pensado?.

Map a List Java

junio 13, 2013 at 12:23 pm

Bueno algo que me funciono ahora en java:

List<Value> list = new ArrayList<Value>(map.values());

Si es que tienen algo asi

 

Map<Key,Value> map;

 

Seorimícuaro: ¡Por una buena causa!

marzo 27, 2013 at 4:52 pm

seorimicuaroMuchas son las personas que han estado trabajando duro durante 3 meses, para alzarse con el premio del concurso “forobetano” “Posicionando Seorimícuaro“. Seorimícuaro es una palabra inventada por Carlos Arreola (administrador de ForoBeta), que nació para ser posicionada durante el primer trimestre de 2013. Aquellos que logren estar en las primeras posiciones de Google por ese término, se harán con un suculento premio, unos cuantos $$$.

A pocos días de que finalice el concurso, el español Álex Navarro se sube al carro como nadie, quedando en pocas horas en la posición nº 1 de más de un ranking. ¿Cómo? Invitando a sus lectores a que colaboren por una buena causa:

Como podéis comprobar en este post, el creador de vivirdelared.com y otros blogs tan interesantes como éste no tuvo otra ocurrencia que decidir donar el premio a un comedor social de Alicante y al centro de acogida de menores Nazaret. Así ha convencido a sus lectores (inclusive a mí) de que le ayudemos a posicionar seorimícuaro para que cuando el concurso termine, vivirdelared se encuentre en el Top 1 de todos los países posibles.

El premio podría ascender a 3000 dólares estadounidenses, y actualmente se encuentra en primera posición, ¿logrará mantenerse para alcanzar el premio? El desenlace, próximamente en Godie Geek Blog ^^