@embedpdf/engines 1.0.4 → 1.0.5

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,4 +1,4 @@
1
- import { PdfEngine, Logger, Task, PdfErrorReason, PdfFileUrl, PdfUrlOptions, PdfDocumentObject, PdfFile, PdfFileLoader, PdfSignatureObject, PdfBookmarkObject, PdfPageObject, Rotation, PdfRenderOptions, PdfTask, Rect, PdfAnnotationObject, PdfAnnotationTransformation, PdfTextRectObject, PdfAttachmentObject, PdfWidgetAnnoObject, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfInkListObject, PdfStampAnnoObjectContents, Position, PdfPageGeometry, PdfGlyphObject, MatchFlag, SearchAllPagesResult, PdfImage } from '@embedpdf/models';
1
+ import { PdfEngine, Logger, Task, PdfErrorReason, PdfFileUrl, PdfUrlOptions, PdfDocumentObject, PdfFile, PdfFileLoader, PdfSignatureObject, PdfBookmarkObject, PdfPageObject, Rotation, PdfRenderOptions, ImageConversionTypes, PdfTask, Rect, PdfAnnotationObject, PdfAnnotationTransformation, PdfTextRectObject, PdfAttachmentObject, PdfWidgetAnnoObject, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfInkListObject, PdfStampAnnoObjectContents, Position, PdfPageGeometry, PdfGlyphObject, MatchFlag, SearchAllPagesResult, PdfImage } from '@embedpdf/models';
2
2
  import { WrappedPdfiumModule } from '@embedpdf/pdfium';
3
3
 
4
4
  /**
@@ -6,7 +6,7 @@ import { WrappedPdfiumModule } from '@embedpdf/pdfium';
6
6
  * In browser: uses OffscreenCanvas
7
7
  * In Node.js: can use Sharp or other image processing libraries
8
8
  */
9
- type ImageDataConverter<T = Blob> = (imageData: PdfImage) => Promise<T>;
9
+ type ImageDataConverter<T = Blob> = (imageData: PdfImage, imageType?: ImageConversionTypes) => Promise<T>;
10
10
  /**
11
11
  * Pdf engine that based on pdfium wasm
12
12
  */
@@ -127,13 +127,13 @@ declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
127
127
  *
128
128
  * @public
129
129
  */
130
- renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor?: number, rotation?: Rotation, dpr?: number, options?: PdfRenderOptions): PdfTask<T>;
130
+ renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor?: number, rotation?: Rotation, dpr?: number, options?: PdfRenderOptions, imageType?: ImageConversionTypes): PdfTask<T>;
131
131
  /**
132
132
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}
133
133
  *
134
134
  * @public
135
135
  */
136
- renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions): PdfTask<T>;
136
+ renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions, imageType?: ImageConversionTypes): PdfTask<T>;
137
137
  /**
138
138
  * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}
139
139
  *
@@ -265,7 +265,7 @@ var PdfiumErrorCode;
265
265
  PdfiumErrorCode[PdfiumErrorCode["XFALoad"] = 7] = "XFALoad";
266
266
  PdfiumErrorCode[PdfiumErrorCode["XFALayout"] = 8] = "XFALayout";
267
267
  })(PdfiumErrorCode || (PdfiumErrorCode = {}));
268
- const browserImageDataToBlobConverter = (pdfImageData) => {
268
+ const browserImageDataToBlobConverter = (pdfImageData, imageType = 'image/webp') => {
269
269
  // Check if we're in a browser environment
270
270
  if (typeof OffscreenCanvas === 'undefined') {
271
271
  throw new Error('OffscreenCanvas is not available in this environment. ' +
@@ -275,7 +275,7 @@ const browserImageDataToBlobConverter = (pdfImageData) => {
275
275
  const imageData = new ImageData(pdfImageData.data, pdfImageData.width, pdfImageData.height);
276
276
  const off = new OffscreenCanvas(imageData.width, imageData.height);
277
277
  off.getContext('2d').putImageData(imageData, 0, 0);
278
- return off.convertToBlob({ type: 'image/webp' });
278
+ return off.convertToBlob({ type: imageType });
279
279
  };
280
280
  /**
281
281
  * Pdf engine that based on pdfium wasm
@@ -781,7 +781,7 @@ class PdfiumEngine {
781
781
  *
782
782
  * @public
783
783
  */
784
- renderPage(doc, page, scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1, options = { withAnnotations: false }) {
784
+ renderPage(doc, page, scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1, options = { withAnnotations: false }, imageType = 'image/webp') {
785
785
  const task = new Task();
786
786
  this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, scaleFactor, rotation, dpr, options);
787
787
  this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `RenderPage`, 'Begin', `${doc.id}-${page.index}`);
@@ -798,7 +798,7 @@ class PdfiumEngine {
798
798
  size: page.size,
799
799
  }, scaleFactor, rotation, dpr, options);
800
800
  this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `RenderPage`, 'End', `${doc.id}-${page.index}`);
801
- this.imageDataConverter(imageData).then((blob) => task.resolve(blob));
801
+ this.imageDataConverter(imageData, imageType).then((blob) => task.resolve(blob));
802
802
  return task;
803
803
  }
804
804
  /**
@@ -806,7 +806,7 @@ class PdfiumEngine {
806
806
  *
807
807
  * @public
808
808
  */
809
- renderPageRect(doc, page, scaleFactor, rotation, dpr, rect, options) {
809
+ renderPageRect(doc, page, scaleFactor, rotation, dpr, rect, options, imageType = 'image/webp') {
810
810
  const task = new Task();
811
811
  this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, scaleFactor, rotation, dpr, rect, options);
812
812
  this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `RenderPageRect`, 'Begin', `${doc.id}-${page.index}`);
@@ -820,7 +820,7 @@ class PdfiumEngine {
820
820
  }
821
821
  const imageData = this.renderPageRectToImageData(ctx, page, rect, scaleFactor, rotation, dpr, options);
822
822
  this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `RenderPageRect`, 'End', `${doc.id}-${page.index}`);
823
- this.imageDataConverter(imageData).then((blob) => task.resolve(blob));
823
+ this.imageDataConverter(imageData, imageType).then((blob) => task.resolve(blob));
824
824
  return task;
825
825
  }
826
826
  /**