---
title: "Airdate PDF Viewer: setup guide"
description: "Airdate PDF Viewer is a free HubSpot module that shows a PDF right in your page: a brochure, a programme, a price list, slides."
---

[Skip to content](https://www.airdatethemes.com/airdate-pdf-viewer-docs#main-content)

[![Northwind](https://www.airdatethemes.com/hs-fs/hubfs/airdate-demo/northwind-logo.png?width=600&height=192&name=northwind-logo.png "Northwind")](https://149405016.hs-sites-eu1.com/en/growth-sessions?hsLang=en)

- [Sessions](https://www.airdatethemes.com/en/growth-sessions#sessions)
- [Replays](https://www.airdatethemes.com/en/growth-sessions#replays)
- [Speakers](https://www.airdatethemes.com/en/growth-sessions#speakers)
- [FAQ](https://www.airdatethemes.com/en/growth-sessions#faq)

- [Sessions](https://www.airdatethemes.com/en/growth-sessions#sessions)
- [Replays](https://www.airdatethemes.com/en/growth-sessions#replays)
- [Speakers](https://www.airdatethemes.com/en/growth-sessions#speakers)
- [FAQ](https://www.airdatethemes.com/en/growth-sessions#faq)

[Save my seat](https://149405016.hs-sites-eu1.com/en/growth-sessions?hsLang=en#register)

Documentation

# Airdate PDF Viewer: setup guide

Airdate PDF Viewer is a free HubSpot module that shows a PDF right in your page: a brochure, a programme, a price list, slides. Visitors scroll the pages, zoom, go full screen and download the file, on computers and on phones. You can ask for a HubSpot form before the rest of the pages, after a few free ones, or before the download only.

Not installed yet? See what it does, with a live demo: [PDF viewer for HubSpot pages (free module)](https://www.airdatethemes.com/hubspot-pdf-viewer?hsLang=en).

It works on every HubSpot plan. No app to install, no account to create. The pages are drawn by PDF.js, the open source PDF reader made by Mozilla, which the module loads from jsDelivr when the viewer comes near the screen (see "What loads, and when").

**Important:** with a form, this is a soft gate. The PDF address is in the page, so a visitor who reads the page source can find the file. It is made to collect contacts for a brochure or a guide, not to protect private documents. See "Limits" below.

## 1. Install and add the module

1. Install Airdate PDF Viewer from the HubSpot Template Marketplace.
2. Open a website page, landing page or blog post in the editor.
3. In the **Add** panel, search for **Airdate PDF Viewer** and drag it where you want the document.
4. Pick the **PDF file**, then publish.

A new module has no PDF. In the editor, a yellow note says so: "Pick a PDF file or paste a PDF link". Visitors never see these notes.

## 2. Heading and introduction

- **Heading** and **Heading level** (H2, H3 or H4): the title above the document, "Read the brochure" by default. Leave it empty to show none. Pick the level that fits the outline of your page.
- **Introduction**: one line under the heading, such as "Every module, the dates and the fees, page by page." Leave it empty to show none.

## 3. The document

- **PDF file**: upload or pick a PDF in the HubSpot file manager. This is the simplest choice: it always works.
- **Or a PDF link**: the address of a PDF, used when no file is picked. See "A PDF on another site" below.
- **Document title**: the name screen readers announce for the viewer, and the name of the downloaded file ("Programme brochure 2027" saves as `Programme brochure 2027.pdf`). Empty: the file name is used.
- **Cover image (optional)**: shown until the document has loaded, and as the cover beside the form when no page is free. Empty: the first page of the PDF is drawn instead, which is what most people want.
- **Download button**: on by default. Off, the document can only be read in the page. The file itself stays reachable by anyone who looks for it.

Up to about 20 MB reads well on a phone. A brochure of 10 to 30 pages is usually under 5 MB.

## 4. Form

- **Form**: **No form** (the default), **Before reading the rest** or **Before downloading only**. 
    - Before reading the rest: the first pages read freely; after them, a button leads to the form, and the other pages open in place as soon as it is sent. The download button shows once the form is sent.
    - Before downloading only: every page reads freely. The download button shows the form first, then the file downloads by itself once it is sent.
- **Free pages before the form**: 2 by default. With 0, only the cover shows, beside the form (under it in a narrow column). If you set more free pages than the document has, everything reads freely and the form comes before the download.
- **HubSpot form**: the form visitors fill in. Forms from the new form editor and from the legacy editor both work. Keep the inline response: a redirect sends the visitor away from the document.
- **Form heading** and **Form text**: a short title and one line above the form. Leave them empty to show none.

With a form step chosen but no HubSpot form picked, there is no form step: the whole document is open, and a yellow note in the editor says so.

## 5. Remember, key and link

- **Remember the visitor for (days)**: 180 by default, from 0 to 730. For this time, a visitor who sent the form gets the whole document straight away on their next visits. With 0, it stays open only until the browser tab is closed.
- **Document key (optional)**: viewers with the same key open together, on any page of the site. Leave it empty and each document has its own form.
- **Open link parameter (optional)**: a word, such as `brochure`, that opens the document without the form when it is in the page address (`?brochure`). For emails to people who already filled in a form. Leave it empty to turn it off.
- **Skip the form for known contacts**: off by default. When on, visitors HubSpot already knows (its tracking cookie is linked to a contact) get the whole document directly.

## 6. In the editor

- **In the editor, show**: **The form (locked)** by default, or **The whole document (unlocked)**. It only changes what you see in the editor and in previews, so you can check both states and style the form. On the live page, visitors see what their own visit allows.

## 7. Texts

Every word the module adds is a field, in the **Texts** group. Write them in your page's language:

- the page counter ("Page {page} of {total}") and the page name read by screen readers ("Page {page}");
- the toolbar buttons: previous page, next page, zoom in, zoom out, full screen, exit full screen, download;
- while loading, and when the PDF cannot show here, with its "Open the PDF" button;
- the texts of the form step: on the lock, on the cover, the message when the download needs the form, and the messages once unlocked or when the download starts, read by screen readers;
- the screen reader hint for links that open a new tab, and the two editor notes.

## 8. Appearance

In the **Style** tab:

- **Viewer height (px)**: 680 by default, from 320 to 1,400. On phones the viewer is never taller than 85 % of the screen, so the page around it still scrolls.
- Colors: accent (download button, lock, focus ring; it follows your theme's primary color), text, secondary text, toolbar and form panel background, borders, background behind the pages.
- **Corner radius**: 0 to 24 px, for the viewer and the form panel.

The module uses your theme's font. The form keeps the style of your theme or of the form itself; the module only removes the white box the new form editor puts around a form.

## Reading the document

- **Pages** fit the width of the viewer and are drawn as they come near the visible part, so a long document does not slow the page down.
- **Previous and next** move one page; the counter follows the scroll.
- **Zoom** goes from 50 % to 300 %. Zoomed in, the pages scroll sideways inside the viewer, never the page itself.
- **Full screen** shows where the browser allows it (not on iPhone, where Safari keeps full screen for videos).
- **Text**: the words of each page sit, invisible, over the drawing. Visitors can select and copy a sentence, find a word with their browser's search on the pages already drawn, and screen readers can read it.
- **Download** saves the file under the document title.

## What loads, and when

Nothing loads with the page. When the viewer comes within about one screen of the visible part, the module loads PDF.js 4.10.38 from jsDelivr (`cdn.jsdelivr.net`, about 530 KB compressed the first time, then from the browser cache) and reads the PDF once. No cookie, no tracking, no other site. PDF.js runs without scripting: a PDF cannot run code in the page.

## A PDF on another site

Files from the HubSpot file manager always work. A PDF hosted elsewhere shows in the viewer only if that site allows other sites to read it (a setting called CORS). If it does not, visitors see "This document cannot be shown here." with an "Open the PDF" button that opens the file in a new tab. To avoid it, upload the PDF to the file manager.

## Forms: new editor and legacy editor

Both work. The module recognizes the form by its id: once it is sent successfully, the document opens (or downloads). Other forms on the page, such as a newsletter in the footer, open nothing. Submissions go to HubSpot like any other submission of that form.

## Without JavaScript

Without a form step, the module shows an "Open the PDF" link to the file. With a form step, it shows the form and no link.

## Accessibility

- The viewer is a region named after the document, reachable with the keyboard: arrow keys scroll the pages.
- Every toolbar button has a name; the page counter is visible text.
- Each page is a named group ("Page 3") with its words readable by screen readers.
- After the form, the opening is announced, and the focus moves to the first page that opened.
- Animations follow the visitor's reduced motion setting.

## Limits

- **A soft gate.** The PDF address is in the page: someone who reads the page source can open the file without the form. For documents that must stay private, use HubSpot's private content (memberships) where your plan includes it.
- **Links inside the PDF** are not clickable in the viewer. Put the links that matter in the page around it, or rely on the download.
- **Forms inside the PDF** (fillable PDF forms) are shown as drawn, not filled in.
- **Blocked storage.** If the visitor's browser blocks site storage, the document still opens after the form, for that page view only.
- **Per browser.** The module remembers the browser, not the person, unless the known contacts option is on and HubSpot knows the visitor.
- **Old browsers** that cannot run PDF.js get the "Open the PDF" button instead.

## FAQ

**Does it need Content Hub Pro?**  
No. It works on every HubSpot plan, including free.

**Does it work in emails?**  
No. It works in website pages, landing pages and blog pages. In your emails, link to the page, with the open link parameter if you want the document to open directly.

**Why not the browser's own PDF viewer?**  
Chrome on Android does not show a PDF inside a page, and Safari on iPhone shows only the first page. The module draws every page itself, the same way everywhere.

**I sent the form and now I cannot see it any more. How do I test again?**  
Clear the site data of your site in your browser, or use a private window.

**Can I use it more than once on a page?**  
Yes. Each module has its own document, form and settings. Give them the same **Document key** to open them together.

## Texts in French, German and Spanish

Every word the module shows is a field. To use the module on a page in another language, open the module in the editor and paste these texts in the matching fields. Keep the words in braces, such as `{n}`, as they are: the module replaces them. Dates, times and numbers already follow the language of the page.

### French (Français)

| Field | Text to paste |
| --- | --- |
| Heading | Lire la brochure |
| Introduction | Tous les modules, les dates et les tarifs, page par page. |
| Form heading | Lire toute la brochure |
| Form text | Dites-nous où envoyer la suite, et toutes les pages s’ouvrent ici même. |
| Page counter | Page {page} sur {total} |
| Page name (for screen readers) | Page {page} |
| Previous page button | Page précédente |
| Next page button | Page suivante |
| Zoom in button | Zoom avant |
| Zoom out button | Zoom arrière |
| Full screen button | Plein écran |
| Exit full screen button | Quitter le plein écran |
| Download button | Télécharger le PDF |
| Button when the PDF cannot show here | Ouvrir le PDF |
| While loading | Chargement du document… |
| When the PDF cannot show here | Ce document ne peut pas s’afficher ici. |
| Text on the lock | Remplissez le formulaire pour lire la suite |
| Text on the cover, before the form | Remplissez le formulaire pour lire le document |
| Message when download needs the form | Remplissez le formulaire ci-dessous pour télécharger le PDF. |
| Message once unlocked (read by screen readers) | Merci ! Tout le document est ouvert. |
| Message when the download starts | Merci ! Votre téléchargement commence. |
| Screen reader hint for links that open a new tab | (s’ouvre dans un nouvel onglet) |
| Editor note: no PDF | Choisissez un fichier PDF ou collez un lien PDF : sinon, les visiteurs ne voient rien. |
| Editor note: no form | Choisissez un formulaire : sans formulaire, tout le document est en libre accès. |

### German (Deutsch)

| Field | Text to paste |
| --- | --- |
| Heading | Broschüre lesen |
| Introduction | Alle Module, Termine und Gebühren, Seite für Seite. |
| Form heading | Die ganze Broschüre lesen |
| Form text | Sagen Sie uns, wohin wir die Unterlagen senden dürfen, und alle Seiten öffnen sich direkt hier. |
| Page counter | Seite {page} von {total} |
| Page name (for screen readers) | Seite {page} |
| Previous page button | Vorherige Seite |
| Next page button | Nächste Seite |
| Zoom in button | Vergrößern |
| Zoom out button | Verkleinern |
| Full screen button | Vollbild |
| Exit full screen button | Vollbild beenden |
| Download button | PDF herunterladen |
| Button when the PDF cannot show here | PDF öffnen |
| While loading | Dokument wird geladen… |
| When the PDF cannot show here | Dieses Dokument kann hier nicht angezeigt werden. |
| Text on the lock | Füllen Sie das Formular aus, um weiterzulesen |
| Text on the cover, before the form | Füllen Sie das Formular aus, um das Dokument zu lesen |
| Message when download needs the form | Füllen Sie das Formular unten aus, um das PDF herunterzuladen. |
| Message once unlocked (read by screen readers) | Danke! Das ganze Dokument ist jetzt freigeschaltet. |
| Message when the download starts | Danke! Ihr Download startet. |
| Screen reader hint for links that open a new tab | (öffnet in einem neuen Tab) |
| Editor note: no PDF | Wählen Sie eine PDF-Datei aus oder fügen Sie einen PDF-Link ein: Sonst sehen Besucher nichts. |
| Editor note: no form | Wählen Sie ein Formular: Ohne Formular ist das ganze Dokument frei zugänglich. |

### Spanish (Español)

| Field | Text to paste |
| --- | --- |
| Heading | Leer el folleto |
| Introduction | Todos los módulos, las fechas y los precios, página a página. |
| Form heading | Lea el folleto completo |
| Form text | Díganos adónde enviar el seguimiento y todas las páginas se abrirán aquí mismo. |
| Page counter | Página {page} de {total} |
| Page name (for screen readers) | Página {page} |
| Previous page button | Página anterior |
| Next page button | Página siguiente |
| Zoom in button | Acercar |
| Zoom out button | Alejar |
| Full screen button | Pantalla completa |
| Exit full screen button | Salir de pantalla completa |
| Download button | Descargar el PDF |
| Button when the PDF cannot show here | Abrir el PDF |
| While loading | Cargando el documento… |
| When the PDF cannot show here | Este documento no se puede mostrar aquí. |
| Text on the lock | Complete el formulario para leer el resto |
| Text on the cover, before the form | Complete el formulario para leer el documento |
| Message when download needs the form | Complete el siguiente formulario para descargar el PDF. |
| Message once unlocked (read by screen readers) | ¡Gracias! Todo el documento está abierto. |
| Message when the download starts | ¡Gracias! Su descarga está comenzando. |
| Screen reader hint for links that open a new tab | (se abre en una pestaña nueva) |
| Editor note: no PDF | Elija un archivo PDF o pegue un enlace a un PDF: de lo contrario, los visitantes no ven nada. |
| Editor note: no form | Elija un formulario: sin él, todo el documento es de libre acceso. |

## Support

Questions or a bug? Email [support@airdatethemes.com](mailto:support@airdatethemes.com), in English or French. We answer within two business days.

## Going further

This module shows one document. For a whole training catalogue, with programme pages, intake dates, places left and an enrolment form, **Almanac** (599 $) is a theme made for training providers. [See it on the marketplace](https://ecosystem.hubspot.com/marketplace/website/almanac-theme-by-emilien-poinsot).

[Follow us on Facebook](https://www.facebook.com/) [Follow us on LinkedIn](https://www.linkedin.com/) [Follow us on Twitter](https://www.twitter.com/) [Follow us on Instagram](https://www.instagram.com/)

© 2026 All rights reserved.