id summary reporter owner description type status priority milestone component version severity resolution keywords cc focuses 31050 Better PDF Upload Management celloexpressions kirasong "Over the past several releases, WordPress has added improved support for more and more media types, particularly images, audio, and video. All other file types get reasonably decent handling, with file type icons in the admin and link-insertion into content for the front-end. But a particularly notable gap is with PDF files. Even though it's generally preferred to put content directly into html/site format, there are still many unavoidable situations where users must post PDF files. In my recent [http://celloexpressions.com/blog/new-sheet-music-library-the-story/ sheet music library project], I discovered that PDFs can easily be converted to images using ImageMagick and WP_Image_Editor. If we create thumbnail images of PDFs on upload, we could use those images instead of the generic document icon in the admin media library. Additionally, we could explore improved means of displaying PDFs on the front-end. For example, this could be accomplished by offering the user the ability to insert a thumbnail-image-preview, linked to the PDF file, instead of a plain-text link. This is the basic code for generating a thumbnail of a PDF on upload, and storing it as post meta in a plugin: {{{ /** * When a PDF is uploaded, generate a thumbnail image and save it in the attachment meta. */ add_filter( 'wp_generate_attachment_metadata', 'prefix_generate_pdf_thumbnail_metadata', 10, 2 ); function prefix_generate_pdf_thumbnail_metadata( $metadata, $attachment_id ) { $attachment = get_post( $attachment_id ); if ( 'application/pdf' === get_post_mime_type( $attachment ) ) { // Create a png from the pdf. $file = get_attached_file( $attachment_id ); $pdf = wp_get_image_editor( $file ); if ( ! is_wp_error( $pdf ) ) { // Most likely cause for error is that ImageMagick is not available. $filename = $pdf->generate_filename( 'image', null, 'png' ); $uploaded = $pdf->save( $filename, 'image/png' ); if ( ! is_wp_error( $uploaded ) ) { $upload_dir = wp_upload_dir(); update_post_meta( $attachment_id, 'pdf_thumbnail_url', $upload_dir['url'] . '/' . $uploaded['file'] ); } } } return $metadata; } }}} I'd like to propose with this ticket that we explore creating thumbnails of PDFs when they're uploaded and use them for improved administration and display purposes, when the server environment supports ImageMagick, of course." feature request closed normal 4.7 Media normal fixed has-patch needs-testing has-dev-note ui