MCPcopy Create free account
hub / github.com/LibPDF-js/core / createAnnotation

Function createAnnotation

src/annotations/factory.ts:45–115  ·  view source on GitHub ↗
(
  dict: PdfDict,
  ref: PdfRef | null,
  registry: ObjectRegistry,
)

Source from the content-addressed store, hash-verified

43 * @returns The appropriate annotation class instance
44 */
45export function createAnnotation(
46 dict: PdfDict,
47 ref: PdfRef | null,
48 registry: ObjectRegistry,
49): PDFAnnotation {
50 const subtypeName = dict.getName("Subtype", registry.resolve.bind(registry))?.value;
51
52 const subtype = isAnnotationSubtype(subtypeName) ? subtypeName : "Text";
53
54 switch (subtype) {
55 case "Text":
56 return new PDFTextAnnotation(dict, ref, registry);
57
58 case "Link":
59 return new PDFLinkAnnotation(dict, ref, registry);
60
61 case "FreeText":
62 return new PDFFreeTextAnnotation(dict, ref, registry);
63
64 case "Line":
65 return new PDFLineAnnotation(dict, ref, registry);
66
67 case "Square":
68 return new PDFSquareAnnotation(dict, ref, registry);
69
70 case "Circle":
71 return new PDFCircleAnnotation(dict, ref, registry);
72
73 case "Polygon":
74 return new PDFPolygonAnnotation(dict, ref, registry);
75
76 case "PolyLine":
77 return new PDFPolylineAnnotation(dict, ref, registry);
78
79 case "Highlight":
80 return new PDFHighlightAnnotation(dict, ref, registry);
81
82 case "Underline":
83 return new PDFUnderlineAnnotation(dict, ref, registry);
84
85 case "Squiggly":
86 return new PDFSquigglyAnnotation(dict, ref, registry);
87
88 case "StrikeOut":
89 return new PDFStrikeOutAnnotation(dict, ref, registry);
90
91 case "Stamp":
92 return new PDFStampAnnotation(dict, ref, registry);
93
94 case "Caret":
95 return new PDFCaretAnnotation(dict, ref, registry);
96
97 case "Ink":
98 return new PDFInkAnnotation(dict, ref, registry);
99
100 case "Popup":
101 return new PDFPopupAnnotation(dict, ref, registry);
102

Callers 10

flattenPageMethod · 0.90
getAnnotationsMethod · 0.90
addLinkAnnotationMethod · 0.90
addTextAnnotationMethod · 0.90
addLineAnnotationMethod · 0.90
addSquareAnnotationMethod · 0.90
addCircleAnnotationMethod · 0.90
addStampAnnotationMethod · 0.90
addInkAnnotationMethod · 0.90

Calls 2

isAnnotationSubtypeFunction · 0.90
getNameMethod · 0.65

Tested by

no test coverage detected