Readium LCP for PDF 1.0
Revision: 2
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 package must use:
- the
.lcpdfextension. - the
application/pdf+lcpmedia type.
- the
- An embedded LCP License Document must be located at
license.lcpl. - A
numberOfPagesproperty must be present in themetadatasection of the manifest. It is used by Reading Systems to evaluate user’s progression in the publication. - A cover should be referenced in the
resourcessection of the manifest and, if present, must not be encrypted. - The encrypted PDF document referenced in the
readingOrdermust not be compressed in the package. - A
typeproperty must be set for the PDF document, its value must byapplication/pdf. - A
sizeproperty should be set for the PDF docmuent. It is the size in bytes of the PDF document before compression and encryption. - An
encryptedmust be set inpropertiesfor the PDF document, where:schememust be set tohttp://readium.org/2014/01/lcp.algorithmmust be set; it indicates the encryption algorithm applied to the document, currently “http://www.w3.org/2001/04/xmlenc#aes256-cbc”.
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",
"size": 8523576,
"properties": {
"encrypted": {
"scheme": "http://readium.org/2014/01/lcp",
"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