Builder PDF Presenter · DocumentationBuilder PDF Presenter
Deutsch
About
Publish PDFs with less effort: lightweight cover cards for browsing and a comfortable reader that opens when needed. Suitable for club newsletters, meeting minutes, community publications and document libraries on any supported content post type.
Your data in your WordPress. Period. Free, without advertising, reader tracking or a Pro edition.
Version 1.0.0 · WordPress 6.9+ · PHP 8.3+
Getting started · User guide · FAQ by topic · Examples
Contents
At a Glance
- One PDF or an ordered collection per post, page or independent block.
- Three card designs: cover, compact and document list; responsive grids.
- Local PDF.js reader in a modal or new tab; direct-file opening is also available.
- Configurable reading/download buttons, labels, covers and reader controls.
- Website defaults with content type, contribution and document overrides.
- Document and filter blocks, eight starter patterns, shortcodes and three native Bricks elements.
- Optional central reader watermark; explicit PDF Poster migration with recovery.
- Local Site Health checks and permission-aware Command Palette shortcuts.
Getting started
- Install and activate the plugin ZIP under Plugins → Add Plugin → Upload Plugin.
- Open Settings → Builder PDF Presenter. Select content types that should receive the PDF management panel and set the website defaults.
- In a post, select PDFs from the Media Library or upload them. Reorder entries and edit display titles where useful.
- Insert the Builder PDF Presenter block and use the assigned documents. Alternatively create an independent collection in the block, use
[builder_pdf_presenter] or choose a native Bricks element.
- Preview the page and test reading/download actions. Save changes before leaving the settings page.
Embedding PDFs: Settings → Builder PDF Presenter → Embed PDFs shows the available ways to insert documents. Use [builder_pdf_presenter] in a Shortcode block or the Classic Editor; the shortcode reference lists every parameter with examples. Block Editor blocks/patterns and native Bricks elements are alternative insertion methods.
Switching from another PDF plugin: Under Tools → PDF migration, review supported PDF Poster/PDF Embedder content and migrate selected posts. Read the migration guide for supported formats, result reports and recovery.
Bricks and Meta Box are not required. The native Bricks integration was tested with Bricks 2.4.5. A Bricks-built page still depends on Bricks; changing the theme does not convert its layout into Block Editor.
Feature Highlights
A fast overview, a reader when needed
The grid displays ordinary cover images. It does not initialize a separate PDF.js reader for every visible card. Opening a document loads the reader on demand. Large source PDFs can still take time to load; the overview does not compress the original files.
Simple document care
Select or upload multiple PDFs, reorder them, change display titles, replace files or assign covers. Administrators set collection limits. Reducing a limit never removes existing entries.
Consistent defaults with useful exceptions
Keep the usual settings in one place. Content types, individual contributions and documents can override inheritable settings. The fixed save bar identifies unsaved changes and keeps edits available after a save failure.
Block Editor and native Bricks workflows
Use Block Editor color, typography, spacing and other supported style controls for the current block. The compact “PDF Presenter · Block” toolbar belongs to the editor only. In Bricks, PDF document works inside post loops; PDF collection displays one post’s documents. Native styles, dynamic tags and conditions remain available.
Central reader branding
Administrators enable a shared text/logo watermark and decide whether editors may disable it per document. The overlay changes the reader display only; original files and downloads are unaffected.
A deliberate scope
No flipbook effects, Pro edition, advertising, reader analytics or cloud synchronization. Hiding Download is not copy protection. Document files and cover images keep the server’s existing access rules.
Sort and find documents
Search named libraries by titles and file names, sort results and filter file sizes. Search covers the whole accessible collection before pagination, never PDF contents. Ready-to-use patterns connect a grid and filters, including a sidebar layout.
FAQ
Do I need a page builder or custom-field plugin?
No. The core works with Block Editor and shortcodes. Bricks integration is optional.
Can one post contain several PDFs?
Yes. Add an ordered collection to the post or directly to a block and display it as cards or a list.
Can I create an archive across posts?
Yes. Use the block’s contribution query or a native post Query Loop. The plugin query shows the first or all PDFs per source post and filters the complete accessible collection before pagination.
Why is a preview image missing?
Automatic PDF previews depend on the server. Generate a missing preview where supported or select a custom cover.
Is this a protected file or membership system?
No. Button visibility is not file protection. Existing server permissions still apply.
Does the watermark change downloads?
No. It appears only in the embedded reader.
Is there a Pro edition or reader tracking?
No. There is no Pro edition, upselling or reader tracking by the plugin.
Read all questions and answers →
Changelog
1.0.0 · 2026-11-06
- New: PDF cards with previews, a reader and downloads for individual documents and collections.
- New: Global defaults and individual settings for any post type.
- New: Block Editor, shortcodes and native Bricks integration, including metadata filters and sorting.
- New: Migration from PDF Poster and PDF Embedder with outcome reports and recovery.
About the project
For years, club and community clients needed a simple way to publish PDFs. Missing functions, upselling and awkward administration kept getting in the way. A client project in autumn 2026 finally prompted me to build a focused solution of my own.
— David Decker · Read the story
Help, security and support
User guide · FAQ by topic · Plugin website
Report suspected vulnerabilities privately; follow SECURITY.md. Do not post customer files, credentials or exploit details in public support requests.
To support the project: Ko-fi · Buy Me a Coffee · PayPal.
© 2026 David Decker – DECKERWEB. Plugin license: GPL v2 or later.
PDF.js: Apache-2.0, see vendor/pdfjs/LICENSE. Embedded deckerweb components retain their included notices. Original PDF Presenter interface glyphs by David Decker – DECKERWEB. Any retained Tabler asset notices are in vendor/tabler/LICENSE.
Marketing artwork: original vector artwork by David Decker – DECKERWEB. Bricolage Grotesque and Manrope lettering under SIL OFL 1.1; license notices in assets/branding/licenses.
User guide
Deutsch · Overview · FAQ by topic
Choose the workflow
One post with one or several documents: Enable the post type under Settings → Builder PDF Presenter. Add PDFs in its document panel, then insert the block with “Documents assigned to this contribution”. A PDF assigned in the panel is not inserted into unrelated posts automatically.
An independent block: Select “Own PDF collection” and choose or upload files. These assignments belong to this block. Reorder documents and set display titles there. Removing an entry from a collection does not delete the Media Library file.
An archive across posts: Select Query document contributions, choose its post type and the first or all assigned PDFs. Empty assignments do not consume result slots. Configure the collection ID and page size for metadata filters and pagination.
Settings and saving
Use the left navigation to jump between content management, cards, buttons, reader, type overrides, watermark and preview. It is one form, so switching sections keeps edits. On smaller screens the navigation appears above the sections.
The fixed bottom bar shows saved/unsaved status. A dot next to Save changes also indicates unsaved edits. Saving runs without leaving the page; an error keeps your fields intact for another attempt. Leaving with unsaved changes prompts the browser warning where supported. Without JavaScript, the standard WordPress form remains available.
Settings cascade from built-in defaults to website, content type, post and document/output overrides. “Inherit” follows the preceding scope. Collection limits and central watermark policy remain administrative controls. Existing documents survive a reduction of the limit.
Block Editor appearance
The “PDF Presenter · Block” toolbar is editor-only; its name is not a page heading. Use Edit for document care and Preview for the cards. Test reader opens an explicit test link. Block style settings affect the output, not this toolbar. Theme support determines which native Block Editor style panels are offered.
Use cover, compact or list cards. Cover frames can preserve a consistent ratio or original proportions. Choose titles and file details that help visitors distinguish documents. Avoid extremely long labels in narrow columns.
Bricks
PDF document: Use inside a native post Query Loop, or select a PDF explicitly. With no explicit file, it uses the first PDF assigned to the current/selected source post. The source hint in the builder explains this. An element is not a copy of the file.
PDF collection: Use for all assigned documents of one source post. Let the plugin set the inner collection columns. This element does not create a query across post types.
For equal-height query cards, stretch the outer grid’s children and let the loop wrapper stretch its PDF element. The plugin’s native wrapper fills that available space; action buttons stay at the bottom. No fixed pixel height is required. Custom parent alignments can still change the result.
Dynamic tags: {bpp_count}, {bpp_id}, {bpp_title}, {bpp_url}, {bpp_reader_url}, {bpp_cover}. Except count, these use the first valid assigned document. For a condition such as {bpp_count} > 0, place the condition on the PDF element inside the post loop. Native Bricks styling/classes and Component property connections remain available. Switching off Bricks pauses only its integration; the core retains assignments.
Shortcodes and Classic Editor
Settings → Builder PDF Presenter → Embed PDFs provides copyable insertion examples. Use a Shortcode block or the Classic Editor. The dedicated shortcode reference explains all parameters and use cases.
[builder_pdf_presenter]
[builder_pdf_presenter post_id="123"]
[builder_pdf_presenter pdf_id="456" mode="tab" show_title="0"]
IDs are WordPress post/attachment IDs from your own site. By default the shortcode uses the current post. Reading mode values: modal, tab (local reader in a new tab), file (original PDF). Visibility options use 1/0; labels can be overridden with read_label and download_label.
Reader and watermark
Administrators choose navigation, zoom, current-page search, fullscreen and file links. Search applies to the current rendered page, not the entire archive. Page memory is limited to the browser session. Original PDF opening remains a fallback if the reader cannot load.
Under Watermark, enable the central template and choose text/logo, position, opacity and size. Editors can only turn that template off for individual documents if the administrator explicitly permits exceptions. It is not a PDF editing or protection feature: originals, downloads and files outside the reader are not stamped.
Migration and recovery
Tools → PDF migration appears when a supported source plugin, matching content or recovery backups are detected. Review PDF Poster/PDF Embedder sources, migrate explicitly and inspect the report. Check the new output before removing the old plugin. The migration guide covers supported formats, limitations, result reports and recovery. Keep normal website backups.
Troubleshooting and data
Tools → Site Health reports local reader files and server PDF-preview support. Missing conversion support does not prevent using custom covers. The Command Palette offers navigation shortcuts appropriate to your permissions. It does not execute imports.
Data is stored in the WordPress Media Library, post metadata and site-specific options. Deactivation/uninstall preserve documents and settings by default. There are no reader-analytics profiles. Optional deckerweb Library/Updater requests support catalogs/updates, not PDF hosting; see the included component documentation and controls.
Real-world examples · FAQ by topic
Sorting, search and filters
Collections initially follow saved order. Apply order to collection sorts once; save the post afterward. Output sorting in a block or Bricks element persistently sorts that display without changing editorial order. Visitor sorting affects the current URL only.
For archives, select Query document contributions, choose the content type, and select the first or all assigned PDFs per post. Publication date, source title and menu_order describe posts; upload date describes the Media Library PDF. menu_order is useful when your posts have meaningful values.
Give a collection a unique ID such as newsletters. Enter the same target ID in PDF filters and search. The two filter patterns provide connected layouts, including a sidebar. Apply filters searches, sorts and filters all accessible documents before pagination. This is not PDF full-text search. Sizes use existing WordPress metadata; unknown sizes remain unknown. PDFs are never analyzed during a visitor request.
Native Bricks post query loops keep native Bricks queries and filters. The additional filter element targets plugin collections, not external post loops.
Everyday comfort and portable defaults
Removing a document removes its assignment only; Undo removal restores it before saving. Documents added in the meantime are kept. Replace changes this assignment, not a shared Media Library file. Shared-use counts cover plugin assignments in editable source posts, not arbitrary foreign builder embeds.
Embed PDFs offers copyable examples and documentation links. Transfer settings exports saved defaults or accepts pasted JSON with explicit source-to-target content type mapping. Import replaces plugin defaults, never documents. No PDF files, assignments or media IDs are transferred. Watermarks remain disabled after import until their text and local logo are reviewed. Save pending settings first if you want them in an export.
Reader troubleshooting: MIME types for .mjs
PDF.js uses JavaScript modules. If the server delivers pdf.mjs or pdf.worker.mjs as text/plain or application/octet-stream, the browser can reject them with a strict MIME type error. This is a hosting configuration issue; other reader errors can have different causes. In the browser’s Network tools, check the actual response Content-Type for both files under wp-content/plugins/builder-pdf-presenter/vendor/pdfjs/build/. A JavaScript MIME type such as text/javascript or application/javascript is required. HTTP 200 alone does not confirm this.
Apache
In the affected virtual host, or in .htaccess when the host permits AddType (AllowOverride FileInfo), add:
AddType application/javascript .mjs
Keep existing rules; place this outside WordPress’s generated markers. If .htaccess overrides are unavailable, ask the hosting provider. See Apache AddType documentation.
nginx
Have the server administrator extend the JavaScript entry in the effective MIME table, commonly mime.types, to include mjs. For example, an existing application/javascript js; entry becomes:
application/javascript js mjs;
If the existing entry uses text/javascript, keep that type and append mjs. Preserve the other mappings; do not replace the full types table with this single line or duplicate the js mapping. nginx does not read .htaccess. Validate configuration with nginx -t before reloading through the server’s usual service management. See nginx types documentation.
Hosting panels such as Plesk
For the affected domain, open Apache & nginx Settings → MIME types, choose the custom value option and add application/javascript .mjs, preserving existing entries. Apply changes; activation may take a few minutes. Labels and availability depend on the provider. If nginx serves these files directly, its effective MIME mapping must also be correct. See Plesk’s MIME configuration guide.
Verify and keep downloads available
After changing configuration, refresh affected browser/proxy caches and check both module responses again, then open the reader. The plugin does not edit server configuration automatically.
If the setting cannot be changed, enable the Download button and, if appropriate, hide the Read button until the reader works. Visitors can still obtain an accessible original PDF without PDF.js. Opening the original PDF directly in a new tab is another option; browser and server determine whether it opens or downloads. Existing file access restrictions still apply. An external Google or Adobe viewer is not required for this workaround.
Real-world examples
Three document workflows
- One PDF in a post: Attach meeting minutes, a program or an issue to the relevant post.
- Several PDFs in one post: Display an ordered collection of documents as a grid or list.
- An archive across posts: Query posts and present their assigned documents as cards. One post per issue is a simple model for a magazine archive.
The source “Query document contributions” can show the first or all assigned PDFs per matching post. Named plugin collections search and sort the whole accessible result set before pagination. Native post Query Loops keep their own query and pagination; use native Bricks filters for Bricks post loops.
Everyday publishing scenarios
| Organization |
Everyday workflow |
Result |
| Neighborhood association |
Assign newsletters and meeting minutes to the relevant update or custom post type. |
Read documents locally and find earlier updates on an archive page. |
| Volunteer nonprofit |
Publish a post for each annual or impact report. |
Show the organization’s work across several years. |
| Parent-teacher organization (PTO) |
Collect an event schedule, family information and forms in one post. |
Families find the documents together. |
| Community garden |
Add garden rules, workday information and season recaps to relevant posts. |
Volunteers manage useful documents without a complicated publishing system. |
Choose a PDF, publish it, find it again. Free, without advertising, reader tracking by the plugin or a Pro edition. PDF files and covers keep the access rules of the website; displaying them does not automatically protect them.
Why I built Builder PDF Presenter
For years, clients running clubs and community organizations have asked me for something that sounds simple: a sensible way to publish a few PDFs on their WordPress website.
In practice, the usual options repeatedly got in the way. Some lacked essential functions. Others had the functions, but kept them behind Pro upgrades and upselling. And even where the features were available, document management and the result on the website often felt like an afterthought.
A client project in autumn 2026 brought these problems into sharp focus. Managing documents took more work than it should, PDF overviews loaded slowly, and making the result look good required too much adjustment. That was the point at which I decided to build my own plugin.
Builder PDF Presenter is the result: choose a PDF, give it a clear presentation and let people read it when they want to. Lightweight cover images make document overviews practical, while a local PDF.js reader opens on demand.
Your data in your WordPress. Period.
There is no Pro edition, advertising or upselling. The plugin does not track readers or synchronize documents to a cloud service. Its purpose is straightforward document publishing, rather than flipbook effects or a membership system.
— David Decker
FAQ by topic
Getting started
Is this a flipbook or magazine-effects plugin?
No. Builder PDF Presenter focuses on simple document management, fast cover overviews and comfortable reading. It does not simulate turning pages.
Is there a Pro edition, advertising or cloud synchronization?
No. There are no paid feature locks, advertisements or cloud synchronization. Documents are managed in your WordPress Media Library.
No. The core, Block Editor block and shortcodes work independently. Native Bricks elements are available when Bricks is active. If Bricks is switched off, document assignments and other output methods remain available; a Bricks layout itself still needs Bricks to render.
Working with documents
What is a collection?
The PDFs assigned to one post, page or independent PDF block. They can be reordered and presented as a grid or list, including a collection with just one document.
How do I build an archive from several posts?
For one issue per post, use “Query document contributions” in the block, or a native WordPress/Bricks post Query Loop. The direct block query can display the first or all PDFs per post and applies metadata filters before pagination. In a WordPress Query Loop, the PDF block uses that loop post as its source; Bricks PDF document uses its first assigned PDF. Bricks PDF collection can display a post collection or a plugin archive.
Why does a newly inserted Bricks element already show a PDF?
Without an explicit file, PDF document uses the first PDF assigned to the current source post, or the current loop post. This is actual content, not a demonstration file. Inserting the element does not create another document assignment.
Is “PDF Presenter · Block” part of my page?
No. The compact identity and Edit/Preview switch are editor controls. They do not render on the website. Document titles belong to the cards below.
How do defaults and overrides work?
Built-in defaults → website defaults → content type defaults → contribution settings → individual document/output settings. An empty “Inherit” value keeps the setting from the preceding scope. Central collection limits and watermark policy remain under administrator control.
Why is my cover missing?
WordPress must have a suitable PDF preview, or you can select a custom image. Automatic generation depends on the server image editor and PDF support. Use “Generate missing previews” or assign a cover manually; the frontend never generates PDF images during a visitor request.
Reader, privacy and access
Why PDF.js?
PDF.js is open-source PDF technology also used in Firefox. The reader’s scripts are served locally. The plugin does not require Adobe or Google Docs to display a PDF and does not fall back to those services.
Why does the reader show a MIME type error for .mjs files?
The server may be sending the PDF.js modules as plain text rather than JavaScript. Correct the MIME mapping for .mjs in Apache, nginx or your hosting panel. The MIME troubleshooting guide includes configuration examples and verification steps. If this cannot be fixed, keep the Download button enabled and optionally hide Read: accessible original PDFs remain available without the reader.
What if the reader fails to load?
A clear error message directs visitors to the original PDF link. File access rules still apply. A browser may open or download the original depending on its capabilities and server headers.
Are documents protected when I hide Download?
No. Hiding reader controls is not access control or copy protection. Original PDF URLs and cover images retain the server’s existing permissions. The plugin does not provide a protected document store or membership system.
Does a watermark modify my PDF?
No. It is a reader overlay. The original, downloads and files opened outside the reader are unchanged. Administrators define the template and can allow per-document on/off exceptions; editors cannot supply arbitrary watermark logos.
Does the plugin track readers or send PDFs to a cloud?
No reader statistics, profiling or cloud synchronization are provided. The PDF reader uses local assets. Optional deckerweb update/library functions may make the separately documented catalog or update requests; that does not upload the PDFs.
What data is stored in my browser?
The optional visit-only page memory uses session storage to remember the current page per document. It is used for reader convenience, not analytics. Clearing the session clears that memory.
Administration and troubleshooting
What does Site Health check?
Local reader-file availability and whether WordPress reports PDF image-editor support. It does not upload documents, scan your entire library or guarantee that every PDF can be converted. Missing preview support is a recommendation; custom covers remain usable.
What do the Command Palette shortcuts do?
They open documentation, settings or the PDF Poster migration page when the current user has permission and that page is available. They do not run migrations or save changes.
How does migration work?
Under Tools → Switch from PDF Poster, review detected contributions and migrate explicitly. A before/after snapshot and operation report support per-contribution recovery. Later edits can cause a conflict and are not silently overwritten. The tool appears when PDF Poster or relevant embeddings/backups are detected; use the existing Media Library files.
Does this work in Multisite, and what happens on uninstall?
Settings, assignments and migration reports are site-specific. Deactivation/uninstall preserve user documents and settings by default. The embedded components manage their shared temporary data separately. Keep normal backups of the website and Media Library.
Why can a theme still affect the design?
The plugin provides namespaced, readable defaults. Block Editor style controls and native Bricks styling can customize each output. Extremely broad or important theme rules can still override styles; there is no guarantee against every third-party CSS rule.
Search and portable defaults
Does collection search read PDF contents?
No. It searches the selected display title, actual source post title, Media Library title and file name. Apply filters searches the whole accessible collection before pagination. This is separate from the reader’s optional search on its currently displayed PDF page. Search URLs are shareable; the plugin does not record search statistics.
Why does a PDF have an unknown size?
The original WordPress attachment metadata may not contain a byte size. The plugin does not download or analyze a file to fill it during a visitor request. Unknown sizes have their own filter and sort last in either direction.
Does settings import move documents to another website?
No. It transfers saved presentation defaults only. Content types must be explicitly mapped, and duplicate target mappings are rejected. Media IDs and PDF assignments are not copied. The watermark is disabled and its logo removed from the imported defaults until the administrator reviews the local template. Import replaces plugin defaults, never documents or migration recovery snapshots.
PDF Poster and PDF Embedder migration: workflow, limitations and recovery
Shortcodes
Deutsch · Guide
Use shortcodes in the Classic Editor, a Shortcode block or suitable builder elements. Example IDs are placeholders for your own posts and Media Library. A readable source post is required; shortcodes do not bypass post visibility or passwords.
[builder_pdf_presenter]
| Parameter |
Meaning, values and default |
Example |
post_id |
Source post ID; default current post. |
post_id="123" |
pdf_id |
Explicit PDF attachment ID; default none. Overrides collection source. |
pdf_id="456" |
source |
post (default) or posts (archive). custom is a block-only collection array, not a shortcode format. |
source="posts" |
post_type |
Selectable content type slug for source="posts"; default post. |
post_type="programm" |
collection_id |
Unique lowercase name, max. 64 characters: letters, digits, hyphen, underscore. Connects filters; auto-generated when absent. |
collection_id="newsletters" |
per_post |
first (default): first available PDF per source post; all: every assigned PDF. |
per_post="all" |
limit |
Legacy page-size fallback, 1–500; shortcode default 500, block default 12. Empty posts do not consume slots. |
limit="12" |
page_size |
PDFs per page, 1–500; absent/0 uses limit or 500. Filtered before pagination. |
page_size="24" |
orderby |
manual, title, media_title, filename, upload_date, size, date, post_title, menu_order. Default manual for collections; date for post archives. |
orderby="title" |
order |
ASC or DESC. Default DESC for publication date, otherwise ASC. Stable ties follow saved source order. |
order="ASC" |
show_count |
Result count: 1 (default), 0 hides it. |
show_count="0" |
search_fields |
Comma-separated title,post_title,media_title,filename (all by default). Actual source post, not attachment parent; no PDF text. |
search_fields="title,filename" |
Display and reader: inherited defaults
Absent values follow: built-in → website → content type → post → document → explicit output parameter. Empty values inherit. Booleans accept 1/true or 0/false. The table lists built-in defaults; saved website defaults can differ.
| Parameter |
Purpose / values |
Built-in default |
Example |
design |
Card design; cover, compact, list |
cover |
design="cover" |
columns |
Collection columns; 1, 2, 3, 4 |
3 |
columns="1" |
mode |
Open document; modal, tab, file |
modal |
mode="modal" |
ratio |
Preview frame; a4, portrait, square, landscape, auto |
a4 |
ratio="a4" |
show_title |
Show title; 1, 0 |
1 |
show_title="0" |
show_read |
Show reading button; 1, 0 |
1 |
show_read="0" |
show_download |
Show download button; 1, 0 |
1 |
show_download="0" |
cover_link |
Make preview clickable; 1, 0 |
1 |
cover_link="0" |
show_size |
Show file size; 1, 0 |
1 |
show_size="0" |
read_label |
Reading button label; Text, max. 100 characters |
Read / Lesen |
read_label="Read" |
download_label |
Download button label; Text, max. 100 characters |
Download / Herunterladen |
download_label="Download" |
page_navigation |
Reader: page navigation; 1, 0 |
1 |
page_navigation="0" |
zoom |
Reader: zoom controls; 1, 0 |
1 |
zoom="0" |
search |
Reader: search on current page; 1, 0 |
0 |
search="0" |
print |
Reader: open PDF for printing; 1, 0 |
0 |
print="0" |
fullscreen |
Reader: fullscreen; 1, 0 |
1 |
fullscreen="0" |
reader_download |
Reader: download link; 1, 0 |
1 |
reader_download="0" |
reader_watermark |
Use reader watermark; 1, 0 |
1 |
reader_watermark="0" |
remember_page |
Reader: remember page during this visit; 1, 0 |
1 |
remember_page="0" |
initial_zoom |
Reader: initial zoom; fit, 1, 1.25, 1.5 |
fit |
initial_zoom="fit" |
[builder_pdf_filters]
| Parameter |
Meaning / default |
Example |
target |
Required matching collection_id; unique on the page. |
target="newsletters" |
layout |
horizontal (default) or vertical. |
layout="vertical" |
show_search |
1 (default); 0 hides search input. |
show_search="0" |
show_sort |
1 (default); 0 hides visitor sorting. |
show_sort="0" |
show_size_filter |
1 (default); 0 hides size filter. |
show_size_filter="0" |
show_reset |
1 (default); 0 hides the reset link. |
show_reset="0" |
Search covers configured titles and file names, never PDF contents. Apply reloads the page with shareable GET parameters; visitor sorting is not saved and no search analytics are collected. Size ranges: under 1 MiB, 1 to under 5 MiB, 5 MiB or more, unknown; 1 MiB = 1,048,576 bytes. Unknown sizes are never fetched from PDF files and sort last.
Complete examples
Current post
[builder_pdf_presenter]
Specific source post
[builder_pdf_presenter post_id="123"]
Single PDF
[builder_pdf_presenter post_id="123" pdf_id="456" mode="tab"]
All PDFs of one post, sorted
[builder_pdf_presenter post_id="123" collection_id="minutes" orderby="title" order="ASC" page_size="12"]
Archive with filter bar
[builder_pdf_filters target="newsletters"]
[builder_pdf_presenter source="posts" post_type="post" per_post="all" collection_id="newsletters" page_size="12" columns="3"]
Override actions and reader
[builder_pdf_presenter mode="modal" show_download="0" reader_download="0" zoom="1" search="1" read_label="Read now"]
Give each independently filtered collection its own name. Place filters above with content between them or in another column. Patterns supply a matching name; change both linked names when inserting multiple copies on one page. Use native Bricks filters for native Bricks post query loops.
PDF migration
Deutsch · Overview
Decide whether to switch
Use Tools → PDF migration to review supported embeds before converting selected contributions. The tool supports PDF Poster blocks and PDF Embedder blocks/shortcodes in ordinary contribution content. It reuses local Media Library PDFs without uploading, copying or deleting them. Source plugins need not remain active for discovery. They must be available again to render restored original embeds.
PDF Embedder also uses local PDF.js. Switching is useful when you want preview cards, collections and archives with reading/download actions. It is a change in presentation, not an identical viewer replacement: inline viewers become cover cards with a reading action using your current plugin defaults (for example, a modal reader). Width, height, toolbar position, hover behavior, initial page and zoom are not transferred. Check the result before removing the source plugin.
Supported and skipped content
- PDF Poster: supported blocks; its shortcodes still need manual review.
- PDF Embedder:
pdfemb/pdf-embedder-viewer blocks and real [pdf-embedder url="…"] shortcodes. The adapter was developed against free version 5.0.2; other formats need verification.
- A PDF must map unambiguously to an ordinary local Media Library PDF with an existing file. An ID/URL mismatch is not guessed away.
- External URLs, missing/ambiguous attachments and protected
securepdfs documents are skipped. No remote PDF is downloaded and no protection is removed.
- HTML/code examples, arbitrary builder metadata, templates and Premium-specific content are not automatically converted. Escaped shortcode examples are preserved.
One unsupported PDF reference leaves the whole contribution unchanged. Several independent contributions can still have different outcomes in one batch. The report explains each result.
Review, convert and verify
- Open Tools → PDF migration. Use Check again after changing source content.
- Review the listed contributions. A selectable entry has verified local PDFs; unavailable entries explain their reason. The tool does not run on activation or while viewing the page.
- Select up to 50 contributions and convert explicitly. Existing collection limits and permissions still apply.
- Check the result report, source page and any related archive. Multiple embeds retain their positions and order; each embed shows its own document, not the entire contribution collection repeatedly. Unique documents are also assigned to the contribution for archive use. Existing assignments are retained.
- Before deactivating/removing the old plugin, check all source pages, templates, builder integrations and any skipped results. The tool scans contribution content, not every possible storage location.
Post status, passwords and other contribution settings are preserved. Media files keep their existing access rules. Migration does not create protected storage or copy protection.
Recovery and later edits
The tool keeps the exact original contribution content and its prior PDF assignments. Use Recovery backups to restore a contribution individually. Later changes trigger a conflict and require explicit overwrite confirmation. Restoring replaces the migration-owned content and collection with the snapshot, including any later edits if you confirm overwriting; it does not delete media files. The last 20 operation reports remain available. General website backups remain useful.
Review PDF Poster and PDF Embedder contributions under Tools
Tools → PDF migration lists supported local PDFs and explains why unresolved or external sources cannot be selected. Review the sources before converting.
Migration outcome report and per-contribution recovery controls
After conversion, the report lists the outcome for each contribution. Recovery backups provide a separate action for restoring an individual original. Screenshots use neutral demonstration content.
Security / Sicherheit
Report suspected vulnerabilities privately through GitHub private vulnerability reporting. Include the plugin version, minimal reproduction steps and expected impact. Never post customer PDFs, passwords or exploit details in public issues. If the private form is temporarily unavailable, wait or use an already established private contact with David Decker; do not publish the details.
Sicherheitslücken vertraulich über GitHubs private Sicherheitsmeldungen melden. Pluginversion, minimale Reproduktionsschritte und erwartete Auswirkungen nennen. Keine Kunden-PDFs, Passwörter oder Exploit-Details in öffentlichen Issues veröffentlichen. Falls das private Formular vorübergehend nicht verfügbar ist, warten oder einen bereits bekannten privaten Kontakt zu David Decker nutzen; keine Details öffentlich melden.