HTML5 can contain links to external images and other resources (which often makes the HTML5 page much faster to load because it is a small text file with links to the images, videos, or audio it needs). This work fine so long as you have network connectivity…
One of the big new features in HTML5 is the ability for the code to work without a network connection and to store data offline in a cache. Sometimes, however, this functionality is overkill and you can embed an image more simply by just inserting the data into the HTML5 file.
An image consists of binary data so it needs to be stored in a suitable format inside the text file. Base64 encoding (a simple algorithm which converts bytes into a block of what looks like text data) is ideal (this is what you often use in emails to add in binary content). So instead of the more usual HMTL5 format of
<img id="Im0" style="display: none;" src="img/1/Im0.png" alt="Im0" width="540" height="720" />
you would see
base64,iV...Big block of chars here...rDYgg==" alt="Im0" width="540" height="720" />
If you want to have a try in our PDF5HTML5 convertor, there is a new flag to enable it in today’s release (it is commented out by default in ExtractPagesAsHTML.java example).
/** * embed image inside PDF as base64 encoded stream */HTMLoutput.setBooleanValue(HTMLDisplay.EmbedImageAsBase64Stream, true);
Of course once you start playing with images, you may want to have far more control on images and be able to control their exact size. Maybe you should read tomorrow’s blog article?
This post is part of our “HTML5 Article index” in these articles, we aim to help you understand the world of HTML5.
Are you a Developer working with PDF files?
Our developers guide contains a large number of technical posts to help you understand the PDF file Format.
Do you need to solve any of these problems?
|Display PDF documents in a Web app|
|Use PDF Forms in a web browser|
|Convert PDF Documents to an image|
|Work with PDF Documents in Java|
2 Replies to “PDF to HTML5 conversion – Embed an image in…”
Is there a way to conditionally embed an image based on the size of the image?
Not at present. If you have access to the source code it would be a minor addition to OutputDisplay/HTMLDisplay