Discussion:
hhPDFViewer v0.8.0
hh via use-livecode
2018-11-26 19:43:30 UTC
Permalink
Sometimes one wishes to have a unique PDF display, independent of the
user's current internet-plugin. Or one wishes to have a feature that
these plugins don't have (for example rotation). Then pdf.js comes in.

hhPDFViewer is a basic GUI to the JavaScript pdf library "pdf.js"
( https://mozilla.github.io/pdf.js/ (watch the license)).

My current solution can display both local and remote pdfs.
And it does NOT need a (local) server.

The widget uses pdf.js to display (and load) one single page of any
multipage pdf. It needs 2.3 MByte of space in the temporary folder
+ 1.3*the size of the displayed pdf.

You can
[*]Switch to prev/next/any page of the PDF.
[*]Zoom in, zoom out or fit the PDF to width or height of the browser
widget's width or height.
[*]Fit the browser widget's rect to the page container's rect
(hold down the shiftkey when using the controls for that).
[*]Rotate the PDF to 0, 90, 180, 270 degrees.
[*]Grab the PDF to scroll the PDF left/up/right/down.

Download hhPDFViewer from "Sample Stacks" or
http://livecodeshare.runrev.com/stack/916/

The library is included in the stack, so that also an offline usage
(with local PDFs) is possible.
I didn't already test it but the stack should run on any platform where
the browser widget works. For mobile you still have do some work for
resizing the browser widget and the controls group (and changing some
triggers). If there is enough interest I'll implement more features.
Tom Glod via use-livecode
2018-11-26 20:11:36 UTC
Permalink
This is great, thank you! also a good learning tool for learning to
interact with JS.


On Mon, Nov 26, 2018 at 2:44 PM hh via use-livecode <
Post by hh via use-livecode
Sometimes one wishes to have a unique PDF display, independent of the
user's current internet-plugin. Or one wishes to have a feature that
these plugins don't have (for example rotation). Then pdf.js comes in.
hhPDFViewer is a basic GUI to the JavaScript pdf library "pdf.js"
( https://mozilla.github.io/pdf.js/ (watch the license)).
My current solution can display both local and remote pdfs.
And it does NOT need a (local) server.
The widget uses pdf.js to display (and load) one single page of any
multipage pdf. It needs 2.3 MByte of space in the temporary folder
+ 1.3*the size of the displayed pdf.
You can
[*]Switch to prev/next/any page of the PDF.
[*]Zoom in, zoom out or fit the PDF to width or height of the browser
widget's width or height.
[*]Fit the browser widget's rect to the page container's rect
(hold down the shiftkey when using the controls for that).
[*]Rotate the PDF to 0, 90, 180, 270 degrees.
[*]Grab the PDF to scroll the PDF left/up/right/down.
Download hhPDFViewer from "Sample Stacks" or
http://livecodeshare.runrev.com/stack/916/
The library is included in the stack, so that also an offline usage
(with local PDFs) is possible.
I didn't already test it but the stack should run on any platform where
the browser widget works. For mobile you still have do some work for
resizing the browser widget and the controls group (and changing some
triggers). If there is enough interest I'll implement more features.
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
JJS via use-livecode
2018-11-26 21:39:32 UTC
Permalink
Awesome!

Thanks Herman

Regards, Sphere
Post by hh via use-livecode
Sometimes one wishes to have a unique PDF display, independent of the
user's current internet-plugin. Or one wishes to have a feature that
these plugins don't have (for example rotation). Then pdf.js comes in.
hhPDFViewer is a basic GUI to the JavaScript pdf library "pdf.js"
( https://mozilla.github.io/pdf.js/ (watch the license)).
My current solution can display both local and remote pdfs.
And it does NOT need a (local) server.
The widget uses pdf.js to display (and load) one single page of any
multipage pdf. It needs 2.3 MByte of space in the temporary folder
+ 1.3*the size of the displayed pdf.
You can
[*]Switch to prev/next/any page of the PDF.
[*]Zoom in, zoom out or fit the PDF to width or height of the browser
widget's width or height.
[*]Fit the browser widget's rect to the page container's rect
(hold down the shiftkey when using the controls for that).
[*]Rotate the PDF to 0, 90, 180, 270 degrees.
[*]Grab the PDF to scroll the PDF left/up/right/down.
Download hhPDFViewer from "Sample Stacks" or
http://livecodeshare.runrev.com/stack/916/
The library is included in the stack, so that also an offline usage
(with local PDFs) is possible.
I didn't already test it but the stack should run on any platform where
the browser widget works. For mobile you still have do some work for
resizing the browser widget and the controls group (and changing some
triggers). If there is enough interest I'll implement more features.
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
Lagi Pittas via use-livecode
2018-11-28 14:46:25 UTC
Permalink
Brilliant stuff Hermann

Thanks,

Lagi

On Mon, 26 Nov 2018 at 19:44, hh via use-livecode <
Post by hh via use-livecode
Sometimes one wishes to have a unique PDF display, independent of the
user's current internet-plugin. Or one wishes to have a feature that
these plugins don't have (for example rotation). Then pdf.js comes in.
hhPDFViewer is a basic GUI to the JavaScript pdf library "pdf.js"
( https://mozilla.github.io/pdf.js/ (watch the license)).
My current solution can display both local and remote pdfs.
And it does NOT need a (local) server.
The widget uses pdf.js to display (and load) one single page of any
multipage pdf. It needs 2.3 MByte of space in the temporary folder
+ 1.3*the size of the displayed pdf.
You can
[*]Switch to prev/next/any page of the PDF.
[*]Zoom in, zoom out or fit the PDF to width or height of the browser
widget's width or height.
[*]Fit the browser widget's rect to the page container's rect
(hold down the shiftkey when using the controls for that).
[*]Rotate the PDF to 0, 90, 180, 270 degrees.
[*]Grab the PDF to scroll the PDF left/up/right/down.
Download hhPDFViewer from "Sample Stacks" or
http://livecodeshare.runrev.com/stack/916/
The library is included in the stack, so that also an offline usage
(with local PDFs) is possible.
I didn't already test it but the stack should run on any platform where
the browser widget works. For mobile you still have do some work for
resizing the browser widget and the controls group (and changing some
triggers). If there is enough interest I'll implement more features.
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
Kaveh Bazargan via use-livecode
2018-12-03 14:18:56 UTC
Permalink
Hi Hermann

Thanks for this. Any way of selecting or copying text from the PDF file?

Any way of finding a particular text in the PDF?

On Wed, 28 Nov 2018 at 14:47, Lagi Pittas via use-livecode <
Post by Lagi Pittas via use-livecode
Brilliant stuff Hermann
Thanks,
Lagi
On Mon, 26 Nov 2018 at 19:44, hh via use-livecode <
Post by hh via use-livecode
Sometimes one wishes to have a unique PDF display, independent of the
user's current internet-plugin. Or one wishes to have a feature that
these plugins don't have (for example rotation). Then pdf.js comes in.
hhPDFViewer is a basic GUI to the JavaScript pdf library "pdf.js"
( https://mozilla.github.io/pdf.js/ (watch the license)).
My current solution can display both local and remote pdfs.
And it does NOT need a (local) server.
The widget uses pdf.js to display (and load) one single page of any
multipage pdf. It needs 2.3 MByte of space in the temporary folder
+ 1.3*the size of the displayed pdf.
You can
[*]Switch to prev/next/any page of the PDF.
[*]Zoom in, zoom out or fit the PDF to width or height of the browser
widget's width or height.
[*]Fit the browser widget's rect to the page container's rect
(hold down the shiftkey when using the controls for that).
[*]Rotate the PDF to 0, 90, 180, 270 degrees.
[*]Grab the PDF to scroll the PDF left/up/right/down.
Download hhPDFViewer from "Sample Stacks" or
http://livecodeshare.runrev.com/stack/916/
The library is included in the stack, so that also an offline usage
(with local PDFs) is possible.
I didn't already test it but the stack should run on any platform where
the browser widget works. For mobile you still have do some work for
resizing the browser widget and the controls group (and changing some
triggers). If there is enough interest I'll implement more features.
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
--
Kaveh Bazargan
Director
River Valley Technologies <http://rivervalleytechnologies.com/> • Twitter
<https://twitter.com/kaveh1000> • LinkedIn
<https://www.linkedin.com/in/bazargankaveh/>
hh via use-livecode
2018-12-03 17:35:57 UTC
Permalink
Post by Kaveh Bazargan via use-livecode
Any way of selecting or copying text from the PDF file?
Any way of finding a particular text in the PDF?
The problem is:
The viewer template of pdfJS cannot be used if one would like to load
PDFs from anywhere, not only from a server where the script resides.
So I had to use the "atomic" features of pdfJS for the current viewer.

But there is some "text-layer" code one can use for one's own project.
There is no documentation about that, one has to dive deep into the code.
It is a lot of code and it will need at least 2-3 full days to implement.

I will do it, hopefully this year, especially as printing to pdf from the
browser widget is probably coming next year, in LC 9.1 (read on github).
Loading...