Git Product home page Git Product logo

pdfviewer's Introduction

Donate

Pdfviewer

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.

Features

  • 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

Examples

Demo website

basic article examples

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 }

Basic Jdownloads example

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.

Jdownloads custom field examples

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.

Optional tagparameters

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]

Optional urlparameters

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

Make pdf 'searchable'

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.

Override pdfjs

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.

pdfviewer's People

Contributors

frankreisenhofer avatar tazzios avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.