アノテーション JSON API
このドキュメントでは、annotations.json ファイルの構造について説明します。BuildVu でアノテーションがどのように動作するかについての詳細は、BuildVu でアノテーションはどのように動作しますか? をお読みください。
アノテーションの読み込みと表示のためのシンプルな実装 を提供しており、これは IDRViewer 内で使用されています。この実装をそのまま使用したり、参考にしたり、独自のカスタムソリューションの基礎として利用することができます。
{
"pages": [{
"page": 1,
"annotations": [{
"type": "Highlight",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"contents": "contents value", (optional)
"appearance": "1/annots/255.png" (optional)
}
]
}
]
}
アノテーションタイプ ("type"): Text、Link、FreeText、Line、Square、Circle、Polygon、PolyLine、Highlight、Underline、Squiggly、StrikeOut、Stamp、Caret、Ink、FileAttachment、Sound、Movie、Widget、Screen、PrinterMark、TrapNet、Watermark、3D、Projection、RichMedia、Screen、TextLink
境界 ("bounds"): [x, y, width, height] の形式で提供され、原点は左上です。
オブジェクト参照 ("objref"): PDF ファイル内のアノテーションのオブジェクト参照です。以下の2つの状況では、オブジェクト参照は利用できません:
- アノテーションがインライン配列を使用して定義されているまれなケース。
- PDF ファイルから検出されたリンクから TextLink アノテーションが生成された場合。
内容 ("contents"): 通常、ポップアップアノテーションのプレーンテキスト内容、またはアノテーションの説明(提供されている場合)です。
外観 ("appearance"): ’normal’ 状態の外観(AP)ストリームのラスタライズされたバージョン(AP 辞書が提供されている場合)。
ポップアップタイプ (Text、Line、Square、Circle、Polygon、PolyLine、Highlight、Underline、Squiggly、StrikeOut、Stamp、Caret、Ink、FileAttachment、Redact、Projection):
{
"type": "Highlight",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"title": "title value", (optional)
"contents": "contents value", (optional)
"appearance": "1/annots/255.png" (optional)
}
{
"type": "Link",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"title": "title value", (optional)
"contents": "contents value", (optional)
"action": { }, (optional)
"appearance": "1/annots/255.png" (optional)
}
アクションタイプ: URI、GoTo、Named、Sound
"action": {
"type": "URI",
"uri": "https://www.example.com"
}
"action": {
"type": "GoTo",
"page": 1
}
"action": {
"type": "Named",
"name": "NextPage"
}
名前のタイプ: NextPage、PrevPage、FirstPage、LastPage
"action": {
"type": "Launch",
"target": "executable/or/file/path.pdf"
}
"action": {
"type": "Sound",
"sound": "path/to/sound.wav"
}
{
"type": "FileAttachment",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"title": "title value", (optional)
"contents": "contents value", (optional)
"attachment": "path/to/file",
"filename": "attachment.pdf",
"appearance": "1/annots/255.png" (optional)
}
{
"type": "RichMedia",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"contents": "contents value", (optional)
"richmedia": [{
"src": "path/to/media.mp4",
"type": "video/mp4"
}],
"appearance": "1/annots/255.png" (optional)
}
サポートされている動画タイプ: m4v、mov、mp4 (video/mp4)
サポートされている音声タイプ: mp3 (audio/mpeg)
{
"type": "Screen",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"action": {
"type": "Rendition",
"media": {
"src": "path/to/media.mp4",
"type": "video/mp4",
"filename": "named-media.mp4" (optional)
}
},
"appearance": "1/annots/255.png" (optional)
}
サポートされているメディアタイプ: mp4 (video/mp4)、mp3 (audio/mpeg)
{
"type": "Sound",
"bounds": [0, 0, 100, 100],
"objref": "255", (optional)
"title": "title value", (optional)
"contents": "contents value", (optional)
"sound": "path/to/sound.wav",
"appearance": "1/annots/255.png" (optional)
}
サポートされているメディアタイプ: wav
