unpdf 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,7 +10,7 @@ This library is also intended as a modern alternative to the unmaintained [`pdf-
10
10
 
11
11
  - 🏗️ Conditional exports for Browser, Node and worker environments
12
12
  - 💬 Extract text from PDFs
13
- - 🧱 Use custom PDF.js build
13
+ - 🧱 Opt-in to legacy PDF.js build
14
14
 
15
15
  ## Installation
16
16
 
@@ -30,15 +30,31 @@ yarn add -D unpdf
30
30
  ## Usage
31
31
 
32
32
  ```ts
33
- import { decodePDFText } from 'unpdf'
33
+ import { extractPDFText } from 'unpdf'
34
34
 
35
- const pdfBuffer = await fetch('https://example.com/file.pdf').then(res => res.arrayBuffer())
35
+ const pdfBuffer = await fetch('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf')
36
+ .then(res => res.arrayBuffer())
36
37
 
37
- const { totalPages, info, metadata, text } = await decodePDFText(
38
+ const { totalPages, text } = await extractPDFText(
38
39
  new Uint8Array(pdfBuffer), { mergePages: true }
39
40
  )
40
41
  ```
41
42
 
43
+ ### Use Legacy Or Custom PDF.js Build
44
+
45
+ ```ts
46
+ // Before using any other methods, define the PDF.js module
47
+ import { defineUnPDFConfig } from 'unpdf'
48
+
49
+ // Use the legacy build
50
+ defineUnPDFConfig({
51
+ pdfjs: () => import('pdfjs-dist/legacy/build/pdf.js')
52
+ })
53
+
54
+ // Now, you can use the other methods
55
+ // …
56
+ ```
57
+
42
58
  ## Config
43
59
 
44
60
  ```ts
@@ -63,20 +79,25 @@ interface UnPDFConfiguration {
63
79
  function defineUnPDFConfig({ pdfjs }: UnPDFConfiguration): Promise<void>
64
80
  ```
65
81
 
66
- ### `decodePDFText`
82
+ ### `getPDFMeta`
67
83
 
68
84
  ```ts
69
- interface PDFContent {
70
- totalPages: number
71
- info?: Record<string, any>
72
- metadata?: any
73
- text: string | string[]
74
- }
85
+ function getPDFMeta(data: ArrayBuffer): Promise<{
86
+ info: Record<string, any>
87
+ metadata: any
88
+ }>
89
+ ```
90
+
91
+ ### `extractPDFText`
75
92
 
76
- function decodePDFText(
93
+ ```ts
94
+ function extractPDFText(
77
95
  data: ArrayBuffer,
78
96
  { mergePages }?: { mergePages?: boolean }
79
- ): Promise<PDFContent>
97
+ ): Promise<{
98
+ totalPages: number
99
+ text: string | string[]
100
+ }>
80
101
  ```
81
102
 
82
103
  ### `getImagesFromPage`
@@ -1,11 +1,15 @@
1
1
  'use strict';
2
2
 
3
- const image = require('./shared/unpdf.d39bdc45.cjs');
4
- const utils = require('./shared/unpdf.85e02bd7.cjs');
3
+ const image = require('./shared/unpdf.e023f326.cjs');
4
+ const utils = require('./shared/unpdf.54007d6f.cjs');
5
5
 
6
- const decodePDFText = async (...args) => {
6
+ const getPDFMeta = async (...args) => {
7
7
  await utils.resolvePDFJSImports();
8
- return await image.decodePDFText(...args);
8
+ return await image.getPDFMeta(...args);
9
+ };
10
+ const extractPDFText = async (...args) => {
11
+ await utils.resolvePDFJSImports();
12
+ return await image.extractPDFText(...args);
9
13
  };
10
14
  const getImagesFromPage = async (...args) => {
11
15
  await utils.resolvePDFJSImports();
@@ -13,5 +17,6 @@ const getImagesFromPage = async (...args) => {
13
17
  };
14
18
 
15
19
  exports.defineUnPDFConfig = utils.defineUnPDFConfig;
16
- exports.decodePDFText = decodePDFText;
20
+ exports.extractPDFText = extractPDFText;
17
21
  exports.getImagesFromPage = getImagesFromPage;
22
+ exports.getPDFMeta = getPDFMeta;
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.cjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.cjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.cjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.cjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.mjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.mjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.mjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.mjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.js';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.js';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.js';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.js';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,14 +1,18 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.e26c195e.mjs';
2
- import { r as resolvePDFJSImports } from './shared/unpdf.6c71f5a9.mjs';
3
- export { d as defineUnPDFConfig } from './shared/unpdf.6c71f5a9.mjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.0db47641.mjs';
2
+ import { r as resolvePDFJSImports } from './shared/unpdf.5b4a24ed.mjs';
3
+ export { d as defineUnPDFConfig } from './shared/unpdf.5b4a24ed.mjs';
4
4
 
5
- const decodePDFText = async (...args) => {
5
+ const getPDFMeta = async (...args) => {
6
6
  await resolvePDFJSImports();
7
- return await decodePDFText$1(...args);
7
+ return await getPDFMeta$1(...args);
8
+ };
9
+ const extractPDFText = async (...args) => {
10
+ await resolvePDFJSImports();
11
+ return await extractPDFText$1(...args);
8
12
  };
9
13
  const getImagesFromPage = async (...args) => {
10
14
  await resolvePDFJSImports();
11
15
  return await getImagesFromPage$1(...args);
12
16
  };
13
17
 
14
- export { decodePDFText, getImagesFromPage };
18
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,11 +1,15 @@
1
1
  'use strict';
2
2
 
3
- const image = require('./shared/unpdf.d39bdc45.cjs');
4
- const utils = require('./shared/unpdf.85e02bd7.cjs');
3
+ const image = require('./shared/unpdf.e023f326.cjs');
4
+ const utils = require('./shared/unpdf.54007d6f.cjs');
5
5
 
6
- const decodePDFText = async (...args) => {
6
+ const getPDFMeta = async (...args) => {
7
7
  await utils.resolvePDFJSImports();
8
- return await image.decodePDFText(...args);
8
+ return await image.getPDFMeta(...args);
9
+ };
10
+ const extractPDFText = async (...args) => {
11
+ await utils.resolvePDFJSImports();
12
+ return await image.extractPDFText(...args);
9
13
  };
10
14
  const getImagesFromPage = async (...args) => {
11
15
  await utils.resolvePDFJSImports();
@@ -13,5 +17,6 @@ const getImagesFromPage = async (...args) => {
13
17
  };
14
18
 
15
19
  exports.defineUnPDFConfig = utils.defineUnPDFConfig;
16
- exports.decodePDFText = decodePDFText;
20
+ exports.extractPDFText = extractPDFText;
17
21
  exports.getImagesFromPage = getImagesFromPage;
22
+ exports.getPDFMeta = getPDFMeta;
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.cjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.cjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.cjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.cjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.mjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.mjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.mjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.mjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.js';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.js';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.js';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.js';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,14 +1,18 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.e26c195e.mjs';
2
- import { r as resolvePDFJSImports } from './shared/unpdf.6c71f5a9.mjs';
3
- export { d as defineUnPDFConfig } from './shared/unpdf.6c71f5a9.mjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.0db47641.mjs';
2
+ import { r as resolvePDFJSImports } from './shared/unpdf.5b4a24ed.mjs';
3
+ export { d as defineUnPDFConfig } from './shared/unpdf.5b4a24ed.mjs';
4
4
 
5
- const decodePDFText = async (...args) => {
5
+ const getPDFMeta = async (...args) => {
6
6
  await resolvePDFJSImports();
7
- return await decodePDFText$1(...args);
7
+ return await getPDFMeta$1(...args);
8
+ };
9
+ const extractPDFText = async (...args) => {
10
+ await resolvePDFJSImports();
11
+ return await extractPDFText$1(...args);
8
12
  };
9
13
  const getImagesFromPage = async (...args) => {
10
14
  await resolvePDFJSImports();
11
15
  return await getImagesFromPage$1(...args);
12
16
  };
13
17
 
14
- export { decodePDFText, getImagesFromPage };
18
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const utils = require('./shared/unpdf.85e02bd7.cjs');
3
+ const utils = require('./shared/unpdf.54007d6f.cjs');
4
4
 
5
- const decodePDFText = async () => {
5
+ const getPDFMeta = async () => {
6
+ throw new Error("Not implemented in worker context yet");
7
+ };
8
+ const extractPDFText = async () => {
6
9
  throw new Error("Not implemented in worker context yet");
7
10
  };
8
11
  const getImagesFromPage = async () => {
@@ -10,5 +13,6 @@ const getImagesFromPage = async () => {
10
13
  };
11
14
 
12
15
  exports.defineUnPDFConfig = utils.defineUnPDFConfig;
13
- exports.decodePDFText = decodePDFText;
16
+ exports.extractPDFText = extractPDFText;
14
17
  exports.getImagesFromPage = getImagesFromPage;
18
+ exports.getPDFMeta = getPDFMeta;
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.cjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.cjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.cjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.cjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.mjs';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.mjs';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.mjs';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.mjs';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,8 +1,9 @@
1
- import { d as decodePDFText$1, g as getImagesFromPage$1 } from './shared/unpdf.bfd8aae1.js';
2
- export { a as defineUnPDFConfig } from './shared/unpdf.bfd8aae1.js';
1
+ import { g as getPDFMeta$1, e as extractPDFText$1, a as getImagesFromPage$1 } from './shared/unpdf.842960e8.js';
2
+ export { d as defineUnPDFConfig } from './shared/unpdf.842960e8.js';
3
3
  import 'pdfjs-dist';
4
4
 
5
- declare const decodePDFText: typeof decodePDFText$1;
5
+ declare const getPDFMeta: typeof getPDFMeta$1;
6
+ declare const extractPDFText: typeof extractPDFText$1;
6
7
  declare const getImagesFromPage: typeof getImagesFromPage$1;
7
8
 
8
- export { decodePDFText, getImagesFromPage };
9
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,10 +1,13 @@
1
- export { d as defineUnPDFConfig } from './shared/unpdf.6c71f5a9.mjs';
1
+ export { d as defineUnPDFConfig } from './shared/unpdf.5b4a24ed.mjs';
2
2
 
3
- const decodePDFText = async () => {
3
+ const getPDFMeta = async () => {
4
+ throw new Error("Not implemented in worker context yet");
5
+ };
6
+ const extractPDFText = async () => {
4
7
  throw new Error("Not implemented in worker context yet");
5
8
  };
6
9
  const getImagesFromPage = async () => {
7
10
  throw new Error("Not implemented in worker context yet");
8
11
  };
9
12
 
10
- export { decodePDFText, getImagesFromPage };
13
+ export { extractPDFText, getImagesFromPage, getPDFMeta };
@@ -1,16 +1,22 @@
1
- import { g as getDocumentProxy, a as getResolvedPDFJS } from './unpdf.6c71f5a9.mjs';
1
+ import { g as getDocumentProxy, a as getResolvedPDFJS } from './unpdf.5b4a24ed.mjs';
2
2
 
3
- async function decodePDFText(data, { mergePages = false } = {}) {
3
+ async function getPDFMeta(data) {
4
4
  const pdf = await getDocumentProxy(data);
5
5
  const meta = await pdf.getMetadata().catch(() => null);
6
+ return {
7
+ info: meta?.info,
8
+ metadata: meta?.metadata?.getAll()
9
+ };
10
+ }
11
+
12
+ async function extractPDFText(data, { mergePages = false } = {}) {
13
+ const pdf = await getDocumentProxy(data);
6
14
  const texts = await Promise.all(
7
15
  Array.from({ length: pdf.numPages }, (_, i) => getPageText(pdf, i + 1))
8
16
  );
9
17
  const filteredTexts = texts.filter(Boolean);
10
18
  return {
11
19
  totalPages: pdf.numPages,
12
- info: meta?.info,
13
- metadata: meta?.metadata?.getAll(),
14
20
  text: mergePages ? filteredTexts.join("\n\n") : filteredTexts
15
21
  };
16
22
  }
@@ -39,4 +45,4 @@ async function getImagesFromPage(data, pageNumber) {
39
45
  return images;
40
46
  }
41
47
 
42
- export { decodePDFText as d, getImagesFromPage as g };
48
+ export { getImagesFromPage as a, extractPDFText as e, getPDFMeta as g };
@@ -14,7 +14,8 @@ async function getDocumentProxy(data) {
14
14
  async function defineUnPDFConfig({ pdfjs }) {
15
15
  if (pdfjs) {
16
16
  try {
17
- resolvedModule = await pdfjs();
17
+ const { default: mod } = await pdfjs();
18
+ resolvedModule = mod;
18
19
  } catch (error) {
19
20
  throw new Error("Resolving the PDF.js module failed. Please check your configuration.");
20
21
  }
@@ -12,7 +12,8 @@ async function getDocumentProxy(data) {
12
12
  async function defineUnPDFConfig({ pdfjs }) {
13
13
  if (pdfjs) {
14
14
  try {
15
- resolvedModule = await pdfjs();
15
+ const { default: mod } = await pdfjs();
16
+ resolvedModule = mod;
16
17
  } catch (error) {
17
18
  throw new Error("Resolving the PDF.js module failed. Please check your configuration.");
18
19
  }
@@ -1,11 +1,19 @@
1
- import * as PDFJS from 'pdfjs-dist';
1
+ import PDFJS from 'pdfjs-dist';
2
2
 
3
- interface PDFContent {
3
+ declare function getPDFMeta(data: ArrayBuffer): Promise<{
4
+ info: Record<string, any>;
5
+ metadata: any;
6
+ }>;
7
+
8
+ declare function extractPDFText(data: ArrayBuffer, { mergePages }?: {
9
+ mergePages?: boolean;
10
+ }): Promise<{
4
11
  totalPages: number;
5
- info?: Record<string, any>;
6
- metadata?: any;
7
12
  text: string | string[];
8
- }
13
+ }>;
14
+
15
+ declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
16
+
9
17
  interface UnPDFConfiguration {
10
18
  /**
11
19
  * By default, UnPDF will use the latest version of PDF.js. If you want to
@@ -18,12 +26,6 @@ interface UnPDFConfiguration {
18
26
  pdfjs?: () => Promise<typeof PDFJS>;
19
27
  }
20
28
 
21
- declare function decodePDFText(data: ArrayBuffer, { mergePages }?: {
22
- mergePages?: boolean;
23
- }): Promise<PDFContent>;
24
-
25
- declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
26
-
27
29
  declare function defineUnPDFConfig({ pdfjs }: UnPDFConfiguration): Promise<void>;
28
30
 
29
- export { defineUnPDFConfig as a, decodePDFText as d, getImagesFromPage as g };
31
+ export { getImagesFromPage as a, defineUnPDFConfig as d, extractPDFText as e, getPDFMeta as g };
@@ -1,11 +1,19 @@
1
- import * as PDFJS from 'pdfjs-dist';
1
+ import PDFJS from 'pdfjs-dist';
2
2
 
3
- interface PDFContent {
3
+ declare function getPDFMeta(data: ArrayBuffer): Promise<{
4
+ info: Record<string, any>;
5
+ metadata: any;
6
+ }>;
7
+
8
+ declare function extractPDFText(data: ArrayBuffer, { mergePages }?: {
9
+ mergePages?: boolean;
10
+ }): Promise<{
4
11
  totalPages: number;
5
- info?: Record<string, any>;
6
- metadata?: any;
7
12
  text: string | string[];
8
- }
13
+ }>;
14
+
15
+ declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
16
+
9
17
  interface UnPDFConfiguration {
10
18
  /**
11
19
  * By default, UnPDF will use the latest version of PDF.js. If you want to
@@ -18,12 +26,6 @@ interface UnPDFConfiguration {
18
26
  pdfjs?: () => Promise<typeof PDFJS>;
19
27
  }
20
28
 
21
- declare function decodePDFText(data: ArrayBuffer, { mergePages }?: {
22
- mergePages?: boolean;
23
- }): Promise<PDFContent>;
24
-
25
- declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
26
-
27
29
  declare function defineUnPDFConfig({ pdfjs }: UnPDFConfiguration): Promise<void>;
28
30
 
29
- export { defineUnPDFConfig as a, decodePDFText as d, getImagesFromPage as g };
31
+ export { getImagesFromPage as a, defineUnPDFConfig as d, extractPDFText as e, getPDFMeta as g };
@@ -1,11 +1,19 @@
1
- import * as PDFJS from 'pdfjs-dist';
1
+ import PDFJS from 'pdfjs-dist';
2
2
 
3
- interface PDFContent {
3
+ declare function getPDFMeta(data: ArrayBuffer): Promise<{
4
+ info: Record<string, any>;
5
+ metadata: any;
6
+ }>;
7
+
8
+ declare function extractPDFText(data: ArrayBuffer, { mergePages }?: {
9
+ mergePages?: boolean;
10
+ }): Promise<{
4
11
  totalPages: number;
5
- info?: Record<string, any>;
6
- metadata?: any;
7
12
  text: string | string[];
8
- }
13
+ }>;
14
+
15
+ declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
16
+
9
17
  interface UnPDFConfiguration {
10
18
  /**
11
19
  * By default, UnPDF will use the latest version of PDF.js. If you want to
@@ -18,12 +26,6 @@ interface UnPDFConfiguration {
18
26
  pdfjs?: () => Promise<typeof PDFJS>;
19
27
  }
20
28
 
21
- declare function decodePDFText(data: ArrayBuffer, { mergePages }?: {
22
- mergePages?: boolean;
23
- }): Promise<PDFContent>;
24
-
25
- declare function getImagesFromPage(data: ArrayBuffer, pageNumber: number): Promise<ArrayBuffer[]>;
26
-
27
29
  declare function defineUnPDFConfig({ pdfjs }: UnPDFConfiguration): Promise<void>;
28
30
 
29
- export { defineUnPDFConfig as a, decodePDFText as d, getImagesFromPage as g };
31
+ export { getImagesFromPage as a, defineUnPDFConfig as d, extractPDFText as e, getPDFMeta as g };
@@ -1,18 +1,24 @@
1
1
  'use strict';
2
2
 
3
- const utils = require('./unpdf.85e02bd7.cjs');
3
+ const utils = require('./unpdf.54007d6f.cjs');
4
4
 
5
- async function decodePDFText(data, { mergePages = false } = {}) {
5
+ async function getPDFMeta(data) {
6
6
  const pdf = await utils.getDocumentProxy(data);
7
7
  const meta = await pdf.getMetadata().catch(() => null);
8
+ return {
9
+ info: meta?.info,
10
+ metadata: meta?.metadata?.getAll()
11
+ };
12
+ }
13
+
14
+ async function extractPDFText(data, { mergePages = false } = {}) {
15
+ const pdf = await utils.getDocumentProxy(data);
8
16
  const texts = await Promise.all(
9
17
  Array.from({ length: pdf.numPages }, (_, i) => getPageText(pdf, i + 1))
10
18
  );
11
19
  const filteredTexts = texts.filter(Boolean);
12
20
  return {
13
21
  totalPages: pdf.numPages,
14
- info: meta?.info,
15
- metadata: meta?.metadata?.getAll(),
16
22
  text: mergePages ? filteredTexts.join("\n\n") : filteredTexts
17
23
  };
18
24
  }
@@ -41,5 +47,6 @@ async function getImagesFromPage(data, pageNumber) {
41
47
  return images;
42
48
  }
43
49
 
44
- exports.decodePDFText = decodePDFText;
50
+ exports.extractPDFText = extractPDFText;
45
51
  exports.getImagesFromPage = getImagesFromPage;
52
+ exports.getPDFMeta = getPDFMeta;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unpdf",
3
3
  "type": "module",
4
- "version": "0.4.0",
4
+ "version": "0.5.0",
5
5
  "packageManager": "pnpm@8.6.12",
6
6
  "description": "Utilities to work with PDFs, like extracting text",
7
7
  "author": "Johann Schopplich <pkg@johannschopplich.com>",
@@ -53,6 +53,7 @@
53
53
  "lint": "eslint .",
54
54
  "lint:fix": "eslint . --fix",
55
55
  "release": "bumpp --commit --push --tag",
56
+ "test": "tsx test/index.ts",
56
57
  "test:types": "tsc --noEmit"
57
58
  },
58
59
  "peerDependencies": {
@@ -60,9 +61,11 @@
60
61
  },
61
62
  "devDependencies": {
62
63
  "@antfu/eslint-config": "^0.40.2",
64
+ "@types/node": "^20.4.10",
63
65
  "bumpp": "^9.1.1",
64
66
  "eslint": "^8.47.0",
65
67
  "pdfjs-dist": "^3.9.179",
68
+ "tsx": "^3.12.7",
66
69
  "typescript": "^5.1.6",
67
70
  "unbuild": "^2.0.0-rc.0"
68
71
  }