UNPKG

@compdfkit_pdf_sdk/react_native

Version:

ComPDFKit for React Native is a comprehensive SDK that allows you to quickly add PDF functionality to Android, iOS, and React Native applications.

153 lines (142 loc) 4.58 kB
/** * Copyright © 2014-2026 PDF Technologies, Inc. All Rights Reserved. * * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT. * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES. * This notice may not be removed from this file. */ import { CPDFAnnotation } from "./CPDFAnnotation"; import { CPDFRectF } from "../util/CPDFRectF"; import { CPDFImageData } from "../util/CPDFImageData"; /** * @class CPDFImageAnnotation * @group Annotations * @property { string } [image] - Legacy Base64 encoded image string representing the image annotation. * @property { CPDFImageData } [imageData] - Preferred image source descriptor. */ export class CPDFImageAnnotation extends CPDFAnnotation { /** * Legacy Base64 encoded image string representing the image annotation. * * example: "iVBORw0KGgoAAAANSUhEUgAA..." */ image?: string; /** * Preferred image source descriptor. */ imageData?: CPDFImageData; constructor(params: Partial<CPDFImageAnnotation> & { imageData?: unknown }) { super(params); this.type = 'pictures'; this.image = typeof params.image === 'string' ? params.image : undefined; this.imageData = params.imageData instanceof CPDFImageData ? params.imageData : params.imageData != null ? CPDFImageData.fromJson(params.imageData) : undefined; } static fromBase64(params: { page: number; rect: CPDFRectF; base64: string; title?: string; content?: string; createDate?: Date; uuid?: string; }): CPDFImageAnnotation { return new CPDFImageAnnotation({ title: params.title, content: params.content, createDate: params.createDate, page: params.page, uuid: params.uuid, rect: params.rect, imageData: CPDFImageData.fromBase64(params.base64), }); } static fromDataUri(params: { page: number; rect: CPDFRectF; dataUri: string; title?: string; content?: string; createDate?: Date; uuid?: string; }): CPDFImageAnnotation { return new CPDFImageAnnotation({ title: params.title, content: params.content, createDate: params.createDate, page: params.page, uuid: params.uuid, rect: params.rect, imageData: CPDFImageData.fromDataUri(params.dataUri), }); } static fromPath(params: { page: number; rect: CPDFRectF; filePath: string; title?: string; content?: string; createDate?: Date; uuid?: string; }): CPDFImageAnnotation { return new CPDFImageAnnotation({ title: params.title, content: params.content, createDate: params.createDate, page: params.page, uuid: params.uuid, rect: params.rect, imageData: CPDFImageData.fromPath(params.filePath), }); } static fromAsset(params: { page: number; rect: CPDFRectF; assetPath: string; title?: string; content?: string; createDate?: Date; uuid?: string; }): CPDFImageAnnotation { return new CPDFImageAnnotation({ title: params.title, content: params.content, createDate: params.createDate, page: params.page, uuid: params.uuid, rect: params.rect, imageData: CPDFImageData.fromAsset(params.assetPath), }); } static fromUri(params: { page: number; rect: CPDFRectF; uri: string; title?: string; content?: string; createDate?: Date; uuid?: string; }): CPDFImageAnnotation { return new CPDFImageAnnotation({ title: params.title, content: params.content, createDate: params.createDate, page: params.page, uuid: params.uuid, rect: params.rect, imageData: CPDFImageData.fromUri(params.uri), }); } toJSON() { return { ...super.toJSON(), image: this.image, imageData: this.imageData?.toJson(), stampType: 'image' }; } }