/thumbnail

Thumbnail/Preview generator for 450 different filetypes in python.

Primary LanguagePythonMIT LicenseMIT

thumbnail

Thumbnail/Preview generator for 450 different filetypes in python.

Pre-requisites

This package has been thoroughly tested on Linux machines. If you're facing any issue post it on Github Issues.

thumbnail depends on unoconv.(Universal Office converter)

apt-get install unoconv

thumbnail depends of ffmpeg for audio or video files

apt-get install ffmpeg

thumbnail depends on Imagemagick for image manipulation

apt-get install imagemagick

thumbnail also needs curl to be installled

apt-get install curl

To install this package:

pip install thumbnail

How to use

Sample code:

from thumbnail import generate_thumbnail

// generate_thumbnail(input, output, options)

options = {
	'trim': False,
	'height': 300,
	'width': 300,
	'quality': 85,
	'type': 'thumbnail'
}
generate_thumbnil('sample.docx', './thumbnails/thumbnail.png', options)

You need to pass three parameters in generate_thumbnail function.

input: location of the input file. You can see the list of supported files at the end.

output: location of the to be generated thumbnail file. It can be .png, .jpg or .gif

options: It can have five diff parameters. If you don't want to pass any options, pass options as a blank {}

  • trim: Boolean(default = True) It'll automatically trim your file.
  • height: Integer(default = 300) Height of the thumbnail in px.
  • width: Integer(default = 300) Width of the thumbnail in px.
  • quality: Integer(default = 85) Quality of the thumbnail on a scale of 1-100.
  • type: String(default = "thumbnail" It takes two values "thumbnail" or "firstpage" "thumbnail" = 300X300 image of the first page of the document. Height and Width can be changed by providing values in options "firstpage" = snapshot of the document's first page.

Common Issues

ImageMagick no images defined:

  • Open /etc/ImageMagick-6/policy.xml in the editor of your choice
<!-- Find this line(should be in the end of file) -->
<policy domain="coder" rights="none" pattern="PDF" />

unoconv: Cannot find a suitable pyuno library and python binary combination in /usr/lib/libreoffice:

  • Open /usr/bin/unoconv in the editor of your choice
  • Replace #!/usr/bin/env python3 with #!/usr/bin/python3
  • Reference: unoconv/unoconv#405

This package is inspired from npm module filepreview.

Supported document types

The following list of document formats are currently available for exporting to:

  • bib - BibTeX [.bib]
  • doc - Microsoft Word 97/2000/XP [.doc]
  • doc6 - Microsoft Word 6.0 [.doc]
  • doc95 - Microsoft Word 95 [.doc]
  • docbook - DocBook [.xml]
  • html - HTML Document (OpenOffice.org Writer) [.html]
  • odt - Open Document Text [.odt]
  • ott - Open Document Text [.ott]
  • ooxml - Microsoft Office Open XML [.xml]
  • pdb - AportisDoc (Palm) [.pdb]
  • pdf - Portable Document Format [.pdf]
  • psw - Pocket Word [.psw]
  • rtf - Rich Text Format [.rtf]
  • latex - LaTeX 2e [.ltx]
  • sdw - StarWriter 5.0 [.sdw]
  • sdw4 - StarWriter 4.0 [.sdw]
  • sdw3 - StarWriter 3.0 [.sdw]
  • stw - Open Office.org 1.0 Text Document Template [.stw]
  • sxw - Open Office.org 1.0 Text Document [.sxw]
  • text - Text Encoded [.txt]
  • txt - Plain Text [.txt]
  • vor - StarWriter 5.0 Template [.vor]
  • vor4 - StarWriter 4.0 Template [.vor]
  • vor3 - StarWriter 3.0 Template [.vor]
  • xhtml - XHTML Document [.html]

The following list of graphics formats are currently available for exporting to:

  • bmp - Windows Bitmap [.bmp]
  • emf - Enhanced Metafile [.emf]
  • eps - Encapsulated PostScript [.eps]
  • gif - Graphics Interchange Format [.gif]
  • html - HTML Document (OpenOffice.org Draw) [.html]
  • jpg - Joint Photographic Experts Group [.jpg]
  • met - OS/2 Metafile [.met]
  • odd - OpenDocument Drawing [.odd]
  • otg - OpenDocument Drawing Template [.otg]
  • pbm - Portable Bitmap [.pbm]
  • pct - Mac Pict [.pct]
  • pdf - Portable Document Format [.pdf]
  • pgm - Portable Graymap [.pgm]
  • png - Portable Network Graphic [.png]
  • ppm - Portable Pixelmap [.ppm]
  • ras - Sun Raster Image [.ras]
  • std - OpenOffice.org 1.0 Drawing Template [.std]
  • svg - Scalable Vector Graphics [.svg]
  • svm - StarView Metafile [.svm]
  • swf - Macromedia Flash (SWF) [.swf]
  • sxd - OpenOffice.org 1.0 Drawing [.sxd]
  • sxd3 - StarDraw 3.0 [.sxd]
  • sxd5 - StarDraw 5.0 [.sxd]
  • tiff - Tagged Image File Format [.tiff]
  • vor - StarDraw 5.0 Template [.vor]
  • vor3 - StarDraw 3.0 Template [.vor]
  • wmf - Windows Metafile [.wmf]
  • xhtml - XHTML [.xhtml]
  • xpm - X PixMap [.xpm]

The following list of presentation formats are currently available for exporting to:

  • bmp - Windows Bitmap [.bmp]
  • emf - Enhanced Metafile [.emf]
  • eps - Encapsulated PostScript [.eps]
  • gif - Graphics Interchange Format [.gif]
  • html - HTML Document (OpenOffice.org Impress) [.html]
  • jpg - Joint Photographic Experts Group [.jpg]
  • met - OS/2 Metafile [.met]
  • odd - OpenDocument Drawing (Impress) [.odd]
  • odg - OpenOffice.org 1.0 Drawing (OpenOffice.org Impress) [.odg]
  • odp - OpenDocument Presentation [.odp]
  • pbm - Portable Bitmap [.pbm]
  • pct - Mac Pict [.pct]
  • pdf - Portable Document Format [.pdf]
  • pgm - Portable Graymap [.pgm]
  • png - Portable Network Graphic [.png]
  • pot - Microsoft PowerPoint 97/2000/XP Template [.pot]
  • ppm - Portable Pixelmap [.ppm]
  • ppt - Microsoft PowerPoint 97/2000/XP [.ppt]
  • pwp - PlaceWare [.pwp]
  • ras - Sun Raster Image [.ras]
  • sda - StarDraw 5.0 (OpenOffice.org Impress) [.sda]
  • sdd - StarImpress 5.0 [.sdd]
  • sdd3 - StarDraw 3.0 (OpenOffice.org Impress) [.sdd]
  • sdd4 - StarImpress 4.0 [.sdd]
  • sti - OpenOffice.org 1.0 Presentation Template [.sti]
  • stp - OpenDocument Presentation Template [.stp]
  • svg - Scalable Vector Graphics [.svg]
  • svm - StarView Metafile [.svm]
  • swf - Macromedia Flash (SWF) [.swf]
  • sxi - OpenOffice.org 1.0 Presentation [.sxi]
  • tiff - Tagged Image File Format [.tiff]
  • vor - StarImpress 5.0 Template [.vor]
  • vor3 - StarDraw 3.0 Template (OpenOffice.org Impress) [.vor]
  • vor4 - StarImpress 4.0 Template [.vor]
  • vor5 - StarDraw 5.0 Template (OpenOffice.org Impress) [.vor]
  • wmf - Windows Metafile [.wmf]
  • xhtml - XHTML [.xml]
  • xpm - X PixMap [.xpm]

The following list of spreadsheet formats are currently available for exporting to:

  • csv - Text CSV [.csv]
  • dbf - dBase [.dbf]
  • dif - Data Interchange Format [.dif]
  • html - HTML Document (OpenOffice.org Calc) [.html]
  • ods - Open Document Spreadsheet [.ods]
  • ooxml - Microsoft Excel 2003 XML [.xml]
  • pdf - Portable Document Format [.pdf]
  • pts - OpenDocument Spreadsheet Template [.pts]
  • pxl - Pocket Excel [.pxl]
  • sdc - StarCalc 5.0 [.sdc]
  • sdc4 - StarCalc 4.0 [.sdc]
  • sdc3 - StarCalc 3.0 [.sdc]
  • slk - SYLK [.slk]
  • stc - OpenOffice.org 1.0 Spreadsheet Template [.stc]
  • sxc - OpenOffice.org 1.0 Spreadsheet [.sxc]
  • vor3 - StarCalc 3.0 Template [.vor]
  • vor4 - StarCalc 4.0 Template [.vor]
  • vor - StarCalc 5.0 Template [.vor]
  • xhtml - XHTML [.xhtml]
  • xls - Microsoft Excel 97/2000/XP [.xls]
  • xls5 - Microsoft Excel 5.0 [.xls]
  • xls95 - Microsoft Excel 95 [.xls]
  • xlt - Microsoft Excel 97/2000/XP Template [.xlt]
  • xlt5 - Microsoft Excel 5.0 Template [.xlt]
  • xlt95 - Microsoft Excel 95 Template [.xlt]

The following list of open office formats are currently available for exporting to:

  • Microsoft Word 6.0/95/97/2000/XP (.doc and .dot)
  • Microsoft Word 2003 XML (.xml)
  • Microsoft Word 2007 XML (.docx, .docm, .dotx, .dotm)
  • Microsoft WinWord 5 (.doc)
  • WordPerfect Document (.wpd)
  • WPS 2000/Office 1.0 (.wps)
  • .rtf, .txt, and .csv
  • StarWriter formats (.sdw, .sgl, .vor)
  • DocBook (.xml)
  • Unified Office Format text (.uot, .uof)
  • Ichitaro 8/9/10/11 (.jtd and .jtt)
  • Hangul WP 97 (.hwp)
  • T602 Document (.602, .txt)
  • AportisDoc (Palm) (.pdb)
  • Pocket Word (.psw)
  • Microsoft Excel 97/2000/XP (.xls, .xlw, and .xlt)
  • Microsoft Excel 4.x–5.0/95 (.xls, .xlw, and .xlt)
  • Microsoft Excel 2003 XML (.xml)
  • Microsoft Excel 2007 XML (.xlsx, .xlsm, .xltx, .xltm)
  • Microsoft Excel 2007 binary (.xlsb)
  • Lotus 1-2-3 (.wk1, .wks, and .123)
  • Data Interchange Format (.dif)
  • Rich Text Format (.rtf)
  • Text CSV (.csv and .txt)
  • StarCalc formats (.sdc and .vor)
  • dBASE (.dbf)
  • SYLK (.slk)
  • Unified Office Format spreadsheet (.uos, .uof)
  • .htm and .html files, including Web page queries
  • Pocket Excel (pxl)
  • Quattro Pro 6.0 (.wb2)
  • Microsoft PowerPoint 97/2000/XP (.ppt, .pps, and .pot)
  • Microsoft PowerPoint 2007 (.pptx, .pptm, .potx, .potm)
  • StarDraw and StarImpress (.sda, .sdd, .sdp, and .vor)
  • Unified Office Format presentation (.uop, .uof)
  • CGM – Computer Graphics Metafile (.cgm)
  • Portable Document Format (.pdf)

The following list of video formats are currently available for exporting to:

  • 3g2 3GP2 (3GPP2 file format)
  • 3gp 3GP (3GPP file format)
  • 4xm 4X Technologies
  • a64 a64 - video for Commodore 64
  • aac raw ADTS AAC (Advanced Audio Coding)
  • ac3 raw AC-3
  • act ACT Voice file format
  • adf Artworx Data Format
  • adp ADP
  • adts ADTS AAC (Advanced Audio Coding)
  • adx CRI ADX
  • aea MD STUDIO audio
  • afc AFC
  • aiff Audio IFF
  • alaw PCM A-law
  • alias_pix Alias/Wavefront PIX image
  • alsa ALSA audio output
  • amr 3GPP AMR
  • anm Deluxe Paint Animation
  • apc CRYO APC
  • ape Monkey's Audio
  • apng Animated Portable Network Graphics
  • aqtitle AQTitle subtitles
  • asf ASF (Advanced / Active Streaming Format)
  • asf_stream ASF (Advanced / Active Streaming Format)
  • ass SSA (SubStation Alpha) subtitle
  • ast AST (Audio Stream)
  • au Sun AU
  • avi AVI (Audio Video Interleaved)
  • avisynth AviSynth script
  • avm2 SWF (ShockWave Flash) (AVM2)
  • avr AVR (Audio Visual Research)
  • avs AVS
  • bethsoftvid Bethesda Softworks VID
  • bfi Brute Force & Ignorance
  • bin Binary text
  • bink Bink
  • bit G.729 BIT file format
  • bmp_pipe piped bmp sequence
  • bmv Discworld II BMV
  • boa Black Ops Audio
  • brender_pix BRender PIX image
  • brstm BRSTM (Binary Revolution Stream)
  • c93 Interplay C93
  • caca caca (color ASCII art) output device
  • caf Apple CAF (Core Audio Format)
  • cavsvideo raw Chinese AVS (Audio Video Standard) video
  • cdg CD Graphics
  • cdxl Commodore CDXL video
  • cine Phantom Cine
  • concat Virtual concatenation script
  • crc CRC testing
  • dash DASH Muxer
  • data raw data
  • daud D-Cinema audio
  • dfa Chronomaster DFA
  • dirac raw Dirac
  • dnxhd raw DNxHD (SMPTE VC-3)
  • dpx_pipe piped dpx sequence
  • dsf DSD Stream File (DSF)
  • dsicin Delphine Software International CIN
  • dss Digital Speech Standard (DSS)
  • dts raw DTS
  • dtshd raw DTS-HD
  • dv DV (Digital Video)
  • dv1394 DV1394 A/V grab
  • dvbsub raw dvbsub
  • dvd MPEG-2 PS (DVD VOB)
  • dxa DXA
  • ea Electronic Arts Multimedia
  • ea_cdata Electronic Arts cdata
  • eac3 raw E-AC-3
  • epaf Ensoniq Paris Audio File
  • exr_pipe piped exr sequence
  • f32be PCM 32-bit floating-point big-endian
  • f32le PCM 32-bit floating-point little-endian
  • f4v F4V Adobe Flash Video
  • f64be PCM 64-bit floating-point big-endian
  • f64le PCM 64-bit floating-point little-endian
  • fbdev Linux framebuffer
  • ffm FFM (FFserver live feed)
  • ffmetadata FFmpeg metadata in text
  • film_cpk Sega FILM / CPK
  • filmstrip Adobe Filmstrip
  • flac raw FLAC
  • flic FLI/FLC/FLX animation
  • flv FLV (Flash Video)
  • framecrc framecrc testing
  • framemd5 Per-frame MD5 testing
  • frm Megalux Frame
  • g722 raw G.722
  • g723_1 raw G.723.1
  • g729 G.729 raw format demuxer
  • gif GIF Animation
  • gsm raw GSM
  • gxf GXF (General eXchange Format)
  • h261 raw H.261
  • h263 raw H.263
  • h264 raw H.264 video
  • hds HDS Muxer
  • hevc raw HEVC video
  • hls Apple HTTP Live Streaming
  • hls,applehttp Apple HTTP Live Streaming
  • hnm Cryo HNM v4
  • ico Microsoft Windows ICO
  • idcin id Cinematic
  • idf iCE Draw File
  • iec61883 libiec61883 (new DV1394) A/V input device
  • iff IFF (Interchange File Format)
  • ilbc iLBC storage
  • image2 image2 sequence
  • image2pipe piped image2 sequence
  • ingenient raw Ingenient MJPEG
  • ipmovie Interplay MVE
  • ipod iPod H.264 MP4 (MPEG-4 Part 14)
  • ircam Berkeley/IRCAM/CARL Sound Format
  • ismv ISMV/ISMA (Smooth Streaming)
  • iss Funcom ISS
  • iv8 IndigoVision 8000 video
  • ivf On2 IVF
  • j2k_pipe piped j2k sequence
  • jack JACK Audio Connection Kit
  • jacosub JACOsub subtitle format
  • jpeg_pipe piped jpeg sequence
  • jpegls_pipe piped jpegls sequence
  • jv Bitmap Brothers JV
  • latm LOAS/LATM
  • lavfi Libavfilter virtual input device
  • libcdio
  • libdc1394 dc1394 v.2 A/V grab
  • libgme Game Music Emu demuxer
  • libmodplug ModPlug demuxer
  • live_flv live RTMP FLV (Flash Video)
  • lmlm4 raw lmlm4
  • loas LOAS AudioSyncStream
  • lrc LRC lyrics
  • lvf LVF
  • lxf VR native stream (LXF)
  • m4v raw MPEG-4 video
  • matroska Matroska
  • matroska,webm Matroska / WebM
  • md5 MD5 testing
  • mgsts Metal Gear Solid: The Twin Snakes
  • microdvd MicroDVD subtitle format
  • mjpeg raw MJPEG video
  • mkvtimestamp_v2 extract pts as timecode v2 format, as defined by mkvtoolnix
  • mlp raw MLP
  • mlv Magic Lantern Video (MLV)
  • mm American Laser Games MM
  • mmf Yamaha SMAF
  • mov QuickTime / MOV
  • mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOV
  • mp2 MP2 (MPEG audio layer 2)
  • mp3 MP3 (MPEG audio layer 3)
  • mp4 MP4 (MPEG-4 Part 14)
  • mpc Musepack
  • mpc8 Musepack SV8
  • mpeg MPEG-1 Systems / MPEG program stream
  • mpeg1video raw MPEG-1 video
  • mpeg2video raw MPEG-2 video
  • mpegts MPEG-TS (MPEG-2 Transport Stream)
  • mpegtsraw raw MPEG-TS (MPEG-2 Transport Stream)
  • mpegvideo raw MPEG video
  • mpjpeg MIME multipart JPEG
  • mpl2 MPL2 subtitles
  • mpsub MPlayer subtitles
  • msnwctcp MSN TCP Webcam stream
  • mtv MTV
  • mulaw PCM mu-law
  • mv Silicon Graphics Movie
  • mvi Motion Pixels MVI
  • mxf MXF (Material eXchange Format)
  • mxf_d10 MXF (Material eXchange Format) D-10 Mapping
  • mxf_opatom MXF (Material eXchange Format) Operational Pattern Atom
  • mxg MxPEG clip
  • nc NC camera feed
  • nistsphere NIST SPeech HEader REsources
  • nsv Nullsoft Streaming Video
  • nut NUT
  • nuv NuppelVideo
  • oga Ogg Audio
  • ogg Ogg
  • oma Sony OpenMG audio
  • openal OpenAL audio capture device
  • opengl OpenGL output
  • opus Ogg Opus
  • oss OSS (Open Sound System) playback
  • paf Amazing Studio Packed Animation File
  • pictor_pipe piped pictor sequence
  • pjs PJS (Phoenix Japanimation Society) subtitles
  • pmp Playstation Portable PMP
  • png_pipe piped png sequence
  • psp PSP MP4 (MPEG-4 Part 14)
  • psxstr Sony Playstation STR
  • pulse Pulse audio output
  • pva TechnoTrend PVA
  • pvf PVF (Portable Voice Format)
  • qcp QCP
  • qdraw_pipe piped qdraw sequence
  • r3d REDCODE R3D
  • rawvideo raw video
  • realtext RealText subtitle format
  • redspark RedSpark
  • rl2 RL2
  • rm RealMedia
  • roq raw id RoQ
  • rpl RPL / ARMovie
  • rsd GameCube RSD
  • rso Lego Mindstorms RSO
  • rtp RTP output
  • rtp_mpegts RTP/mpegts output format
  • rtsp RTSP output
  • s16be PCM signed 16-bit big-endian
  • s16le PCM signed 16-bit little-endian
  • s24be PCM signed 24-bit big-endian
  • s24le PCM signed 24-bit little-endian
  • s32be PCM signed 32-bit big-endian
  • s32le PCM signed 32-bit little-endian
  • s8 PCM signed 8-bit
  • sami SAMI subtitle format
  • sap SAP output
  • sbg SBaGen binaural beats script
  • sdl SDL output device
  • sdp SDP
  • sdr2 SDR2
  • segment segment
  • sgi_pipe piped sgi sequence
  • shn raw Shorten
  • siff Beam Software SIFF
  • singlejpeg JPEG single image
  • sln Asterisk raw pcm
  • smjpeg Loki SDL MJPEG
  • smk Smacker
  • smoothstreaming Smooth Streaming Muxer
  • smush LucasArts Smush
  • sol Sierra SOL
  • sox SoX native
  • spdif IEC 61937 (used on S/PDIF - IEC958)
  • spx Ogg Speex
  • srt SubRip subtitle
  • stl Spruce subtitle format
  • stream_segment,ssegment streaming segment muxer
  • subviewer SubViewer subtitle format
  • subviewer1 SubViewer v1 subtitle format
  • sunrast_pipe piped sunrast sequence
  • sup raw HDMV Presentation Graphic Stream subtitles
  • svcd MPEG-2 PS (SVCD)
  • swf SWF (ShockWave Flash)
  • tak raw TAK
  • tedcaptions TED Talks captions
  • tee Multiple muxer tee
  • thp THP
  • tiertexseq Tiertex Limited SEQ
  • tiff_pipe piped tiff sequence
  • tmv 8088flex TMV
  • truehd raw TrueHD
  • tta TTA (True Audio)
  • tty Tele-typewriter
  • txd Renderware TeXture Dictionary
  • u16be PCM unsigned 16-bit big-endian
  • u16le PCM unsigned 16-bit little-endian
  • u24be PCM unsigned 24-bit big-endian
  • u24le PCM unsigned 24-bit little-endian
  • u32be PCM unsigned 32-bit big-endian
  • u32le PCM unsigned 32-bit little-endian
  • u8 PCM unsigned 8-bit
  • uncodedframecrc uncoded framecrc testing
  • v4l2 Video4Linux2 output device
  • vc1 raw VC-1 video
  • vc1test VC-1 test bitstream
  • vcd MPEG-1 Systems / MPEG program stream (VCD)
  • video4linux2,v4l2 Video4Linux2 device grab
  • vivo Vivo
  • vmd Sierra VMD
  • vob MPEG-2 PS (VOB)
  • vobsub VobSub subtitle format
  • voc Creative Voice
  • vplayer VPlayer subtitles
  • vqf Nippon Telegraph and Telephone Corporation (NTT) TwinVQ
  • w64 Sony Wave64
  • wav WAV / WAVE (Waveform Audio)
  • wc3movie Wing Commander III movie
  • webm WebM
  • webm_chunk WebM Chunk Muxer
  • webm_dash_manifest WebM DASH Manifest
  • webp WebP
  • webp_pipe piped webp sequence
  • webvtt WebVTT subtitle
  • wsaud Westwood Studios audio
  • wsvqa Westwood Studios VQA
  • wtv Windows Television (WTV)
  • wv raw WavPack
  • x11grab X11 screen capture, using XCB
  • xa Maxis XA
  • xbin eXtended BINary text (XBIN)
  • xmv Microsoft XMV
  • xv XV (XVideo) output device
  • xwma Microsoft xWMA
  • yop Psygnosis YOP
  • yuv4mpegpipe YUV4MPEG pipe