Previewable

QName: f:previewable

Automates the creation and updating of "preview" attachments for one or more attachments on this node. Preview
attachments are secondary binary attachments that are the result of one or more transformation operations to the
original attachment.

As an example, you might apply the f:previewable feature to a node that holds a PDF. The preview
configuration lets you split the PDF into multiple pages and store snapshots of those pages as
image/jpeg attachments on the node. The attachments can be resized or reformatted for your
specific display device (iPhone, iPad, Android, and more).

Preview attachments are content transformations into a target mimetype (like JPG) for all of the content
stored in the JSON or in an attachment for a node. A good example of to imagine uploading a heavy PDF file.
This feature could generate resized JPG files for use in previewing all of the pages of the PDF on a
mobile device.

Previews are generated whenever a node is created or updated or has its relevant attachment modified.

Configuration

<thead>
    <tr>
        <th>Property</th>
        <th>Type</th>
        <th>Default</th>
        <th nowrap>Read-Only</th>
        <th>Description</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>schedule</td>
        <td>text</td>
        <td></td>
        <td></td>
        <td>
            Determines when previews will be generated.
            <br/>
            Either <code>synchronous</code> or <code>asynchronous</code>.
        </td>
    </tr>
    <tr>
        <td>previews</td>
        <td>object</td>
        <td></td>
        <td></td>
        <td>
            Defines the previews that you would like to have generated.
            <br/>
            <br/>
            This supports multiple preview generations.  You may want some preview images to be generated for
            an iPad device and others for an Android depending on the form factor (size, color options, etc).
            <br/>
            <br/>
            This object consists of a named preview key and an preview config for the key.
        </td>
    </tr>
</tbody>

Previewable Example

Here is an example of a node that stores a PDF attachment. When the PDF attachment is written, preview images
are generated for two output formats.

{
    "title": "product_catalog.pdf",
    "_features": {
        "f:previewable": {
            "previews": {
                "ipad": {
                    "mimetype": "image/png",
                    "width": 1600,
                    "height": -1,
                    "prefix": "ipad",
                    "maxFileSize": 200000
                },
                "iphone": {
                    "mimetype": "image/jpeg",
                    "width": 512,
                    "height": -1,
                    "prefix": "iphone"
                }
            }
        }
    }
}