PDFviewer is a joomla content plugin which make it possible to show pdf files in content based on https://github.com/mozilla/pdf.js. Compared to other existing pdfviewer for joomla this one is focused on integration with jDownloads and searching.
- Uses the pdf.js webviewer
- Set pagenumber to open by tag or url.
- Joomla Highlight smartsearch integration
- Set search by url.
- Show the PDF file as Embedded, popup or in a new window
- Customize height and width for each PDF embedding.
- Advanced jDownloads integration
- Show one page as an image
- Editor button
Show jdownloads file with ID 4.
{pdfviewer jdownloadsid=4 }
Link to a pdf file on other domain
{pdfviewer file=https://domain.com/documents/file.pdf }
Link to a pdf file relative to domain name
{pdfviewer file=/documents/file.pdf }
The following examples are for jdownloads.
You can use them in 'downloads' and 'downloads details' layouts.
{pdfviewer jdownloadsid={file_id} filename="{file_name}" }
Filename is needed to check if the file is a pdf file.
Page
For this advanced example I created a custom integer field {jdfield 4} this will return an integer to represent the page number.
Jdownloads example custom field integer {jdfield 4}
{pdfviewer jdownloadsid={file_id} filename="{file_name}" page={jdfield 4} }
Article example custom field integer {field 2}
{pdfviewer jdownloadsid=4 page={field 2} }
Use custom field to choose for which file pdfpreview is enabled
If you do not want to show every pdf file as preview you can create an custom field in jdownloads which you can use to turn it on or off.
{jdfield 3} if returns "Yes" then it will show the pdfviewer. You can use a checkbox or dropdown for this.
Show preview Jdownloads example custom field checkbox {jdfield }
{pdfviewer jdownloadsid={file_id} filename="{file_name}" showpdfpreview={jdfield 3} }
Search terms
Jdownloads example custom field text {jdfield 5}
{pdfviewer jdownloadsid={file_id} filename="{file_name}" search={jdfield 5} }
You also can use custom fields from articles in a article. Set 'Show label' to hide when creating a custom field for article. For example highlight keywords:
{pdfviewer jdownloadsid=[ID] search={field 5} }
You can create this custom field for in article or jdownloads. Note, You can not use the jdownloads custom field for in an article. Set 'Show label' to hide when creating a custom field for article.
Select viewer. Show the full pdf or only one page as an image.
viewer=[pdfjs|pdfimage]
Only jdownloads pdf files can be shown as image. When set to pdfimage by default the first page will beshown set page= to show an other page. Warning; Images will be created with imagick each time the page is loaded.
PDfjs show the page on default with auto size but you can change that with the following parameter
zoom=[page-width|page-height|page-fit|auto] (default)
PDfjs show nothing by default on the left side but it can be usefull to show the bookmarks for example
pagemode=[thumbs|bookmarks|attachments|none] (default) )
Open on specific page
page=[integer]
Page will be ignore if there is a smartsearch highlight present in the url.
Use ctrl+f5 to test it, else it will remember the old pagenumber.
Link to a page can also with named destination (not a bookmark) but is untested
nameddest=[destination name]
Highlight keywords
search="[keyword1] [keyword2]" keyword will be highlighted separately. If you want to search a combination enable phrase.
Enable phrase to search for a combination of words.
phrase=true
Override default preview style
style=[embed|popup|new]
with the embed and popup you can change the size at set the link text
height=[integer] width=[integer] linktext="[string]"
Use double qoutes around the linktext if it contains a space.
With embed you can also use % for width
width=80%
Parameter for use with jdownloads and a customfield, see advanced section.
showpdfpreview=[Yes]
If you want to link to a webpage with a pdffile embedded you can set following parameters to open a specific page.
?page=[integer]
?search=[keyword1]%20[keyword2]
?search=[keyword1]%20[keyword2]&phrase=true
These url parameters do not work with the pdfimage viewer else everone could access every page of the pdf file.
page and search parameters priority order:
1 highlight search (joomla smartsearch)
2 url search
3 url namedest
4 url page
5 param search
6 param namedest
7 param page
zoom, pagemode and nameddest parameters can also be used. if you add multiple urlparameters think about the syntacs '?' (for the first) en '&' for the others.
?page=10&pagemode=bookmarks&zoom=page-height
Create a custom text field (with large pdfs you maybe need multiple fields) copy the text from the pdf in the textfield you can now search for the text with smart search.
If you want to customize PDFjs you can place an override in the following folder:
[TEMPLATE]/html/plg_content_pdfviewer/assets/pdfjs The codes checks if '[TEMPLATE]/html/plg_content_pdfviewer/assets/pdfjs/web/viewer.html' exist if so it will be used instead of the default pdfjs viewer.