import PDFDict from "../objects/PDFDict"; import PDFArray from "../objects/PDFArray"; import PDFRef from "../objects/PDFRef"; import PDFString from "../objects/PDFString"; import PDFContext from "../PDFContext"; import PDFAnnotation from "./PDFAnnotation"; import { Color } from "../../api/colors"; /** * Tipos de ação para links. */ export declare enum LinkActionType { /** Link para URL externa */ URI = "URI", /** Link para destino interno (página) */ GoTo = "GoTo", /** Link para destino nomeado */ GoToR = "GoToR" } /** * Estilo de borda para links. */ export interface LinkBorderStyle { /** Raio horizontal dos cantos */ horizontalCornerRadius?: number; /** Raio vertical dos cantos */ verticalCornerRadius?: number; /** Largura da borda */ width?: number; /** Estilo do traço (0=sólido, 1-6=tracejado) */ dashArray?: number[]; } /** * Opções para criar um link. */ export interface LinkOptions { /** Retângulo do link [x, y, largura, altura] */ rect: { x: number; y: number; width: number; height: number; }; /** URL para link externo */ url?: string; /** Página de destino para link interno (índice base 0) */ pageIndex?: number; /** Posição X no destino */ destX?: number; /** Posição Y no destino */ destY?: number; /** Zoom no destino (null = manter atual) */ destZoom?: number | null; /** Cor da borda do link */ borderColor?: Color; /** Estilo da borda */ borderStyle?: LinkBorderStyle; /** Se o link deve ser impresso */ print?: boolean; } /** * Representa uma anotação de link em um PDF. * Links podem apontar para URLs externas ou destinos internos do documento. */ declare class PDFLinkAnnotation extends PDFAnnotation { /** * Cria uma nova anotação de link. */ static create(context: PDFContext): PDFLinkAnnotation; /** * Cria uma anotação de link a partir de um dicionário existente. */ static fromDict(dict: PDFDict): PDFLinkAnnotation; protected constructor(dict: PDFDict); /** * Define a URL de destino para o link (link externo). * @param uri A URL de destino */ setURI(uri: string): void; /** * Obtém a URL de destino do link. * @returns A URL ou undefined se não for um link de URL */ getURI(): string | undefined; /** * Define um destino interno para o link (navega para uma página). * @param pageRef Referência da página de destino * @param x Posição X no destino (ou null para manter atual) * @param y Posição Y no destino (ou null para manter atual) * @param zoom Zoom no destino (ou null para manter atual) */ setDestination(pageRef: PDFRef, x?: number | null, y?: number | null, zoom?: number | null): void; /** * Define um destino nomeado para o link. * @param name Nome do destino */ setNamedDestination(name: string): void; /** * Obtém o destino interno do link. */ getDestination(): PDFArray | PDFString | undefined; /** * Define a borda do link. * @param style Estilo da borda */ setBorder(style: LinkBorderStyle): void; /** * Remove a borda do link. */ removeBorder(): void; /** * Define a cor da borda do link. * @param color Cor no formato [r, g, b] (0-1) */ setBorderColor(color: Color): void; private extractColorComponents; /** * Obtém a cor da borda. */ getBorderColor(): number[] | undefined; /** * Define o modo de highlight quando o link é clicado. * @param mode N=nenhum, I=invertido, O=outline, P=push */ setHighlightMode(mode: 'N' | 'I' | 'O' | 'P'): void; /** * Configura o link para ser impresso ou não. */ setPrint(print: boolean): void; } export default PDFLinkAnnotation; //# sourceMappingURL=PDFLinkAnnotation.d.ts.map