@pdfme/schemas 5.2.16 → 5.3.0-beta.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.
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pdfToImage = exports.isPdf = void 0;
4
+ const common_1 = require("@pdfme/common");
5
+ const converter_1 = require("@pdfme/converter");
4
6
  const cacheKey_1 = require("./cacheKey");
5
7
  function isPdf(content) {
6
8
  return content.startsWith('data:application/pdf;');
@@ -10,40 +12,19 @@ exports.isPdf = isPdf;
10
12
  * convert pdf to blob image url
11
13
  * @param content
12
14
  */
13
- const pdfToImage = async ({ schema, value, _cache, pdfJs, }) => {
15
+ const pdfToImage = async ({ schema, value, _cache, }) => {
14
16
  // using value from cache to prevent rerending pdf to image
15
17
  const pdfImageCacheKey = (0, cacheKey_1.getCacheKey)(schema, value);
16
18
  const imageSrc = _cache.get(pdfImageCacheKey);
17
19
  if (imageSrc)
18
20
  return imageSrc;
19
- const pdfDoc = await pdfJs.getDocument({ url: value }).promise;
20
- const page = await pdfDoc.getPage(1);
21
- const canvas = document.createElement('canvas');
22
- const viewport = page.getViewport({ scale: 1 });
23
- canvas.width = viewport.width;
24
- canvas.height = viewport.height;
25
- const canvasContext = canvas.getContext('2d');
26
- await page.render({ canvasContext, viewport }).promise;
27
- const image = await _canvasToObjectUrl(canvas);
21
+ const images = await (0, converter_1.pdf2img)((0, common_1.b64toUint8Array)(value), {
22
+ imageType: 'png',
23
+ range: { end: 1 },
24
+ });
25
+ const image = URL.createObjectURL(new Blob([images[0]], { type: 'image/png' }));
28
26
  _cache.set(pdfImageCacheKey, image);
29
27
  return image;
30
28
  };
31
29
  exports.pdfToImage = pdfToImage;
32
- /**
33
- * convert canvas to blob url
34
- * @param canvas
35
- */
36
- const _canvasToObjectUrl = async (canvas) => {
37
- return new Promise((resolve, reject) => {
38
- canvas.toBlob(function (blob) {
39
- if (!blob) {
40
- reject('inavlid canvas');
41
- }
42
- else {
43
- const url = URL.createObjectURL(blob);
44
- resolve(url);
45
- }
46
- });
47
- });
48
- };
49
30
  //# sourceMappingURL=pdfHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdfHelper.js","sourceRoot":"","sources":["../../../../src/graphics/pdfHelper.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AAGzC,SAAgB,KAAK,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,GACsB,EAAmB,EAAE;IAChD,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,IAAA,sBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IAE/C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAzBW,QAAA,UAAU,cAyBrB;AAEF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAyB,EAAmB,EAAE;IAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI;YAC1B,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC1B;iBAAM;gBACL,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"pdfHelper.js","sourceRoot":"","sources":["../../../../src/graphics/pdfHelper.ts"],"names":[],"mappings":";;;AAAA,0CAA+D;AAC/D,gDAA2C;AAC3C,yCAAyC;AAGzC,SAAgB,KAAK,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,MAAM,GACqB,EAAmB,EAAE;IAChD,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,IAAA,sBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAO,EAAC,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE;QACnD,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAlBW,QAAA,UAAU,cAkBrB"}
@@ -1,3 +1,5 @@
1
+ import { b64toUint8Array } from '@pdfme/common';
2
+ import { pdf2img } from '@pdfme/converter';
1
3
  import { getCacheKey } from './cacheKey';
2
4
  export function isPdf(content) {
3
5
  return content.startsWith('data:application/pdf;');
@@ -6,39 +8,18 @@ export function isPdf(content) {
6
8
  * convert pdf to blob image url
7
9
  * @param content
8
10
  */
9
- export const pdfToImage = async ({ schema, value, _cache, pdfJs, }) => {
11
+ export const pdfToImage = async ({ schema, value, _cache, }) => {
10
12
  // using value from cache to prevent rerending pdf to image
11
13
  const pdfImageCacheKey = getCacheKey(schema, value);
12
14
  const imageSrc = _cache.get(pdfImageCacheKey);
13
15
  if (imageSrc)
14
16
  return imageSrc;
15
- const pdfDoc = await pdfJs.getDocument({ url: value }).promise;
16
- const page = await pdfDoc.getPage(1);
17
- const canvas = document.createElement('canvas');
18
- const viewport = page.getViewport({ scale: 1 });
19
- canvas.width = viewport.width;
20
- canvas.height = viewport.height;
21
- const canvasContext = canvas.getContext('2d');
22
- await page.render({ canvasContext, viewport }).promise;
23
- const image = await _canvasToObjectUrl(canvas);
17
+ const images = await pdf2img(b64toUint8Array(value), {
18
+ imageType: 'png',
19
+ range: { end: 1 },
20
+ });
21
+ const image = URL.createObjectURL(new Blob([images[0]], { type: 'image/png' }));
24
22
  _cache.set(pdfImageCacheKey, image);
25
23
  return image;
26
24
  };
27
- /**
28
- * convert canvas to blob url
29
- * @param canvas
30
- */
31
- const _canvasToObjectUrl = async (canvas) => {
32
- return new Promise((resolve, reject) => {
33
- canvas.toBlob(function (blob) {
34
- if (!blob) {
35
- reject('inavlid canvas');
36
- }
37
- else {
38
- const url = URL.createObjectURL(blob);
39
- resolve(url);
40
- }
41
- });
42
- });
43
- };
44
25
  //# sourceMappingURL=pdfHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdfHelper.js","sourceRoot":"","sources":["../../../../src/graphics/pdfHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,GACsB,EAAmB,EAAE;IAChD,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IAE/C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAyB,EAAmB,EAAE;IAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI;YAC1B,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC1B;iBAAM;gBACL,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"pdfHelper.js","sourceRoot":"","sources":["../../../../src/graphics/pdfHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,MAAM,GACqB,EAAmB,EAAE;IAChD,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;QACnD,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -5,4 +5,4 @@ export declare function isPdf(content: string): boolean;
5
5
  * convert pdf to blob image url
6
6
  * @param content
7
7
  */
8
- export declare const pdfToImage: ({ schema, value, _cache, pdfJs, }: UIRenderProps<ImageSchema>) => Promise<string>;
8
+ export declare const pdfToImage: ({ schema, value, _cache, }: UIRenderProps<ImageSchema>) => Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdfme/schemas",
3
- "version": "5.2.16",
3
+ "version": "5.3.0-beta.0",
4
4
  "sideEffects": false,
5
5
  "author": "hand-dot",
6
6
  "license": "MIT",
@@ -48,6 +48,7 @@
48
48
  "prettier": "prettier --write 'src/**/*.ts'"
49
49
  },
50
50
  "dependencies": {
51
+ "@pdfme/converter": "file:../converter",
51
52
  "@pdfme/pdf-lib": "^1.18.3",
52
53
  "air-datepicker": "^3.5.3",
53
54
  "bwip-js": "^4.1.1",
@@ -1,4 +1,5 @@
1
- import { Schema, UIRenderProps } from '@pdfme/common';
1
+ import { UIRenderProps, b64toUint8Array } from '@pdfme/common';
2
+ import { pdf2img } from '@pdfme/converter';
2
3
  import { getCacheKey } from './cacheKey';
3
4
  import { ImageSchema } from './image';
4
5
 
@@ -14,42 +15,18 @@ export const pdfToImage = async ({
14
15
  schema,
15
16
  value,
16
17
  _cache,
17
- pdfJs,
18
18
  }: UIRenderProps<ImageSchema>): Promise<string> => {
19
19
  // using value from cache to prevent rerending pdf to image
20
20
  const pdfImageCacheKey = getCacheKey(schema, value);
21
21
  const imageSrc = _cache.get(pdfImageCacheKey);
22
22
  if (imageSrc) return imageSrc;
23
23
 
24
- const pdfDoc = await pdfJs.getDocument({ url: value }).promise;
25
- const page = await pdfDoc.getPage(1);
26
-
27
- const canvas = document.createElement('canvas');
28
- const viewport = page.getViewport({ scale: 1 });
29
- canvas.width = viewport.width;
30
- canvas.height = viewport.height;
31
- const canvasContext = canvas.getContext('2d')!;
32
-
33
- await page.render({ canvasContext, viewport }).promise;
34
- const image = await _canvasToObjectUrl(canvas);
24
+ const images = await pdf2img(b64toUint8Array(value), {
25
+ imageType: 'png',
26
+ range: { end: 1 },
27
+ });
28
+ const image = URL.createObjectURL(new Blob([images[0]], { type: 'image/png' }));
35
29
 
36
30
  _cache.set(pdfImageCacheKey, image);
37
31
  return image;
38
32
  };
39
-
40
- /**
41
- * convert canvas to blob url
42
- * @param canvas
43
- */
44
- const _canvasToObjectUrl = async (canvas: HTMLCanvasElement): Promise<string> => {
45
- return new Promise((resolve, reject) => {
46
- canvas.toBlob(function (blob) {
47
- if (!blob) {
48
- reject('inavlid canvas');
49
- } else {
50
- const url = URL.createObjectURL(blob);
51
- resolve(url);
52
- }
53
- });
54
- });
55
- };