Pergunta

Converter um .ou doc .pdf para uma imagem e exibir um thumbnail em Ruby?
Alguém sabe como gerar miniaturas de documentos em Ruby (ou python, C,...)

Foi útil?

Solução

Um simples RMagick exemplo, para converter um PDF para PNG seria:

require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")
thumb = pdf.scale(300, 300)
thumb.write "doc.png"

Para converter um documento do microsoft Word, ele não vai ser tão fácil.A sua melhor opção pode ser o primeiro convertê-lo para PDF antes de gerar a imagem em miniatura.As opções para gerar o PDF dependem muito do sistema operacional que você está executando.Pode ser usar o OpenOffice e o Python Open Document Converter.Há, também, on-line serviços de conversão, você pode tentar, incluindo http://Zamzar.com.

Outras dicas

Código de exemplo para responder a comentário por @aisensiy acima :

require 'rmagick'
pdf_path = "/path/to/interesting/file.pdf"
page_index_path = pdf_path + "[0]" # first page in PDF
pdf_page = Magick::Image.read( page_index_path ).first # first item in Magick::ImageList
pdf_page.write( "/tmp/indexed-page.png" ) # implicit conversion based on file extension

Com base no caminho pista em resposta a outra pergunta :

https://stackoverflow.com/a/6369524/765063

Não tem certeza sobre .doc suporte em qualquer biblioteca de código aberto, mas o ImageMagick (e o gem RMagick) pode ser compilado com o suporte a pdf (eu acho que é ativado por padrão)

Suporte a PDF é um pouco buggy em ImageMagick - mas é de longe o melhor sistema operacional caminho para ruby.Há também um google summer do projeto de código para Ruby puro e suporte a PDF.

Li coisas sobre como usar o OpenOffice sem o GUI para transformar .arquivos doc - mas vai ser complicado, na melhor das hipóteses.

Como os 2 anteriores cartazes disse, ImageMagick é provavelmente a maneira mais fácil de gerar as miniaturas.

Você poderia exec algo como:

´convert -size 300x300 doc.pdf doc.png´

(As crases devem dizer Ruby shell-out).

Se você não quiser usar exec para fazer a conversão, você pode usar a gem RMagick para fazer isso por você, mas, provavelmente, um pouco mais de código.

Se você não se importa de pagar por Imgix, ele lida com PDFs muito.Você obtém todas as vantagens de um rápido CDN com ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top