Title: EMIANO PDF Summarizer
Author: littycojp
Published: <strong>October 19, 2026</strong>
Last modified: October 19, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/emiano-pdf-summarizer.svg)

# EMIANO PDF Summarizer

 By [littycojp](https://profiles.wordpress.org/littycojp/)

[Download](https://downloads.wordpress.org/plugin/emiano-pdf-summarizer.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/emiano-pdf-summarizer/#description)
 * [Reviews](https://wordpress.org/plugins/emiano-pdf-summarizer/#reviews)
 *  [Installation](https://wordpress.org/plugins/emiano-pdf-summarizer/#installation)
 * [Development](https://wordpress.org/plugins/emiano-pdf-summarizer/#developers)

 [Support](https://wordpress.org/support/plugin/emiano-pdf-summarizer/)

## Description

EMIANO PDF Summarizer helps you summarize a PDF assigned to a post, review and edit
the generated result in the WordPress block editor, and insert the result into the
post as standard WordPress blocks.

Main features:

 * Choose Gemini, OpenAI, or Claude as the AI provider.
 * Configure a model and API key separately for each provider. API keys can also
   be defined in `wp-config.php`.
 * Assign a PDF to each post.
 * Read PDFs from an ACF file field, arbitrary post meta, or the plugin’s own PDF
   field.
 * Configure summary length, writing style, and whether to generate a summary heading.
 * Review and edit the summary heading and body separately.
 * Display the summary body character count in real time.
 * Regenerate a summary.
 * Insert the result as standard paragraph and heading blocks.
 * If both the post title and content are empty, optionally place the generated 
   summary heading in the post title.
 * Retry automatically when an AI provider reports temporary high demand.
 * Show progress, elapsed time, and a cancel control while generating.
 * Show detailed provider errors during connection tests.
 * Choose whether plugin data is preserved or removed on uninstall.

This plugin does not provide an AI service. You must supply your own API key for
the provider you use. API charges, quotas, and terms are determined by the selected
provider and your account with that provider.

#### Free and Premium editions

This WordPress.org package is the Free edition. All of the main features listed 
above are available in the block editor without a paid plugin license. The Free 
edition does not include the Premium Classic Editor integration or the additional
prompt controls and processing. Those implementations are distributed separately
with Premium.

The daily safety limits described below apply to summary requests; purchasing Premium
is not required to use the Free edition.

### External services

This plugin communicates with external AI services to summarize PDFs. It also includes
the Freemius SDK for optional account services, purchases, license management, and
paid updates.

An AI request is sent only when an authorized user explicitly runs a summary or 
a connection test from the WordPress admin area. During summary generation, the 
selected PDF content and the instructions needed to create the summary are sent 
to the selected AI provider. A connection test sends a small test prompt but does
not send the post PDF.

The provider is selected on the plugin settings screen.

#### Google Gemini API

When Gemini is selected, the PDF and summary instructions are sent to the Google
Gemini API.

 * Service: https://ai.google.dev/
 * Terms: https://ai.google.dev/gemini-api/terms
 * Privacy Policy: https://policies.google.com/privacy

#### OpenAI API

When OpenAI is selected, the PDF and summary instructions are sent to the OpenAI
API.

 * Service: https://platform.openai.com/
 * Service Terms: https://openai.com/policies/service-terms/
 * Privacy Policy: https://openai.com/policies/privacy-policy/

#### Anthropic API

When Claude is selected, the PDF and summary instructions are sent to the Anthropic
API.

 * Service: https://www.anthropic.com/api
 * Commercial Terms: https://www.anthropic.com/legal/commercial-terms
 * Privacy Policy: https://www.anthropic.com/legal/privacy

Before summarizing a PDF that contains confidential, personal, or otherwise sensitive
information, review the terms and privacy policy of the selected provider and make
sure the content is appropriate to send to that provider.

#### Freemius SDK

The Freemius SDK supports optional opt-in account/usage tracking for free installations,
premium purchases, license activation, account management, and premium updates. 
Free users can choose to skip the optional opt-in. Activating a paid license communicates
license and site details (such as site URL, license key, and software versions) 
with Freemius for verification and updates. The SDK does not send PDF contents or
AI provider API keys to Freemius.

 * Service: https://freemius.com/
 * Data practices: https://freemius.com/privacy/data-practices/
 * Privacy policy: https://freemius.com/privacy/
 * Terms: https://freemius.com/terms/

### Recommended environment and limitations

EMIANO PDF Summarizer currently reads the PDF into PHP memory and sends it directly
to the selected provider as base64 data. The usable PDF size therefore depends on
the WordPress/PHP upload limit, the selected provider’s request limit, PHP `memory_limit`,
and the memory already in use by WordPress. For large PDFs, make sure the PHP memory
limit has sufficient headroom.

The default summary-request timeout is 50 seconds. If your web server or hosting
platform has a shorter request timeout, such as an nginx `fastcgi_read_timeout` 
below 50 seconds, the server may terminate the request first.

Developers can adjust outbound provider timeouts with the `emiano_request_timeout`
filter. For example, to use a 25-second timeout:

    ```
    add_filter( 'emiano_request_timeout', function( $timeout, $provider, $context ) { return 25; }, 10, 3 );
    ```

The filter receives the current timeout, provider slug (`gemini`, `openai`, or `
claude`), and request context (`summary` or `connection_test`). In general, set 
the plugin timeout lower than the hosting platform’s hard request timeout.

#### Daily AI summary safety limits

Both daily safety limits are unlimited (0) by default. Administrators who want to
guard against accidental API spending can optionally set per-user and site-wide 
limits in Settings > EMIANO PDF Summarizer. Either value can be set to 0 for unlimited.
No payment or plugin license is needed to change or disable the limits. Changing
a limit takes effect immediately without resetting existing daily counts. Existing
explicitly saved limits are preserved when upgrading.

The counter increments immediately before the first provider request for a summary
operation. Regeneration counts as a new operation. Automatic retries caused by a
temporary provider-busy response do not add another count for the same user action.
Connection tests do not count. Administrators are subject to the same limits.

Counters reset when the date changes according to the WordPress site timezone. When
a limit is reached, the editor shows the remaining count and next reset time.

Developers can change these safety limits with the `emiano_usage_daily_limits` filter.
For example, to allow 200 summaries per user and 2,000 per site each day:

    ```
    add_filter( 'emiano_usage_daily_limits', function( $limits ) { $limits['user'] = 200; $limits['site'] = 2000; return $limits; } );
    ```

Zero means unlimited, including when supplied through the filter. Invalid, non-integer,
and negative filter values fall back to the configured safety limits.

#### Other limitations

 * WordPress Multisite has not been verified and is currently outside the supported
   environment.
 * Persistent object-cache environments such as Redis or Memcached have not yet 
   been verified.
 * PDF processing is synchronous. Hosting-level request timeouts can end a long-
   running request even when the provider is still processing it.

### Development source and reproducible build

The editable, maintained source for the block-editor panel is `assets/js/editor.
js`. It is plain JavaScript using the WordPress-provided `window.wp` APIs; there
is no separate JSX or TypeScript source or transpilation step. The file documents
PDF selection, state, requests, cancellation, insertion and the extension hooks.
Other plugin-authored JavaScript in `assets/js/` is provided in its directly editable
source form.

WordPress loads `assets/js/editor.min.js`, generated only from `assets/js/editor.
js`. The adjacent `assets/js/editor.min.js.map` includes that source. Source files,
build scripts, `package.json` and `pnpm-lock.yaml` are included in this plugin package;`
node_modules` is not required at runtime and must not be included in the distribution
ZIP.

To reproduce the runtime file from the plugin root, use Node.js 24 and pnpm 11.25.0:

 1. Run `pnpm install --frozen-lockfile --ignore-scripts` to install the locked development
    dependencies.
 2. Edit `assets/js/editor.js` as needed. Optionally run `pnpm run format`.
 3. Run `pnpm run build` to regenerate `editor.min.js` and its source map.
 4. Run `pnpm run check` to check JavaScript syntax, source/runtime correspondence,
    the embedded source and byte-for-byte regeneration.

The build entry point is `tools/build-editor.mjs`. Terser 5.44.0 removes whitespace
and non-license comments with compression optimizations and identifier mangling 
disabled. Package versions and integrity hashes are recorded in the lockfile. Do
not edit the generated runtime file directly. WordPress supplies the script dependencies;
this build does not bundle WordPress libraries or change the existing script handle,
localized configuration or extension hooks.

## Installation

Activate only one edition of EMIANO PDF Summarizer at a time. This initial release
uses the emiano namespace for its settings and PDF selections.

 1. Upload the `emiano-pdf-summarizer` folder to `/wp-content/plugins/`, or upload 
    the ZIP file from the WordPress admin Plugins screen.
 2. Activate EMIANO PDF Summarizer.
 3. Open Settings > EMIANO PDF Summarizer.
 4. Select the AI provider and model, then configure an API key. You may store the 
    key in WordPress settings or define it in `wp-config.php`.
 5. Select the target post types and configure the PDF field for each post type.
 6. Open a target post in the block editor and use the PDF AI Summary panel to generate
    a summary.
 7. Review and edit the result, then insert it into the content and save or update 
    the post normally.

## FAQ

### Do I need an AI API key?

Yes. You need an API key for the provider you choose: Gemini, OpenAI, or Claude.

You can save the key in the plugin settings or define it in `wp-config.php` with
one of the following constants. A non-empty `wp-config.php` value takes priority
over the database value.

    ```
    define( 'EMIANO_GEMINI_API_KEY', 'your-api-key' );
    define( 'EMIANO_OPENAI_API_KEY', 'your-api-key' );
    define( 'EMIANO_CLAUDE_API_KEY', 'your-api-key' );
    ```

When a provider key is moved to `wp-config.php`, an existing database-stored key
for that provider is automatically cleared so a second plaintext copy is not retained
in the plugin option.

### Where is the PDF sent?

The PDF is sent to the AI provider selected on the settings screen. See the External
services section for the destinations and related terms and privacy policies.

### Is AI-generated content saved automatically?

No. The generated result is shown in the editor for review and editing. It is only
added to the post when you choose Insert into content, and the post is then saved
using the normal WordPress save/update workflow.

### Will deleting the plugin remove summaries already inserted into posts?

No. Inserted summaries are stored as standard WordPress blocks, so they remain in
the post content after the plugin is removed.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“EMIANO PDF Summarizer” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ littycojp ](https://profiles.wordpress.org/littycojp/)

[Translate “EMIANO PDF Summarizer” into your language.](https://translate.wordpress.org/projects/wp-plugins/emiano-pdf-summarizer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/emiano-pdf-summarizer/),
check out the [SVN repository](https://plugins.svn.wordpress.org/emiano-pdf-summarizer/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/emiano-pdf-summarizer/)
by [RSS](https://plugins.trac.wordpress.org/log/emiano-pdf-summarizer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial public release.
 * Summarize PDFs with Gemini, OpenAI, or Claude and insert editable results into
   the WordPress block editor.
 * Optional administrator-configured daily spending-safety limits, unlimited by 
   default.

## Meta

 *  Version **1.0.0**
 *  Last updated **15 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[gutenberg](https://wordpress.org/plugins/tags/gutenberg/)
   [openai](https://wordpress.org/plugins/tags/openai/)[pdf](https://wordpress.org/plugins/tags/pdf/)
   [summary](https://wordpress.org/plugins/tags/summary/)
 *  [Advanced View](https://wordpress.org/plugins/emiano-pdf-summarizer/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/emiano-pdf-summarizer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/emiano-pdf-summarizer/reviews/)

## Contributors

 *   [ littycojp ](https://profiles.wordpress.org/littycojp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/emiano-pdf-summarizer/)