UNPKG

@ironsoftware/ironpdf

Version:

IronPDF for Node

88 lines (82 loc) 1.91 kB
import { z } from "zod" import { barcodeTypeSchema, cssMediaTypeSchema, horizontalAlignmentSchema, lengthSchema, verticalAlignmentSchema } from "./typeSchema"; import {BarcodeStampOptions, TextStampOptions} from "../../public/stamp"; export const baseStampOptionsSchema = z.object({ horizontalAlignment: horizontalAlignmentSchema, verticalAlignment: verticalAlignmentSchema, horizontalOffset: lengthSchema.optional(), verticalOffset: lengthSchema.optional(), opacity: z .number() .optional(), rotation: z .number() .optional(), hyperlink: z .string() .optional(), scale: z .number() .optional(), behindExistingContent: z .boolean() .optional(), timeout: z .number() .optional(), renderDelay: z .number() .optional(), maxWidth: lengthSchema.optional(), maxHeight: lengthSchema.optional(), minWidth: lengthSchema.optional(), minHeight: lengthSchema.optional() }) export const htmlStampOptionsSchema = baseStampOptionsSchema.extend({ cssMediaType: cssMediaTypeSchema.optional() }) export const imageStampOptionsSchema = baseStampOptionsSchema export const barcodeStampOptionsSchema: z.ZodType<BarcodeStampOptions> = baseStampOptionsSchema.extend({ widthPx: z .number() .optional(), heightPx: z .number() .optional(), barcodeType: barcodeTypeSchema.optional() }) export const textStampOptionsSchema: z.ZodType<TextStampOptions> = baseStampOptionsSchema.extend({ isBold: z .boolean() .optional(), isItalic: z .boolean() .optional(), isUnderline: z .boolean() .optional(), isStrikethrough: z .boolean() .optional(), fontFamily: z .string() .optional(), fontSize: z .number() .optional(), useGoogleFont: z .boolean() .optional(), textColor: z .string() .optional(), backgroundColor: z .string() .optional() })