* feat(wasm): add browser bindings * fix(wasm): address review feedback * fix(wasm): preserve numeric plain text * chore(wasm): prepare 0.1.2 release
61 lines
1.6 KiB
Markdown
61 lines
1.6 KiB
Markdown
# @firecrawl/pdf-inspector-wasm
|
|
|
|
Browser WebAssembly bindings for [pdf-inspector](https://github.com/firecrawl/pdf-inspector). Classify PDFs and extract structured Markdown locally from a `Uint8Array`, using the same Rust core as the native Node.js, Python, and Rust packages.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
npm install @firecrawl/pdf-inspector-wasm
|
|
```
|
|
|
|
## Usage
|
|
|
|
```ts
|
|
import init, { processPdf } from "@firecrawl/pdf-inspector-wasm";
|
|
|
|
await init();
|
|
|
|
const response = await fetch("/annual-report.pdf");
|
|
const pdf = new Uint8Array(await response.arrayBuffer());
|
|
const result = processPdf(pdf);
|
|
|
|
console.log(result.pdfType);
|
|
console.log(result.markdown);
|
|
```
|
|
|
|
Pass options when you need selected pages or compact Markdown:
|
|
|
|
```ts
|
|
const result = processPdf(pdf, {
|
|
pages: [1, 3, 5],
|
|
profile: "compact",
|
|
includePageMarkers: true,
|
|
});
|
|
```
|
|
|
|
The package also exports:
|
|
|
|
- `detectPdf(pdf, options?)` for detection without extraction.
|
|
- `classifyPdf(pdf)` for the lightweight result shape shared with the native Node.js API.
|
|
- `extractText(pdf)` for plain text.
|
|
- `version()` for the WASM package version.
|
|
|
|
## Browser behavior
|
|
|
|
- Parsing runs locally. PDF bytes are not uploaded anywhere.
|
|
- The build is single-threaded and does not require cross-origin isolation.
|
|
- CMaps are embedded so CJK font decoding does not depend on a filesystem.
|
|
- Extraction is synchronous after `init()`. For large documents, call it from a Web Worker to keep the UI responsive.
|
|
- Image-only documents still require a separate OCR step.
|
|
|
|
## Build from source
|
|
|
|
```bash
|
|
cargo install wasm-pack --version 0.15.0 --locked
|
|
wasm-pack build wasm --target web --scope firecrawl --release
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|