Readium LCP for PDF 1.0
Revision: 1
Copyright 2020, Readium Foundation. All Rights Reserved.
Contributors: Laurent Le Meur (EDRLab), Hadrien Gardeur (De Marque)
Requirements
- LCP for PDF is based on the PDF Profile of the Readium Web Publication Manifest and follows its requirements for packaging.
- Every LCP for PDF package must use:
- the
.lcpdf
extension. - the
application/pdf+lcp
media type.
- the
- A
numberOfPages
property must be present in themetadata
section of the manifest. It is used by Reading Systems to evaluate user’s progression in the publication. - PDF documents referenced in the
readingOrder
must not be compressed in the package. - A cover should be referenced in the
resources
section of the manifest and, if present, must not be encrypted. - An embedded LCP License Document must be located at
license.lcpl
. - Each encrypted PDF document must be accompanied by a
type
property must of valueapplication/pdf
. - Each encrypted PDF document must be accompanied by an
encrypted
element, where:scheme
must be set tohttp://readium.org/2014/01/lcp
.profile
andalgorithm
must be set properly based on the LCP Encryption Profile of the License.
Example
{
"@context": "https://readium.org/webpub-manifest/context.jsonld",
"metadata": {
"@type": "http://schema.org/Book",
"conformsTo": "https://readium.org/webpub-manifest/profiles/pdf",
"title": "Readium Web Publication Manifest",
"author": "Readium Community",
"numberOfPages": 102
},
"readingOrder": [
{
"href": "publication.pdf",
"type": "application/pdf",
"properties": {
"encrypted": {
"scheme": "http://readium.org/2014/01/lcp",
"profile": "http://readium.org/lcp/basic-profile",
"algorithm": "http://www.w3.org/2001/04/xmlenc#aes256-cbc"
}
}
}
],
"resources": [
{
"href": "cover.jpg",
"type": "image/jpeg",
"rel": "cover"
}
]
}
Demo
An example where the PDF is not (yet) encrypted is available at: http://readium.org/lcp-specs/examples/lcpdf/rwpm.lcpdf
JSON Schema
A JSON Schema for the manifest of an LCPDF package is available under version control at: https://github.com/readium/lcp-specs/blob/master/schema/lcpdf.schema.json
For validating a manifest, use the following reference: https://readium.org/lcp-specs/schema/lcpdf.schema.json