如何检测在PDF中使用javascript在何处标记图像

如何检测在PDF中使用javascript在何处标记图像,javascript,pdf,Javascript,Pdf,你好 我正在尝试实现一个小项目,允许我签署一个PDF文档,我已经实现了一个HTML5键盘来绘制签名,并将图像标记到PDF中。 我正在使用来自Github的签名板库: var canvas = document.querySelector("canvas"); var signaturePad = new SignaturePad(canvas); signaturePad.toDataURL(); // save image as PNG signaturePad.toDataURL("imag

你好

我正在尝试实现一个小项目,允许我签署一个PDF文档,我已经实现了一个HTML5键盘来绘制签名,并将图像标记到PDF中。 我正在使用来自Github的签名板库:

var canvas = document.querySelector("canvas");
var signaturePad = new SignaturePad(canvas);
signaturePad.toDataURL(); // save image as PNG
signaturePad.toDataURL("image/jpeg"); // save image as JPEG
signaturePad.fromDataURL("data:image/png;base64,iVBORw0K...");
signaturePad.clear();
signaturePad.isEmpty();
signaturePad.off();
signaturePad.on();
我最大的问题是,我如何知道用户必须在pdf中标记签名的位置,因为pdf不同,用户可以上传自己的pdf

谁能帮我介绍一下这方面的情况,我真的很感谢你的帮助


我做过类似的事情:

  • 将PDF上载到服务器

  • 使用GhostScript为每个页面生成图像

  • 使用pdftk在pdf上创建报告

  • 从报告中获取图像尺寸。请注意,某些pdf是旋转的,例如,如果报告中的旋转为270(270/90=奇数),则必须交换宽度和高度

  • 使用jquery允许在div上拖放签名位置,并将生成的图像页面作为内容。将图像设置为固定宽度,以便以后可以使用该数字计算位置

  • 计算签名位置相对于每页的绝对位置。重要的是获得每页的位置,而不是整个文档的位置。对于整个文档,高度不够精确,导致位置在多个页面上偏移

  • 使用wkhtmltopdf生成仅包含签名的pdf覆盖。使用精确的页面大小,单位为mm(从报告中检索),而不是预设的页面大小。如果绝对测量值以像素(点)为单位,则必须转换为毫米,反之亦然(0.352777..pixels/mm)

  • 生成pdf html时,您可以使用
    分页符after:always!重要的
    开始一个新页面,然后将签名绝对定位在div中

  • 使用pdftk将重叠pdf与原始pdf合并


我做过类似的事情:

  • 将PDF上载到服务器

  • 使用GhostScript为每个页面生成图像

  • 使用pdftk在pdf上创建报告

  • 从报告中获取图像尺寸。请注意,某些pdf是旋转的,例如,如果报告中的旋转为270(270/90=奇数),则必须交换宽度和高度

  • 使用jquery允许在div上拖放签名位置,并将生成的图像页面作为内容。将图像设置为固定宽度,以便以后可以使用该数字计算位置

  • 计算签名位置相对于每页的绝对位置。重要的是获得每页的位置,而不是整个文档的位置。对于整个文档,高度不够精确,导致位置在多个页面上偏移

  • 使用wkhtmltopdf生成仅包含签名的pdf覆盖。使用精确的页面大小,单位为mm(从报告中检索),而不是预设的页面大小。如果绝对测量值以像素(点)为单位,则必须转换为毫米,反之亦然(0.352777..pixels/mm)

  • 生成pdf html时,您可以使用
    分页符after:always!重要的
    开始一个新页面,然后将签名绝对定位在div中

  • 使用pdftk将重叠pdf与原始pdf合并


没有办法知道,除非pdf中嵌入了“签名在这里”的内容。除非你开始研究图像识别,否则没有实际的方法可以获取任意的pdf文件并最终判断“签名在这里”。我建议给用户一个UI,用户可以在pdf上移动签名,并在正确的位置点击OK。谢谢@MarcB,但有什么方法可以让用户在下载时在pdf中标记签名必须插入的位置?@Siguza谢谢你的建议,但这有一个问题,我以前考虑过,但我没有找到方法将图像拖到pdf中,有什么想法吗…?pdf是可扩展的,我知道pdflib有“块”您可以添加到表单以标记要填写内容的区域。你可以使用类似的东西,但这也需要用户干预,并让他们能够添加这些块-这不是你可以在服务器端做的事情,因为这样你就回到了“签名行在哪里?”没有办法知道,除非pdf中嵌入了说“签名在这里”的东西。除非你开始研究图像识别,否则没有实际的方法可以获取任意的pdf文件并最终判断“签名在这里”。我建议给用户一个UI,用户可以在pdf上移动签名,并在正确的位置点击OK。谢谢@MarcB,但有什么方法可以让用户在下载时在pdf中标记签名必须插入的位置?@Siguza谢谢你的建议,但这有一个问题,我以前考虑过,但我没有找到方法将图像拖到pdf中,有什么想法吗…?pdf是可扩展的,我知道pdflib有“块”您可以添加到表单以标记要填写内容的区域。您可以使用类似的方法,但这也需要用户干预,并让他们能够添加这些块-这不是您可以在服务器端执行的操作,因为这样您就可以回到“签名行在哪里?”这听起来是一个非常好的方法,非常感谢您的帮助,只是一个问题“ghost”是什么库?更新了内容,意味着GhostScript。如果您还有任何其他问题,请告诉我。非常感谢,我非常感谢您的帮助。这听起来是一个非常好的方法,非常感谢您的帮助,只是一个问题什么是“幽灵”库?更新了内容,意思是Ghos