tutorial notebook español python pdf ipython-notebook

notebook - Ver imagen en PDF en un portátil iPython



jupyter notebook tutorial español (4)

El siguiente código me permite ver una imagen png en una computadora portátil iPython. ¿Hay alguna manera de ver la imagen en pdf ? No necesito usar IPython.display necesariamente. Estoy buscando una manera de imprimir una imagen en pdf en un archivo a la celda de salida del notebook iPython.

## This is for an `png` image from IPython.display import Image fig = Image(filename=(''./temp/my_plot.png'')) fig

Gracias.


Además de la excelente respuesta de Jakob que recomienda las fijaciones Wand para ImageMagick:

Si su PDF contiene gráficos vectoriales, use la palabra clave de resolution para controlar el tamaño de la imagen renderizada. El valor predeterminado de ImageMagick es 72 ppp. Los valores más altos producen más píxeles.

from wand.image import Image as WImage img = WImage(filename=''hat.pdf'', resolution=100) # bigger img


Asumiendo un pdf de múltiples imágenes llamado Rplots.pdf

Lo siguiente funciona en la celda del Jupyter. Para la instalación que utilicé

pip install Wand

Este código se pega a una celda

from wand.image import Image imageFromPdf = Image(filename=''Rplots.pdf'') pages = len(imageFromPdf.sequence) image = Image( width=imageFromPdf.width, height=imageFromPdf.height * pages ) for i in range(pages): image.composite( imageFromPdf.sequence[i], top=imageFromPdf.height * i, left=0 ) image.format="png" image


El problema al que usted (y otros) se enfrentan es que los archivos PDF no se pueden mostrar directamente en el navegador. La única forma posible de obtener algo similar es usar un convertidor de imágenes para crear un PNG o JPG desde el PDF y mostrar este.
Esto podría hacerse a través de imagemagick y una función de visualización personalizada.

Actualización 1

Una solución simple es usar varita ( http://docs.wand-py.org ) un enlace python-imagemagick. Lo intenté con Ubuntu 13.04:

En forma de texto:

from wand.image import Image as WImage img = WImage(filename=''hat.pdf'') img

Para un PDF de varias páginas, puede obtener, por ejemplo, la segunda página a través de:

img = WImage(filename=''hat.pdf[1]'')

Actualización 2

Como los navegadores recientes admiten la visualización de archivos PDF con su visor de PDF integrado, se puede implementar una posible solución alternativa basada en un marco flotante como

class PDF(object): def __init__(self, pdf, size=(200,200)): self.pdf = pdf self.size = size def _repr_html_(self): return ''<iframe src={0} width={1[0]} height={1[1]}></iframe>''.format(self.pdf, self.size) def _repr_latex_(self): return r''/includegraphics[width=1.0/textwidth]{{{0}}}''.format(self.pdf)

Esta clase implementa representaciones html y latex, por lo tanto, el pdf también sobrevivirá una conversión nb al látex. Se puede usar como

PDF(''hat.pdf'',size=(300,250))

Con Firefox 33, esto da como resultado


Para mostrar pdf-s dentro de las libretas ipython / jupyter, puede usar IFrame

from IPython.display import IFrame IFrame("./samples/simple3.pdf", width=600, height=300)

Aquí está la captura de pantalla