@syncfusion/ej2-pdfviewer 17.3.49-4568 → 17.3.50-4568

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.
@@ -17807,9 +17807,6 @@ class PdfViewerBase {
17807
17807
  */
17808
17808
  // eslint-disable-next-line
17809
17809
  this.zoomInterval = 5;
17810
- /**
17811
- * @private
17812
- */
17813
17810
  /**
17814
17811
  * EJ2CORE-813 - This flag is represent current device is 'iPad' or 'iPhone' or'iPod' device.
17815
17812
  * @private
@@ -17827,6 +17824,8 @@ class PdfViewerBase {
17827
17824
  // tslint:disable-next-line
17828
17825
  this.previousContainerHeight = 0;
17829
17826
  this.isGotoPageEnabled = false;
17827
+ this.taggedTextHandler = null;
17828
+ this.taggedCollection = [];
17830
17829
  this.clearSessionStorage = () => {
17831
17830
  let documentId = window.sessionStorage.getItem('hashId');
17832
17831
  let documentLiveCount = window.sessionStorage.getItem('documentLiveCount');
@@ -18931,6 +18930,7 @@ class PdfViewerBase {
18931
18930
  this.pdfViewer = viewer;
18932
18931
  this.navigationPane = new NavigationPane(this.pdfViewer, this);
18933
18932
  this.textLayer = new TextLayer(this.pdfViewer, this);
18933
+ this.taggedPdf = new TaggedPDF(this.pdfViewer, this);
18934
18934
  this.signatureModule = new Signature(this.pdfViewer, this);
18935
18935
  // tslint:disable-next-line:max-line-length
18936
18936
  this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);
@@ -19756,6 +19756,9 @@ class PdfViewerBase {
19756
19756
  if (this.renderedPagesList) {
19757
19757
  this.renderedPagesList = [];
19758
19758
  }
19759
+ if (this.taggedCollection) {
19760
+ this.taggedCollection = [];
19761
+ }
19759
19762
  if (this.pageContainer) {
19760
19763
  while (this.pageContainer.hasChildNodes()) {
19761
19764
  this.pageContainer.removeChild(this.pageContainer.lastChild);
@@ -20990,6 +20993,14 @@ class PdfViewerBase {
20990
20993
  if (this.pdfViewer.textSelectionModule && !this.isTextSelectionDisabled) {
20991
20994
  this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(pageIndex);
20992
20995
  }
20996
+ if (this.pdfViewer.taggedPDFModule && this.pdfViewer.enableTaggedPDF) {
20997
+ if (this.taggedCollection[pageIndex.toString()]) {
20998
+ this.renderTaggedTextContentsFromServer(pageIndex, this.taggedCollection[pageIndex.toString()]);
20999
+ }
21000
+ else {
21001
+ this.createRequestForTaggedText(pageIndex);
21002
+ }
21003
+ }
20993
21004
  if (this.documentAnnotationCollections) {
20994
21005
  let isAnnotationAdded = false;
20995
21006
  for (let i = 0; i < this.annotationRenderredList.length; i++) {
@@ -21184,6 +21195,33 @@ class PdfViewerBase {
21184
21195
  }
21185
21196
  }
21186
21197
  }
21198
+ renderTaggedTextContentsFromServer(pageIndex, taggedTextResponse) {
21199
+ this.taggedPdf.renderTaggedTextContentsFromServer(pageIndex, taggedTextResponse);
21200
+ }
21201
+ createRequestForTaggedText(pageIndex) {
21202
+ let jsonObject;
21203
+ let proxy = this;
21204
+ jsonObject = { action: 'RenderTaggedContent', elementId: this.pdfViewer.element.id, hashId: this.hashId, uniqueId: this.documentId, pageIndex: pageIndex };
21205
+ if (this.jsonDocumentId) {
21206
+ jsonObject.documentId = this.jsonDocumentId;
21207
+ }
21208
+ var url = this.pdfViewer.serviceUrl + '/' + "RenderTaggedContent";
21209
+ this.taggedTextHandler = new AjaxHandler(this.pdfViewer);
21210
+ this.taggedTextHandler.url = url;
21211
+ this.taggedTextHandler.mode = true;
21212
+ this.taggedTextHandler.responseType = 'text';
21213
+ this.taggedTextHandler.send(jsonObject);
21214
+ this.taggedTextHandler.onSuccess = function (result) {
21215
+ var data = JSON.parse(result.data);
21216
+ let pageData = data.filter((item) => (item.PageNumber).toString() === pageIndex.toString());
21217
+ proxy.taggedCollection[pageIndex.toString()] = pageData;
21218
+ proxy.renderTaggedTextContentsFromServer(pageIndex, pageData);
21219
+ };
21220
+ this.taggedTextHandler.onFailure = function (result) {
21221
+ console.log("error");
21222
+ };
21223
+ }
21224
+ ;
21187
21225
  renderPageContainer(pageNumber, pageWidth, pageHeight, topValue) {
21188
21226
  // tslint:disable-next-line:max-line-length
21189
21227
  let pageDiv = createElement('div', { id: this.pdfViewer.element.id + '_pageDiv_' + pageNumber, className: 'e-pv-page-div', attrs: { 'tabindex': '0' } });
@@ -24475,6 +24513,9 @@ class TextLayer {
24475
24513
  textLayer = createElement('div', { id: this.pdfViewer.element.id + '_textLayer_' + pageNumber, className: 'e-pv-text-layer' });
24476
24514
  textLayer.style.width = pageWidth + 'px';
24477
24515
  textLayer.style.height = pageHeight + 'px';
24516
+ if (this.pdfViewer.taggedPDFModule && this.pdfViewer.enableTaggedPDF) {
24517
+ textLayer.setAttribute('aria-hidden', 'true');
24518
+ }
24478
24519
  pageDiv.appendChild(textLayer);
24479
24520
  }
24480
24521
  this.pdfViewerBase.applyElementStyles(textLayer, pageNumber);
@@ -27224,6 +27265,7 @@ class Magnification {
27224
27265
  }
27225
27266
  this.calculateScrollValues(scrollValue);
27226
27267
  this.isTapToFitZoom = !this.isTapToFitZoom;
27268
+ setTimeout(() => { this.isMagnified = false; }, 500);
27227
27269
  this.isDoubleTapZoom = false;
27228
27270
  }
27229
27271
  }
@@ -35676,6 +35718,16 @@ let PdfViewer = class PdfViewer extends Component {
35676
35718
  get textSearch() {
35677
35719
  return this.textSearchModule;
35678
35720
  }
35721
+ /**
35722
+ * Gets the tagged layer object of the pdf viewer.
35723
+ *
35724
+ * @asptype TaggedPDF
35725
+ * @blazorType TaggedPDF
35726
+ * @returns { TaggedPDF }
35727
+ */
35728
+ get taggedPdf() {
35729
+ return this.taggedPDFModule;
35730
+ }
35679
35731
  /**
35680
35732
  * Gets the toolbar object of the pdf viewer.
35681
35733
  * @asptype Toolbar
@@ -35892,6 +35944,11 @@ let PdfViewer = class PdfViewer extends Component {
35892
35944
  member: 'FormFields', args: [this, this.viewerBase]
35893
35945
  });
35894
35946
  }
35947
+ if (this.enableTaggedPDF) {
35948
+ modules.push({
35949
+ member: 'TaggedPDF', args: [this, this.viewerBase]
35950
+ });
35951
+ }
35895
35952
  return modules;
35896
35953
  }
35897
35954
  /**
@@ -36749,6 +36806,9 @@ __decorate$2([
36749
36806
  __decorate$2([
36750
36807
  Property(false)
36751
36808
  ], PdfViewer.prototype, "isExtractText", void 0);
36809
+ __decorate$2([
36810
+ Property(true)
36811
+ ], PdfViewer.prototype, "enableTaggedPDF", void 0);
36752
36812
  __decorate$2([
36753
36813
  Property({ showTooltip: true, toolbarItems: ['OpenOption', 'UndoRedoTool', 'PageNavigationTool', 'MagnificationTool', 'PanTool', 'SelectionTool', 'CommentTool', 'AnnotationEditTool', 'FreeTextAnnotationOption', 'InkAnnotationOption', 'ShapeAnnotationOption', 'StampAnnotation', 'SignatureOption', 'SearchOption', 'PrintOption', 'DownloadOption'] })
36754
36814
  ], PdfViewer.prototype, "toolbarSettings", void 0);
@@ -41592,6 +41652,202 @@ class FormFields {
41592
41652
  }
41593
41653
  }
41594
41654
 
41655
+ /**
41656
+ * export types
41657
+ */
41658
+
41659
+ /**
41660
+ * Tagged PDF module is used to handle tagged pdf document
41661
+ *
41662
+ * @hidden
41663
+ */
41664
+ class TaggedPDF {
41665
+ /**
41666
+ * @param {PdfViewer} pdfViewer - The PdfViewer.
41667
+ * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.
41668
+ * @private
41669
+ */
41670
+ constructor(pdfViewer, pdfViewerBase) {
41671
+ this.createTag = function (taggedTextResponse) {
41672
+ let tagType = taggedTextResponse.TagType;
41673
+ let parentTagType = taggedTextResponse.ParentTagType;
41674
+ let text = taggedTextResponse.Text;
41675
+ let altText = taggedTextResponse.AltText;
41676
+ let bounds = taggedTextResponse.Bounds;
41677
+ let childTags = taggedTextResponse.ChildElements;
41678
+ let textTag = document.createElement(this.getTag(tagType));
41679
+ textTag.style = "padding:0px;margin:0px";
41680
+ if (parentTagType != "Document" && parentTagType != "Part") {
41681
+ textTag.style.position = 'absolute';
41682
+ }
41683
+ if (bounds) {
41684
+ this.setStyleToTaggedTextDiv(textTag, bounds);
41685
+ this.setTextElementProperties(textTag);
41686
+ }
41687
+ if (text.trim() != "") {
41688
+ textTag.innerText = text;
41689
+ }
41690
+ if (altText && altText.trim() !== "" && (tagType === "Image" || tagType === "Figure")) {
41691
+ textTag.alt = altText;
41692
+ textTag.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII=";
41693
+ }
41694
+ if (childTags && childTags.length > 0) {
41695
+ childTags.forEach((element) => {
41696
+ if (tagType === "Table") {
41697
+ element.ChildElements.forEach((newelement) => {
41698
+ textTag.appendChild(this.createTag(newelement));
41699
+ });
41700
+ }
41701
+ else {
41702
+ textTag.appendChild(this.createTag(element));
41703
+ }
41704
+ });
41705
+ }
41706
+ return textTag;
41707
+ };
41708
+ this.pdfViewer = pdfViewer;
41709
+ this.pdfViewerBase = pdfViewerBase;
41710
+ }
41711
+ addTaggedLayer(pageIndex) {
41712
+ let taggedLayer;
41713
+ if (this.pdfViewer.enableTaggedPDF) {
41714
+ let pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);
41715
+ taggedLayer = document.getElementById(this.pdfViewer.element.id + '_taggedLayer_' + pageIndex);
41716
+ if (!taggedLayer) {
41717
+ taggedLayer = createElement('div', { id: this.pdfViewer.element.id + '_taggedLayer_' + pageIndex, className: 'e-pv-tagged-layer e-pv-text-layer' });
41718
+ }
41719
+ taggedLayer.innerHTML = "";
41720
+ taggedLayer.style.width = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].width * this.pdfViewerBase.getZoomFactor() + 'px';
41721
+ taggedLayer.style.height = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].height * this.pdfViewerBase.getZoomFactor() + 'px';
41722
+ taggedLayer.style.pointerEvents = "none";
41723
+ if (pageDiv) {
41724
+ pageDiv.appendChild(taggedLayer);
41725
+ }
41726
+ }
41727
+ return taggedLayer;
41728
+ }
41729
+ renderTaggedTextContentsFromServer(pageIndex, taggedTextResponse) {
41730
+ let taggedLayer = this.addTaggedLayer(pageIndex);
41731
+ for (let i = 0; i < taggedTextResponse.length; i++) {
41732
+ var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_taggedText_' + pageIndex + '_' + i, className: 'e-pv-text', attrs: { 'tabindex': '-1' } });
41733
+ let bounds = taggedTextResponse[i].Bounds;
41734
+ if (taggedTextResponse[i].TagType === "Paragraph" && taggedTextResponse[i].ChildElements === null && taggedTextResponse[i].Text.trim() === "") {
41735
+ continue;
41736
+ }
41737
+ else {
41738
+ textDiv.appendChild(this.createTag(taggedTextResponse[i]));
41739
+ }
41740
+ textDiv.style.display = "inline";
41741
+ this.setStyleToTaggedTextDiv(textDiv, bounds);
41742
+ this.setTextElementProperties(textDiv);
41743
+ taggedLayer.appendChild(textDiv);
41744
+ }
41745
+ }
41746
+ getTag(tagType) {
41747
+ switch (tagType) {
41748
+ case "Paragraph":
41749
+ return "p";
41750
+ case "Figure":
41751
+ return "img";
41752
+ case "Article":
41753
+ return "art";
41754
+ case "Annotation":
41755
+ return "annot";
41756
+ case "BibliographyEntry":
41757
+ return "bibentry";
41758
+ case "BlockQuotation":
41759
+ return "blockQuote";
41760
+ case "Caption":
41761
+ return "caption";
41762
+ case "Code":
41763
+ return "code";
41764
+ case "Division":
41765
+ return "div";
41766
+ case "Document":
41767
+ return "document";
41768
+ case "Form":
41769
+ return "form";
41770
+ case "Formula":
41771
+ return "formula";
41772
+ case "Index":
41773
+ return "index";
41774
+ case "Heading":
41775
+ return "h";
41776
+ case "HeadingLevel1":
41777
+ return "h1";
41778
+ case "HeadingLevel2":
41779
+ return "h2";
41780
+ case "HeadingLevel3":
41781
+ return "h3";
41782
+ case "HeadingLevel4":
41783
+ return "h4";
41784
+ case "HeadingLevel5":
41785
+ return "h5";
41786
+ case "HeadingLevel6":
41787
+ return "h6";
41788
+ case "Label":
41789
+ return "label";
41790
+ case "Link":
41791
+ return "a";
41792
+ case "List":
41793
+ return "ul";
41794
+ case "ListItem":
41795
+ return "li";
41796
+ case "ListBody":
41797
+ return "p";
41798
+ case "Note":
41799
+ return "note";
41800
+ case "Part":
41801
+ return "part";
41802
+ case "Quotation":
41803
+ return "quote";
41804
+ case "Reference":
41805
+ return "reference";
41806
+ case "Section":
41807
+ return "sect";
41808
+ case "Span":
41809
+ return "span";
41810
+ case "Table":
41811
+ return "table";
41812
+ case "TableDataCell":
41813
+ return "td";
41814
+ case "TableHeader":
41815
+ return "th";
41816
+ case "TableOfContent":
41817
+ return "toc";
41818
+ case "TableOfContentItem":
41819
+ return "toci";
41820
+ case "TableRow":
41821
+ return "tr";
41822
+ case "Image":
41823
+ return "img";
41824
+ default:
41825
+ return "p";
41826
+ }
41827
+ }
41828
+ ;
41829
+ setStyleToTaggedTextDiv(textDiv, bounds) {
41830
+ textDiv.style.left = bounds.X * (96 / 72) * this.pdfViewerBase.getZoomFactor() + 'px';
41831
+ textDiv.style.top = bounds.Y * (96 / 72) * this.pdfViewerBase.getZoomFactor() + 'px';
41832
+ textDiv.style.width = bounds.Width * (96 / 72) * this.pdfViewerBase.getZoomFactor() + 'px';
41833
+ var textHeight = bounds.Height * (96 / 72) * this.pdfViewerBase.getZoomFactor();
41834
+ textDiv.style.height = textHeight + 'px';
41835
+ textDiv.style.fontSize = 16 * this.pdfViewerBase.getZoomFactor() + 'px';
41836
+ textDiv.style.color = 'transparent';
41837
+ }
41838
+ ;
41839
+ setTextElementProperties(textDiv) {
41840
+ textDiv.style.fontFamily = 'serif';
41841
+ textDiv.style.transformOrigin = '0%';
41842
+ }
41843
+ /**
41844
+ * @private
41845
+ */
41846
+ getModuleName() {
41847
+ return 'TaggedPDF';
41848
+ }
41849
+ }
41850
+
41595
41851
  /**
41596
41852
  * export types
41597
41853
  */
