EmbedPDFPlugin
Many browsers can show PDF documents embedded just like pictures within HTML documents using the
<embed>
HTML tag. Unfortunately, they are usually unable to detect the preferred (screen) size and aspect ratio of the PDF document and display only a little unreadable thumbnail version of the PDF file.
This plugin adds
%EMBEDPDF{...}%
and
%EMBEDPDFSIZE{...}%
variables. These variables are helpful for embedding PDF documents in TWiki webs.
%EMBEDPDF{...}%
will create an
<embed>
HTML tag to show the specified PDF file in a reasonable size (as specified within that PDF file).
%EMBEDPDFSIZE{...}%
will expand to the width and height of the file.
Caution
- This plugin read files from your disk using
TWiki::Func::readFile()
. It may be possible for an attacker to gain access to arbitrary files on your disk. I have taken some simple precautions to prevent this, but I'm not sure whether they are sufficient.
- TWiki may run out of memory if the PDF file referenced is very large. It is mainly intended for small single-page PDF files.
You might want to restrict
write access to your Web to prevent intruders from exploiting possible vulnerabilities.
I do not think exploits are possible through read-only access. Use at your own risk.
Syntax Rules
-
%EMBEDPDF{ <filename> }%
-
%EMBEDPDFSIZE{ <filename> }%
-
<filename>
is the file name of an attachment of the current topic.
Examples
Assume that test.pdf has a height of 40 points and a width of 100 points. Then:
-
%EMBEDPDF{ test }%
expands to
<embed src="%ATTACHURL%/test" width="100" height="40">
, and
-
%EMBEDPDFSIZE{ test }%
expands to
width="100" height="40"
Note that the
.pdf
extension is automatically added to the attachment name.
The plugin checks the user agent setting reported by your browser to detect IE. For IE, the width and height will be
enlarged since IE displays the PDF viewer controls within the HTML document along with the PDF document itself.
EmbedPDFPlugin Global Settings
Plugin settings are stored as preferences variables. To reference a plugin setting write
%<plugin>_<setting>%
, i.e.
%INTERWIKIPLUGIN_SHORTDESCRIPTION%
- One line description, is shown in the TextFormattingRules? topic:
- Set SHORTDESCRIPTION = embed PDF document in TWiki page
- Debug plugin: (See output in
data/debug.txt
)
- Create a link under every embedded PDF file with the specified link text if set (useful for browser that don't know how to embed PDF):
- Set LINKTEXT = (click here to display this PDF file by itself)
- Check whether a prerendered image of the PDF file with the specified extension is available, and if so, embed the image rather than the PDF file itself:
Plugin Installation Instructions
Note: You do not need to have a PDF plugin installed in your browser for this plugin to be useful.install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.
- Download the ZIP file from the Plugin web (see below)
- Unzip
EmbedPDFPlugin.zip
in your twiki installation directory. Content:
File: | Description: |
data/TWiki/EmbedPDFPlugin.txt | Plugin topic |
data/TWiki/EmbedPDFPlugin.txt,v | Plugin topic repository |
data/TWiki/EmbedPDFPlugin/pdf.pdf | Sample pdf file |
lib/TWiki/Plugins/EmbedPDFPlugin.pm | Plugin Perl module |
- Test if the installation was successful:
- Edit this page on your local TWiki installation and change the < and > three lines down to < and > to enable the
<EMBED />
tag.
- The following two pictures should then look the same (assuming you have a PDF plugin installed in your browser)
- embed tag created using
%EMBEDPDF{ pdf }%
- hard coded embed tag
<embed SRC="http://vtf.website/asc/wiki/pub/TWiki/EmbedPDFPlugin/pdf.pdf" width="216" height="31" />
- The width and height of http://vtf.website/asc/wiki/pub/TWiki/EmbedPDFPlugin/pdf.pdf as determined by
%EMBEDPDFSIZE{ pdf }%
are as follows:
- Here is a pdf file for which we have a prerendered version available (I did not actually upload the pdf file, so the link under the image is dead):
Plugin Info
Related Topics: TWiki:Plugins.EmbedPDFPluginDev,
TWikiPreferences,
TWikiPlugins