1d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Copyright 2017 PDFium Authors. All rights reserved. 2d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// found in the LICENSE file. 4d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 5d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifndef PUBLIC_FPDF_ANNOT_H_ 6d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define PUBLIC_FPDF_ANNOT_H_ 7d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 8d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// NOLINTNEXTLINE(build/include) 9d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fpdfview.h" 10d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 11d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// NOLINTNEXTLINE(build/include) 12d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fpdf_doc.h" 13d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// NOLINTNEXTLINE(build/include) 14d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fpdf_formfill.h" 15d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 16d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifdef __cplusplus 17d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannextern "C" { 18d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // __cplusplus 19d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 20d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_UNKNOWN 0 21d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_TEXT 1 22d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_LINK 2 23d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FREETEXT 3 24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_LINE 4 25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_SQUARE 5 26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_CIRCLE 6 27d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_POLYGON 7 28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_POLYLINE 8 29d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_HIGHLIGHT 9 30d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_UNDERLINE 10 31d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_SQUIGGLY 11 32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_STRIKEOUT 12 33d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_STAMP 13 34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_CARET 14 35d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_INK 15 36d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_POPUP 16 37d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FILEATTACHMENT 17 38d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_SOUND 18 39d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_MOVIE 19 40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_WIDGET 20 41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_SCREEN 21 42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_PRINTERMARK 22 43d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_TRAPNET 23 44d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_WATERMARK 24 45d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_THREED 25 46d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_RICHMEDIA 26 47d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_XFAWIDGET 27 48d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 49d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Refer to PDF Reference (6th edition) table 8.16 for all annotation flags. 50d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_NONE 0 51d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_INVISIBLE (1 << 0) 52d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_HIDDEN (1 << 1) 53d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_PRINT (1 << 2) 54d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_NOZOOM (1 << 3) 55d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_NOROTATE (1 << 4) 56d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_NOVIEW (1 << 5) 57d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_READONLY (1 << 6) 58d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_LOCKED (1 << 7) 59d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_FLAG_TOGGLENOVIEW (1 << 8) 60d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 61d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_APPEARANCEMODE_NORMAL 0 62d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_APPEARANCEMODE_ROLLOVER 1 63d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_APPEARANCEMODE_DOWN 2 64d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_ANNOT_APPEARANCEMODE_COUNT 3 65d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 66d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_UNKNOWN 0 67d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_BOOLEAN 1 68d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_NUMBER 2 69d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_STRING 3 70d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_NAME 4 71d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_ARRAY 5 72d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_DICTIONARY 6 73d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_STREAM 7 74d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_NULLOBJ 8 75d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_OBJECT_REFERENCE 9 76d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 77d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Refer to PDF Reference version 1.7 table 8.70 for field flags common to all 78d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// interactive form field types. 79d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_NONE 0 80d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_READONLY (1 << 0) 81d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_REQUIRED (1 << 1) 82d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_NOEXPORT (1 << 2) 83d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 84d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Refer to PDF Reference version 1.7 table 8.77 for field flags specific to 85d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// interactive form text fields. 86d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_TEXT_MULTILINE (1 << 12) 87d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 88d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Refer to PDF Reference version 1.7 table 8.79 for field flags specific to 89d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// interactive form choice fields. 90d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_CHOICE_COMBO (1 << 17) 91d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDF_FORMFLAG_CHOICE_EDIT (1 << 18) 92d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 93d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmanntypedef enum FPDFANNOT_COLORTYPE { 94d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDFANNOT_COLORTYPE_Color = 0, 95d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDFANNOT_COLORTYPE_InteriorColor 96d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} FPDFANNOT_COLORTYPE; 97d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 98d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 99d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Check if an annotation subtype is currently supported for creation. 100d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Currently supported subtypes: circle, highlight, ink, popup, square, 101d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// squiggly, stamp, strikeout, text, and underline. 102d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 103d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// subtype - the subtype to be checked. 104d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 105d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if this subtype supported. 106d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 107d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_IsSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype); 108d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 109d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 110d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Create an annotation in |page| of the subtype |subtype|. If the specified 111d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// subtype is illegal or unsupported, then a new annotation will not be created. 112d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Must call FPDFPage_CloseAnnot() when the annotation returned by this 113d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// function is no longer needed. 114d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 115d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to a page. 116d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// subtype - the subtype of the new annotation. 117d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 118d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns a handle to the new annotation object, or NULL on failure. 119d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV 120d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFPage_CreateAnnot(FPDF_PAGE page, FPDF_ANNOTATION_SUBTYPE subtype); 121d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 122d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 123d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the number of annotations in |page|. 124d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 125d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to a page. 126d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 127d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the number of annotations in |page|. 128d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotCount(FPDF_PAGE page); 129d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 130d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 131d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get annotation in |page| at |index|. Must call FPDFPage_CloseAnnot() when the 132d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotation returned by this function is no longer needed. 133d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 134d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to a page. 135d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// index - the index of the annotation. 136d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 137d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns a handle to the annotation object, or NULL on failure. 138d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFPage_GetAnnot(FPDF_PAGE page, 139d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int index); 140d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 141d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 142d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the index of |annot| in |page|. This is the opposite of 143d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPage_GetAnnot(). 144d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 145d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to the page that the annotation is on. 146d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 147d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 148d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the index of |annot|, or -1 on failure. 149d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotIndex(FPDF_PAGE page, 150d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_ANNOTATION annot); 151d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 152d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 153d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Close an annotation. Must be called when the annotation returned by 154d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPage_CreateAnnot() or FPDFPage_GetAnnot() is no longer needed. This 155d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// function does not remove the annotation from the document. 156d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 157d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 158d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT void FPDF_CALLCONV FPDFPage_CloseAnnot(FPDF_ANNOTATION annot); 159d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 160d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 161d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Remove the annotation in |page| at |index|. 162d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 163d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to a page. 164d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// index - the index of the annotation. 165d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 166d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 167d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_RemoveAnnot(FPDF_PAGE page, 168d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int index); 169d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 170d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 171d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the subtype of an annotation. 172d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 173d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 174d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 175d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the annotation subtype. 176d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_ANNOTATION_SUBTYPE FPDF_CALLCONV 177d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetSubtype(FPDF_ANNOTATION annot); 178d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 179d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 180d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Check if an annotation subtype is currently supported for object extraction, 181d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// update, and removal. 182d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Currently supported subtypes: ink and stamp. 183d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 184d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// subtype - the subtype to be checked. 185d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 186d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if this subtype supported. 187d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 188d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_IsObjectSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype); 189d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 190d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 191d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Update |obj| in |annot|. |obj| must be in |annot| already and must have 192d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// been retrieved by FPDFAnnot_GetObject(). Currently, only ink and stamp 193d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotations are supported by this API. Also note that only path, image, and 194d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// text objects have APIs for modification; see FPDFPath_*(), FPDFText_*(), and 195d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFImageObj_*(). 196d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 197d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 198d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// obj - handle to the object that |annot| needs to update. 199d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 200d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Return true if successful. 201d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 202d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_UpdateObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj); 203d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 204d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 205d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Add |obj| to |annot|. |obj| must have been created by 206d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPageObj_CreateNew{Path|Rect}() or FPDFPageObj_New{Text|Image}Obj(), and 207d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// will be owned by |annot|. Note that an |obj| cannot belong to more than one 208d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// |annot|. Currently, only ink and stamp annotations are supported by this API. 209d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Also note that only path, image, and text objects have APIs for creation. 210d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 211d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 212d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// obj - handle to the object that is to be added to |annot|. 213d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 214d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Return true if successful. 215d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 216d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_AppendObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj); 217d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 218d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 219d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the total number of objects in |annot|, including path objects, text 220d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// objects, external objects, image objects, and shading objects. 221d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 222d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 223d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 224d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the number of objects in |annot|. 225d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetObjectCount(FPDF_ANNOTATION annot); 226d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 227d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 228d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the object in |annot| at |index|. 229d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 230d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 231d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// index - the index of the object. 232d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 233d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Return a handle to the object, or NULL on failure. 234d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV 235d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetObject(FPDF_ANNOTATION annot, int index); 236d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 237d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 238d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Remove the object in |annot| at |index|. 239d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 240d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 241d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// index - the index of the object to be removed. 242d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 243d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Return true if successful. 244d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 245d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_RemoveObject(FPDF_ANNOTATION annot, int index); 246d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 247d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 248d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the color of an annotation. Fails when called on annotations with 249d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// appearance streams already defined; instead use 250d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPath_Set{Stroke|Fill}Color(). 251d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 252d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 253d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// type - type of the color to be set. 254d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// R, G, B - buffer to hold the RGB value of the color. Ranges from 0 to 255. 255d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// A - buffer to hold the opacity. Ranges from 0 to 255. 256d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 257d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 258d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetColor(FPDF_ANNOTATION annot, 259d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDFANNOT_COLORTYPE type, 260d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int R, 261d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int G, 262d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int B, 263d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int A); 264d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 265d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 266d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the color of an annotation. If no color is specified, default to yellow 267d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// for highlight annotation, black for all else. Fails when called on 268d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotations with appearance streams already defined; instead use 269d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPath_Get{Stroke|Fill}Color(). 270d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 271d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 272d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// type - type of the color requested. 273d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// R, G, B - buffer to hold the RGB value of the color. Ranges from 0 to 255. 274d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// A - buffer to hold the opacity. Ranges from 0 to 255. 275d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 276d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 277d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetColor(FPDF_ANNOTATION annot, 278d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDFANNOT_COLORTYPE type, 279d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int* R, 280d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int* G, 281d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int* B, 282d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned int* A); 283d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 284d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 285d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Check if the annotation is of a type that has attachment points 286d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// (i.e. quadpoints). Quadpoints are the vertices of the rectange that 287d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// encompasses the texts affected by the annotation. They provide the 288d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// coordinates in the page where the annotation is attached. Only text markup 289d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotations (i.e. highlight, strikeout, squiggly, and underline) and link 290d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotations have quadpoints. 291d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 292d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 293d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 294d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if the annotation is of a type that has quadpoints, false 295d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// otherwise. 296d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 297d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_HasAttachmentPoints(FPDF_ANNOTATION annot); 298d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 299d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 300d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the attachment points (i.e. quadpoints) of an annotation. If the 301d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotation's appearance stream is defined and this annotation is of a type 302d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// with quadpoints, then update the bounding box too if the new quadpoints 303d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// define a bigger one. 304d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 305d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 306d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// quadPoints - the quadpoints to be set. 307d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 308d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 309d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 310d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_SetAttachmentPoints(FPDF_ANNOTATION annot, 311d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const FS_QUADPOINTSF* quadPoints); 312d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 313d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 314d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the attachment points (i.e. quadpoints) of an annotation. 315d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 316d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 317d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// quadPoints - receives the quadpoints; must not be NULL. 318d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 319d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 320d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 321d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetAttachmentPoints(FPDF_ANNOTATION annot, 322d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FS_QUADPOINTSF* quadPoints); 323d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 324d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 325d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the annotation rectangle defining the location of the annotation. If the 326d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotation's appearance stream is defined and this annotation is of a type 327d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// without quadpoints, then update the bounding box too if the new rectangle 328d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// defines a bigger one. 329d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 330d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 331d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// rect - the annotation rectangle to be set. 332d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 333d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 334d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetRect(FPDF_ANNOTATION annot, 335d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const FS_RECTF* rect); 336d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 337d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 338d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the annotation rectangle defining the location of the annotation. 339d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 340d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 341d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// rect - receives the rectangle; must not be NULL. 342d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 343d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 344d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetRect(FPDF_ANNOTATION annot, 345d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FS_RECTF* rect); 346d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 347d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 348d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Check if |annot|'s dictionary has |key| as a key. 349d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 350d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 351d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// key - the key to look for, encoded in UTF-8. 352d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 353d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if |key| exists. 354d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_HasKey(FPDF_ANNOTATION annot, 355d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_BYTESTRING key); 356d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 357d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 358d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the type of the value corresponding to |key| in |annot|'s dictionary. 359d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 360d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 361d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// key - the key to look for, encoded in UTF-8. 362d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 363d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the type of the dictionary value. 364d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV 365d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetValueType(FPDF_ANNOTATION annot, FPDF_BYTESTRING key); 366d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 367d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 368d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the string value corresponding to |key| in |annot|'s dictionary, 369d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// overwriting the existing value if any. The value type would be 370d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDF_OBJECT_STRING after this function call succeeds. 371d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 372d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 373d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// key - the key to the dictionary entry to be set, encoded in UTF-8. 374d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// value - the string value to be set, encoded in UTF16-LE. 375d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 376d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 377d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 378d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_SetStringValue(FPDF_ANNOTATION annot, 379d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_BYTESTRING key, 380d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_WIDESTRING value); 381d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 382d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 383d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the string value corresponding to |key| in |annot|'s dictionary. |buffer| 384d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// is only modified if |buflen| is longer than the length of contents. Note that 385d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// if |key| does not exist in the dictionary or if |key|'s corresponding value 386d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// in the dictionary is not a string (i.e. the value is not of type 387d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDF_OBJECT_STRING or FPDF_OBJECT_NAME), then an empty string would be copied 388d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// to |buffer| and the return value would be 2. On other errors, nothing would 389d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// be added to |buffer| and the return value would be 0. 390d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 391d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 392d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// key - the key to the requested dictionary entry, encoded in UTF-8. 393d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// buffer - buffer for holding the value string, encoded in UTF16-LE. 394d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// buflen - length of the buffer. 395d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 396d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the length of the string value. 397d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT unsigned long FPDF_CALLCONV 398d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetStringValue(FPDF_ANNOTATION annot, 399d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_BYTESTRING key, 400d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void* buffer, 401d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned long buflen); 402d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 403d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 404d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the AP (appearance string) in |annot|'s dictionary for a given 405d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// |appearanceMode|. 406d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 407d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 408d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// appearanceMode - the appearance mode (normal, rollover or down) for which 409d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// to get the AP. 410d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// value - the string value to be set, encoded in UTF16-LE. If 411d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// nullptr is passed, the AP is cleared for that mode. If the 412d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// mode is Normal, APs for all modes are cleared. 413d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 414d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 415d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 416d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_SetAP(FPDF_ANNOTATION annot, 417d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_ANNOT_APPEARANCEMODE appearanceMode, 418d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_WIDESTRING value); 419d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 420d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 421d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the AP (appearance string) from |annot|'s dictionary for a given 422d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// |appearanceMode|. 423d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// |buffer| is only modified if |buflen| is large enough to hold the whole AP 424d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// string. If |buflen| is smaller, the total size of the AP is still returned, 425d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// but nothing is copied. 426d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// If there is no appearance stream for |annot| in |appearanceMode|, an empty 427d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// string is written to |buf| and 2 is returned. 428d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// On other errors, nothing is written to |buffer| and 0 is returned. 429d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 430d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 431d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// appearanceMode - the appearance mode (normal, rollover or down) for which 432d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// to get the AP. 433d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// buffer - buffer for holding the value string, encoded in UTF16-LE. 434d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// buflen - length of the buffer. 435d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 436d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the length of the string value. 437d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT unsigned long FPDF_CALLCONV 438d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetAP(FPDF_ANNOTATION annot, 439d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_ANNOT_APPEARANCEMODE appearanceMode, 440d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void* buffer, 441d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann unsigned long buflen); 442d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 443d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 444d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the annotation corresponding to |key| in |annot|'s dictionary. Common 445d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// keys for linking annotations include "IRT" and "Popup". Must call 446d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFPage_CloseAnnot() when the annotation returned by this function is no 447d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// longer needed. 448d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 449d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 450d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// key - the key to the requested dictionary entry, encoded in UTF-8. 451d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 452d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns a handle to the linked annotation object, or NULL on failure. 453d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV 454d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetLinkedAnnot(FPDF_ANNOTATION annot, FPDF_BYTESTRING key); 455d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 456d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 457d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the annotation flags of |annot|. 458d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 459d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 460d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 461d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the annotation flags. 462d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFlags(FPDF_ANNOTATION annot); 463d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 464d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 465d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Set the |annot|'s flags to be of the value |flags|. 466d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 467d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an annotation. 468d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// flags - the flag values to be set. 469d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 470d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns true if successful. 471d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetFlags(FPDF_ANNOTATION annot, 472d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int flags); 473d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 474d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 475d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Get the annotation flags of |annot|, which is an interactive form 476d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annotation in |page|. 477d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 478d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to a page. 479d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// annot - handle to an interactive form annotation. 480d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 481d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the annotation flags specific to interactive forms. 482d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT int FPDF_CALLCONV 483d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetFormFieldFlags(FPDF_PAGE page, FPDF_ANNOTATION annot); 484d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 485d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Experimental API. 486d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Retrieves an interactive form annotation whose rectangle contains a given 487d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// point on a page. Must call FPDFPage_CloseAnnot() when the annotation returned 488d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// is no longer needed. 489d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 490d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 491d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// hHandle - handle to the form fill module, returned by 492d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// FPDFDOC_InitFormFillEnvironment. 493d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page - handle to the page, returned by FPDF_LoadPage function. 494d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page_x - X position in PDF "user space". 495d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// page_y - Y position in PDF "user space". 496d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// 497d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Returns the interactive form annotation whose rectangle contains the given 498d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// coordinates on the page. If there is no such annotation, return NULL. 499d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV 500d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannFPDFAnnot_GetFormFieldAtPoint(FPDF_FORMHANDLE hHandle, 501d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FPDF_PAGE page, 502d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann double page_x, 503d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann double page_y); 504d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 505d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifdef __cplusplus 506d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} // extern "C" 507d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // __cplusplus 508d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 509d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // PUBLIC_FPDF_ANNOT_H_ 510