@@ -41608,5 +41864,5 @@ class FormFields {
41608
41864
  * export PDF viewer modules
41609
41865
  */
41610
41866
 
41611
- export { Annotation, LinkAnnotation, TextMarkupAnnotation, MeasureAnnotation, ShapeAnnotation, StampAnnotation, StickyNotesAnnotation, FreeTextAnnotation, InputElement, NavigationPane, PdfViewerBase, TextLayer, ContextMenu$1 as ContextMenu, FontStyle, AnnotationResizerLocation, CursorType, AjaxHandler, Signature, Magnification, Navigation, ThumbnailView, Toolbar$1 as Toolbar, AnnotationToolbar, ToolbarSettings, AjaxRequestSettings, CustomStampItem, AnnotationToolbarSettings, ServerActionSettings, StrikethroughSettings, UnderlineSettings, HighlightSettings, LineSettings, ArrowSettings, RectangleSettings, CircleSettings, ShapeLabelSettings, PolygonSettings, StampSettings, CustomStampSettings, DistanceSettings, PerimeterSettings, AreaSettings, RadiusSettings, VolumeSettings, StickyNotesSettings, MeasurementSettings, FreeTextSettings, AnnotationSelectorSettings, TextSearchColorSettings, HandWrittenSignatureSettings, AnnotationSettings, DocumentTextCollectionSettings, TextDataSettings, RectangleBounds, TileRenderingSettings, ScrollSettings, PdfViewer, BookmarkView, TextSelection, TextSearch, Print, FormFields, Drawing, findActiveElement, findObjectsUnderMouse, findObjectUnderMouse, CalculateLeaderPoints, findElementUnderMouse, insertObject, findTargetShapeElement, findObjects, findActivePage, ActiveElements, getConnectorPoints, getSegmentPath, updateSegmentElement, getSegmentElement, updateDecoratorElement, getDecoratorElement, clipDecorators, clipDecorator, initDistanceLabel, updateDistanceLabel, updateRadiusLabel, initPerimeterLabel, updatePerimeterLabel, removePerimeterLabel, updateCalibrateLabel, getPolygonPath, textElement, initLeaders, initLeader, isPointOverConnector, findNearestPoint, getDecoratorShape, renderAdornerLayer, createSvg, isLineShapes, setElementStype, findPointsLength, findPerimeterLength, getBaseShapeAttributes, getFunction, cloneObject, cloneArray, getInternalProperties, isLeader, PdfBounds, PdfFont, PdfAnnotationBase, ZOrderPageTable, Selector, ToolBase, SelectTool, MoveTool, StampTool, ConnectTool, ResizeTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool };
41867
+ export { Annotation, LinkAnnotation, TextMarkupAnnotation, MeasureAnnotation, ShapeAnnotation, StampAnnotation, StickyNotesAnnotation, FreeTextAnnotation, InputElement, NavigationPane, PdfViewerBase, TextLayer, ContextMenu$1 as ContextMenu, FontStyle, AnnotationResizerLocation, CursorType, AjaxHandler, Signature, Magnification, Navigation, ThumbnailView, Toolbar$1 as Toolbar, AnnotationToolbar, ToolbarSettings, AjaxRequestSettings, CustomStampItem, AnnotationToolbarSettings, ServerActionSettings, StrikethroughSettings, UnderlineSettings, HighlightSettings, LineSettings, ArrowSettings, RectangleSettings, CircleSettings, ShapeLabelSettings, PolygonSettings, StampSettings, CustomStampSettings, DistanceSettings, PerimeterSettings, AreaSettings, RadiusSettings, VolumeSettings, StickyNotesSettings, MeasurementSettings, FreeTextSettings, AnnotationSelectorSettings, TextSearchColorSettings, HandWrittenSignatureSettings, AnnotationSettings, DocumentTextCollectionSettings, TextDataSettings, RectangleBounds, TileRenderingSettings, ScrollSettings, PdfViewer, BookmarkView, TextSelection, TextSearch, Print, FormFields, TaggedPDF, Drawing, findActiveElement, findObjectsUnderMouse, findObjectUnderMouse, CalculateLeaderPoints, findElementUnderMouse, insertObject, findTargetShapeElement, findObjects, findActivePage, ActiveElements, getConnectorPoints, getSegmentPath, updateSegmentElement, getSegmentElement, updateDecoratorElement, getDecoratorElement, clipDecorators, clipDecorator, initDistanceLabel, updateDistanceLabel, updateRadiusLabel, initPerimeterLabel, updatePerimeterLabel, removePerimeterLabel, updateCalibrateLabel, getPolygonPath, textElement, initLeaders, initLeader, isPointOverConnector, findNearestPoint, getDecoratorShape, renderAdornerLayer, createSvg, isLineShapes, setElementStype, findPointsLength, findPerimeterLength, getBaseShapeAttributes, getFunction, cloneObject, cloneArray, getInternalProperties, isLeader, PdfBounds, PdfFont, PdfAnnotationBase, ZOrderPageTable, Selector, ToolBase, SelectTool, MoveTool, StampTool, ConnectTool, ResizeTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool };
41612
41868
  //# sourceMappingURL=ej2-pdfviewer.es2015.js.map