(fileSpec: PdfDict, resolver: RefResolver)
| 134 | * @returns The stream if found, null if external reference or missing |
| 135 | */ |
| 136 | export function getEmbeddedFileStream(fileSpec: PdfDict, resolver: RefResolver): PdfStream | null { |
| 137 | // Get /EF (embedded file dictionary) |
| 138 | const ef = fileSpec.getDict("EF", resolver); |
| 139 | |
| 140 | if (!ef) { |
| 141 | return null; // External file reference |
| 142 | } |
| 143 | |
| 144 | // Get /F entry (or /UF) from EF dict - points to the stream |
| 145 | const streamRef = ef.getRef("F") ?? ef.getRef("UF"); |
| 146 | |
| 147 | if (!streamRef) { |
| 148 | return null; |
| 149 | } |
| 150 | |
| 151 | const stream = resolver(streamRef); |
| 152 | |
| 153 | if (stream instanceof PdfStream) { |
| 154 | return stream; |
| 155 | } |
| 156 | |
| 157 | return null; |
| 158 | } |
| 159 | |
| 160 | /** |
| 161 | * Parse a FileSpec dictionary into AttachmentInfo. |
no test coverage detected