2011-11-27 14 views
9

¿Puede decirme cómo insertar una imagen que será un enlace a, por ejemplo, la página 20? Yo sé cómo hacer con el texto normal:rieles gema camarón, imagen y ancla

text "<link anchor='page20'>Go to page 20</link>", :inline_format=>true 

y luego en la página 20 tengo

add_dest('page20', dest_fit(page.dictionary)) 

pero la forma de hacer esto con la imagen?

+0

Actualmente estoy teniendo el mismo problema. ¿Alguna vez encontró una forma de insertar un enlace en una imagen usando gambas? –

+0

¿No puedes usar HTML? '' – jamesc

+0

Al mirar la [documentación de gambas] (http://prawn.majesticseacreature.com/manual.pdf) y el [Repo de gambas] (https://github.com/prawnpdf/prawn), no pude encontrar ninguna mención de soporte para incrustar un enlace en una imagen en un pdf. Idealmente, podría hacer algo como 'image" local_image.png ", href:" http://example.com "' o en una celda de tabla '{image: open (" remote_image.png "), href : "http: // ejemplo.com "}' pero no puedo, así que me pregunto si hay una solución. –

Respuesta

5

Gamba no es compatible con esta funcionalidad. De hecho, incluso si colocó un formatted_text_box sobre una imagen y lo llena con espacios en blanco, todavía no funcionará. Un ancla debe incluir texto para trabajar. Si no te importa tener texto sobre tu imagen, entonces esa podría ser una solución.

propios estados readme de Gamba:

Una cosa gamba no es, y nunca será, es un generador de HTML a PDF.

Después de tratar con muchos de los defectos de la gamba, he cambiado a usar wicked_pdf para mi Ruby on Rails generación de PDF y han sido muy feliz con él. Si puede hacerlo en html & css, puede hacerlo con wicked_pdf.

+2

+1 para la información útil, especialmente "Si no te importa tener texto sobre tu imagen, entonces esa podría ser una solución ", que fue la base de mi hack, y el enlace a Wicked PDF. –

+0

Gracias de nuevo por su ayuda. –

5

En parte gracias a lightswitch05 por alguna insistencia en la dirección correcta, he encontrado una manera de conseguir el efecto que quiero través de esta forma poco elegante:

  • insertar una imagen en una (la página es bounding_boxcursor en este punto en la parte inferior de la imagen)
  • Mover el cursor hacia atrás hasta la parte superior de la imagen
  • insertar un enlace de texto sobre la imagen (en mi caso que acabo de utilizar sin embargo muchas barras verticales '|' se necesitaban para cubrir la imagen)
  • Confirme visualmente que el área del enlace donde se puede hacer clic es aproximadamente igual a los límites de la imagen
  • Haga que el enlace de texto sea transparente, y listo, parece que está haciendo clic en la imagen.

Aquí hay un código de ejemplo (mediciones no exacta, no había una gran cantidad de ajustar involucrados):

bounding_box([0, cursor], width: 35) do 
    image open("http://mysite.com/remote_image.jpg"), 
     fit: [35, 35], 
     align: :center 
    move_up 35 
    transparent(0) do 
    formatted_text([{ 
     text: "|||", # placeholder 
     size: 40, 
     link: "http://example.com/" 
    }], align: :center) 
    end 
    # stroke_bounds 
end 

hace falta decir que esta experiencia me tiene buscando un poco más en Wicked PDF para hacer lo que creo que quiero hacer con archivos PDF.

Estoy seguro de que existe una solución mejor/más elegante, así que no estoy pensando en considerarla como mi respuesta final.

+0

Texto transparente! Wow, estaba tan cerca de esa conclusión que no puedo creer que me haya perdido. ¡Buena idea! , Espero que gambas funcione para usted, pero recomiendo Wicked PDF si no lo hace – lightswitch05

Cuestiones relacionadas