当前位置: 首页 > 知识库问答 >
问题:

拖放到pdf文件后获取元素位置(Angulal-Nodejs)

刁钧
2023-03-14

我使用angular ng2 pdf viewer和angular material cdkDrag来拖动元素。在我的后端,我使用hummusJS/hummusRecipe修改pdf文件。

我寻找一种方法来知道我把元素放在pdf文件的什么地方,然后向后端的coordinate发出请求,以知道元素需要放在pdf文件的什么地方。

这是我在nodejs上的函数:

const pdfEditor = async () => {
  const pdfDoc = new HummusRecipe("./pdf/demo.pdf", "./pdf/output.pdf");
  pdfDoc
    // edit 1st page
    .editPage(1)
    .text("Add some texts to an existing pdf file", 150, 500, {
      color: "003240"
    })
    .image("./dest/signature.png", 100, 600, {
      width: 100,
      keepAspectRatio: true
    })
    .endPage()
    .endPDF();
}

我的客户Angular:

<div class="container">
<div class="otherContainer">
  <button (click)="getEditedPDF()" style="width: 100px;">Save image with signature</button>
  <pdf-viewer *ngIf="pdfSrc" [(page)]="pageVariable" [show-all]="true" [render-text]="true" [original-size]="false" [autoresize]="true" [src]="pdfSrc"> </pdf-viewer>
  <div class="signatureContainer">
    <signature-pad [options]="signaturePadOptions" (onBeginEvent)="drawStart()"></signature-pad>
    <div class="btn-grid">
      <button (click)="submitPad()">Submit</button>
      <button (click)="clearPad()">Clear Pad</button>
      <button (click)="openImage()">Open Image</button>
    </div>
  </div>
</div>
<div class="image">
  <img *ngIf="imageExpress" [src]="imageExpress | safeHtml" cdkDrag>
</div>
<pdf-viewer *ngIf="editedPDF" [(page)]="pageVariable" [show-all]="true" [render-text]="true" [original-size]="false" [autoresize]="true" [src]="editedPDF"> </pdf-viewer>
</div>

共有1个答案

孔彭祖
2023-03-14
import { Component, OnInit, Input } from '@angular/core';
import { CdkDragEnd, CdkDragStart, CdkDragMove, CdkDragDrop } from '@angular/cdk/drag-drop';
@Component({
  selector: 'app-pdf-drag-drop',
  templateUrl: './pdf-drag-drop.component.html',
  styleUrls: ['./pdf-drag-drop.component.scss']
})
export class PdfDragDropComponent implements OnInit {
  dragDroppables: any[];
  state = '';
  position = '';

  @Input() props: [{ [key: string]: object | any }];

  constructor() { }

  ngOnInit(): void {
    this.dragDroppables = this.props;
  }

  public dragStarted(event: CdkDragStart) {
    this.state = 'dragStarted';
  }

  public dragEnded(event: CdkDragEnd) {
    this.state = 'dragEnded';
    console.log(`State: ${this.state} ${this.position}`);
  }

  public dragMoved(event: CdkDragMove) {
    this.position = ` Position X: ${event.pointerPosition.x} - Y: ${event.pointerPosition.y}`;
  }

}

...并在模板中添加:

  cdkDrag
  (cdkDragStarted)="dragStarted($event)"
  (cdkDragEnded)="dragEnded($event)"
  (cdkDragMoved)="dragMoved($event)"

这对我有用。

 类似资料:
  • 我正在使用硒网络驱动程序,其中我正在尝试拖放表格的一列。但是一旦我拖放该列,我就得到一个错误“元素不再附加到DOM”。下面是我用于拖放元素的代码

  • 我有一个jquery函数,它允许一个元素可以拖动和调整大小,并且工作得很好。我想给它添加的是设置一个元素可以拖动和调整大小的位置。更具体地说,在我的代码中,我想让我的元素可以在两行(v1和vh)的空格之间拖动。有没有办法做到这一点?感谢任何帮助。提前道谢。 null null

  • 问题内容: 例如,如果我有一个元素: 这是跨多行的: 是否可以使用Javascript找出文本中特定字符的位置(以x,y坐标表示)?如果没有,我可以得到文本中每行的y位置吗? 请注意 :我的应用程序中的标记中有很多文本,因此在每个字符/单词周围添加太多的处理内容。 问题答案: 如果您知道字符在文本中的字符串位置,则可以将字符包装在具有ID的或类似元素中,并找到该元素的x,y坐标。要做到这一点最简单

  • 我正在使用cdk拖动 现在,这就是我所拥有的: 馅饼的家长 Pie.html 馅饼ts

  • 我试图使用Selenium的Action类将JQuery嵌套可排序列表中的源元素拖放到另一个元素。我使用了标准的dragAndDrop方法,并将其分解为clickAndHold、moveToElement和release,但这两种方法都不适用。我甚至尝试使用源元素内部的子元素来拖动,但结果是一样的。 当我运行脚本时,测试返回为已通过,因此我知道正在找到元素,并且选择器有效。Selenium认为拖放

  • 本文向大家介绍拖放元素后,JavaScript中哪个事件发生?,包括了拖放元素后,JavaScript中哪个事件发生?的使用技巧和注意事项,需要的朋友参考一下 该ondrop事件触发时,拖动的元素被丢弃的目标。您可以尝试运行以下代码以了解如何在JavaScript中实现ondrop事件- 示例