pdf.js/README.md

196 lines
5.1 KiB
Markdown
Raw Normal View History

2011-06-29 17:00:16 +09:00
# pdf.js
2011-06-17 01:37:15 +09:00
## Overview
pdf.js is an HTML5 technology experiment that explores building a faithful
and efficient Portable Document Format (PDF) renderer without native code
assistance.
pdf.js is community-driven and supported by Mozilla Labs. Our goal is to
create a general-purpose, web standards-based platform for parsing and
rendering PDFs, and eventually release a PDF reader extension powered by
pdf.js. Integration with Firefox is a possibility if the experiment proves
successful.
## Getting started
2011-09-30 03:44:41 +09:00
### Online demo
2011-09-16 08:39:18 +09:00
For an online demo, visit:
2011-11-01 21:49:47 +09:00
+ http://mozilla.github.com/pdf.js/web/viewer.html
This demo provides an interactive interface for displaying and browsing PDFs
using the pdf.js API.
2011-10-25 02:40:36 +09:00
### Extension
A Firefox extension is also available:
2011-11-01 21:49:47 +09:00
+ http://mozilla.github.com/pdf.js/extensions/firefox/pdf.js.xpi
2011-10-25 02:40:36 +09:00
However, note that the extension might not reflect the latest source in our master branch.
2011-09-30 03:44:41 +09:00
### Getting the code
To get a local copy of the current code, clone it using git:
$ git clone git://github.com/mozilla/pdf.js.git pdfjs
2011-09-30 03:52:56 +09:00
$ cd pdfjs
Next, you need to start a local web server as some browsers don't allow opening
PDF files for a file:// url:
2011-09-30 03:52:56 +09:00
$ make server
If everything worked out, you can now serve
2011-09-30 03:44:41 +09:00
+ http://localhost:8888/web/viewer.html
You can also view all the test pdf files on the right side serving
2011-09-30 03:44:41 +09:00
+ http://localhost:8888/test/pdfs/?frame
2011-10-26 12:07:30 +09:00
### Building pdf.js
In order to bundle all `src/` files into a final `pdf.js`, issue:
$ make
2011-10-26 12:07:30 +09:00
This will generate the file `build/pdf.js` that can be included in your final project. (WARNING: That's a large file! Consider minifying it).
2011-10-25 02:40:36 +09:00
## Learning
2011-10-05 23:24:53 +09:00
Here are some initial pointers to help contributors get off the ground.
Additional resources are available in a separate section below.
2011-10-05 23:24:53 +09:00
#### Hello world
2011-09-16 08:39:18 +09:00
For a "hello world" example, take a look at:
+ [examples/helloworld/hello.js](https://github.com/mozilla/pdf.js/blob/master/examples/helloworld/hello.js)
This example illustrates the bare minimum ingredients for integrating pdf.js
in a custom project.
#### Introductory video
Check out the presentation by our contributor Julian Viereck on the inner
workings of PDF and pdf.js:
+ http://www.youtube.com/watch?v=Iv15UY-4Fg8
## Contributing
2011-09-30 03:49:36 +09:00
pdf.js is a community-driven project, so contributors are always welcome.
Simply fork our repo and contribute away. A great place to start is our
[open issues](https://github.com/mozilla/pdf.js/issues). For better consistency and
2011-09-30 11:15:21 +09:00
long-term stability, please do look around the code and try to follow our conventions.
2011-10-08 03:49:57 +09:00
More information about the contributor process can be found on the
[contributor wiki page](https://github.com/mozilla/pdf.js/wiki/Contributing).
If you don't want to hack on the project or have little spare time, __you still
2011-09-30 03:44:41 +09:00
can help!__ Just open PDFs in the
2011-11-01 21:49:47 +09:00
[online demo](http://mozilla.github.com/pdf.js/web/viewer.html) and report
any breakage in rendering.
2011-09-30 03:49:36 +09:00
Our Github contributors so far:
+ https://github.com/mozilla/pdf.js/contributors
2011-09-30 03:49:36 +09:00
You can add your name to it! :)
2011-10-05 09:43:55 +09:00
## Running the tests
pdf.js comes with browser-level regression tests that allow one to probe
whether it's able to successfully parse PDFs, as well as compare its output
against reference images, pixel-by-pixel.
To run the tests, first configure the browser manifest file at:
test/resources/browser_manifests/browser_manifest.json
Sample manifests for different platforms are provided in that directory.
To run all the bundled tests, type:
$ make test
and cross your fingers. Different types of tests are available, see the test
manifest file at:
test/test_manifest.json
The test type `eq` tests whether the output images are identical to reference
images. The test type `load` simply tests whether the file loads without
raising any errors.
2011-10-05 00:27:40 +09:00
## Running tests through our bot
If you are a reviewer, you can use our remote bot to issue comprehensive tests
against reference images before merging pull requests.
See the bot repo for details:
+ https://github.com/arturadib/pdf.js-bot
## Additional resources
2011-06-29 17:00:16 +09:00
2011-07-03 01:30:46 +09:00
Our demo site is here:
2011-11-01 21:49:47 +09:00
+ http://mozilla.github.com/pdf.js/web/viewer.html
2011-07-03 01:30:46 +09:00
2011-06-17 01:37:15 +09:00
You can read more about pdf.js here:
2011-09-30 03:44:41 +09:00
+ http://andreasgal.com/2011/06/15/pdf-js/
+ http://blog.mozilla.com/cjones/2011/06/15/overview-of-pdf-js-guts/
2011-09-30 03:44:41 +09:00
Talk to us on IRC:
2011-06-17 01:37:15 +09:00
2011-09-30 03:44:41 +09:00
+ #pdfjs on irc.mozilla.org
2011-06-29 08:02:02 +09:00
Join our mailing list:
2011-06-29 08:02:02 +09:00
2011-09-30 03:44:41 +09:00
+ dev-pdf-js@lists.mozilla.org
Subscribe either using lists.mozilla.org or Google Groups:
2011-09-30 03:44:41 +09:00
+ https://lists.mozilla.org/listinfo/dev-pdf-js
+ https://groups.google.com/group/mozilla.dev.pdf-js/topics
2011-06-29 08:02:02 +09:00
2011-09-30 03:44:41 +09:00
Follow us on twitter: @pdfjs
2011-06-29 08:02:02 +09:00
2011-09-30 03:44:41 +09:00
+ http://twitter.com/#!/pdfjs
2011-10-05 09:43:55 +09:00
## PDF-related resources
A really basic overview of PDF is described here:
2011-09-30 03:44:41 +09:00
+ http://partners.adobe.com/public/developer/en/livecycle/lc_pdf_overview_format.pdf
A more detailed file example:
2011-09-30 03:44:41 +09:00
+ http://gnupdf.org/Introduction_to_PDF
2011-09-30 03:44:41 +09:00
The PDF specification itself is an ISO and not freely available. However, there is
a "PDF Reference" from Adobe:
2011-09-30 03:44:41 +09:00
+ http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf
2011-09-30 03:44:41 +09:00
Recommended chapters to read: "2. Overview", "3.4 File Structure",
"4.1 Graphics Objects" that lists the PDF commands.