+ /**
+ * Sets up Imagick for PDF processing.
+ * Increases rendering DPI and only loads first page.
+ *
+ * @since 4.7.0
+ * @access protected
+ *
+ * @return string|WP_Error File to load or WP_Error on failure.
+ */
+ protected function pdf_setup() {
+ try {
+ // By default, PDFs are rendered in a very low resolution.
+ // We want the thumbnail to be readable, so increase the rendering DPI.
+ $this->image->setResolution( 128, 128 );
+
+ // Only load the first page.
+ return $this->file . '[0]';
+ }
+ catch ( Exception $e ) {
+ return new WP_Error( 'pdf_setup_failed', $e->getMessage(), $this->file );
+ }
+ }
+