Skip to content

Convert PDF Files to images before upload in WP Media Library.

License

Notifications You must be signed in to change notification settings

mcguffin/pdf-renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDF Renderer

Convert PDF Files to Images in your browser when dropped into the media library.

Includes Mozilla pdf.js for browser pdf rendering.

Upload Dialog PDF-Contents: cc-by Creative Commons

Installation

Production

  • Head over to releases
  • Download 'pdf-renderer.zip'
  • Upload and activate it like any other WordPress plugin
  • AutoUpdate will run as long as the plugin is active

Using composer

composer require mcguffin/pdf-renderer

For Development

  • cd into your plugin directory
  • $ git clone [email protected]:mcguffin/pdf-renderer.git
  • $ cd pdf-renderer
  • $ npm install
  • $ npm run dev

Plugin API

Filter pdf_renderer_image_width

Use this to overrule width of generated images. Uses the largest image width known to WP by default. (e.g. the Large size from Settings > Media).

Example:

add_filter( 'pdf_renderer_image_width', function( $width ) {
	// never underestimate a good integer.
	return 12345;
});

Filter pdf_renderer_image_type

Type of generated images. Possible values are image/png and image/jpeg. default is image/png.
To override the JPEG-Quality you can use the WP Core filter jpeg_quality. The string pdf_renderer is passed as a second argument to apply_filters().

Example:

// we want jpeg ...
add_filter( 'pdf_renderer_image_type', function( $type ) {
	return 'image/jpeg';
});
// ... and a specific treatment for PDFs.
add_filter( 'jpeg_quality', function( $quality, $context = '' ) {
	if ( 'pdf_renderer' === $context ) {
		// Everybody loves artifacts.
		return 1;
	}
	return $quality;
}, 10, 2);

Development

npm scripts:

  • npm run audit: Run phpcs audit
  • npm run build: Build css and js from sources
  • npm run dev: Watch css and js source dirs
  • npm run dashicons: Generate dashicons scss variables from source
  • npm run i18n: generate .pot file
  • npm run rollback: remove last commit (local and remote – use with caution!)
  • npm run test: run unit tests against PHP 7.4 and 8.3
  • npm run test:edge: run unit tests against PHP 8.3 only
  • npm run test:legacy: run unit tests against PHP 7.4 only

Testing

Unit Tests

Unit tests are run in wordpress/env, which is basically a docker container. Docker Desktop is required.

Unit tests are run against PHP 7.4 (legacy) and 8.3 (edge).

Run them all:

npm run test

Run edge tests only:

npm run test:edge

Configure edge test and run something in wp-cli in the docker container:

npm run test:set-edge
npm run test:reset-env
wp-env run cli wp core version
> 6.7.1