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
.lcpdfextension. - the
application/pdf+lcpmedia type.
- the
- A
numberOfPagesproperty must be present in themetadatasection of the manifest. It is used by Reading Systems to evaluate user’s progression in the publication. - PDF documents referenced in the
readingOrdermust not be compressed in the package. - A cover should be referenced in the
resourcessection 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
typeproperty must of valueapplication/pdf. - Each encrypted PDF document must be accompanied by an
encryptedelement, where:schememust be set tohttp://readium.org/2014/01/lcp.profileandalgorithmmust 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