Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AcrobatJavaScript:将UTM参数从URL传递到PDF按钮_Javascript_Pdf_Acrobat - Fatal编程技术网

AcrobatJavaScript:将UTM参数从URL传递到PDF按钮

AcrobatJavaScript:将UTM参数从URL传递到PDF按钮,javascript,pdf,acrobat,Javascript,Pdf,Acrobat,我有一个PDF,它有一个带有字段名的按钮ctaButton CTA按钮当前有一个指向https://mywebsite.com 我想在https://mywebsite.com/hosted.pdf 当我向某人发送PDF的链接时,我想附加一个UTM\u term参数?UTM\u term=customer1,然后让PDF读取此参数并将按钮更新为https://mywebsite.com/?utm_term=customer1 为了实现这一点,我花了几个小时在Acrobat中处理Javascrip

我有一个PDF,它有一个带有字段名的按钮
ctaButton

CTA按钮当前有一个指向
https://mywebsite.com

我想在
https://mywebsite.com/hosted.pdf

当我向某人发送PDF的链接时,我想附加一个
UTM\u term
参数
?UTM\u term=customer1
,然后让PDF读取此参数并将
按钮更新为
https://mywebsite.com/?utm_term=customer1


为了实现这一点,我花了几个小时在Acrobat中处理Javascript操作。非常感谢您的帮助。

您可以使用

var myURL = this.url;

Acrobat JavaScript中的“this”是文档上下文。

您可以使用

var myURL = this.url;

Acrobat JavaScript中的“this”就是文档上下文。

我做了几个小时的研究,得出了这个结论——Acrobat中的JavaScript就像是在1985年尝试编写代码,浏览器不会执行您所编写的任何代码

所以我使用了这个变通方法:

  • 当我将PDF发送给某人时,我会将其作为带有
    base64
    编码的字符串化JSON包,包含一组跟踪 数据,但重要的是,要访问的文件名以及utm 特定于收件人的参数
  • 该链接会命中提取编码的数据的服务器处理程序(NodeJS) JSON包,并使用包中的数据提供HTML 重定向指向右侧PDF文件的页面
  • 重要的是,HTML页面还将JSON包保存到 浏览器的
    localStorage
    。这在以后的工作中很方便 台阶
  • PDF文件在浏览器中打开(不必,可以在 桌面)和调用操作链接有一个指向get请求的链接 处理者
  • get请求处理程序提供另一个重定向页面
  • 第二个重定向页面访问浏览器的本地存储,如下所示 对于我为该用户设置的utm参数,然后重定向到 销售页面,附有漂亮的utm参数
总而言之,您不需要将utm参数添加到PDF中的call to action链接中(因为这会让这个世界变得太容易生活),而是在过程中通过链接点击中附加utm参数(通过保存在
localStorage
中的JSON字符串)(即,当用户通过链接打开电子邮件提取文件时,以及当用户单击PDF中的“行动呼吁”时)

如有任何问题或澄清,请在评论中告知我,我将尽力解决

注意事项

  • 仅当用户在所有步骤中使用相同的浏览器时才有效(即,如果Susan在Safari中打开电子邮件,保存PDF,然后在PDF中单击操作调用,并且链接在Chrome中打开,则不会传递utm参数)
  • 假设浏览器是现代化的,并且具有
    localStorage

更新:我遇到了另一个解决方案。它有点复杂。下图

Porky.io是Adobe Indesign的Javascript扩展。因此流是:

  • 向Porky.io发送所需的客户数据(例如链接的utm)
  • Porky.io根据您提供的模板和您提供的客户数据生成PDF
  • 侦听从Porky保存的新文件
  • 对文件进行处理(例如,通过电子邮件发送给客户)
  • 我相信您需要在云中的某个位置(例如Azure上)运行Windows实例,才能使用Porky.io运行Indesign。除非您想依赖笔记本电脑


    我的项目还不够大,还不足以保证设置它……但如果我需要使当前的解决方案更加健壮,这是一个很好的选择。

    我做了几个小时的研究,得出了这个结论——Acrobat中的Javascript就像是在1985年尝试编写代码,浏览器不会执行您所编写的任何代码

    所以我使用了这个变通方法:

    • 当我将PDF发送给某人时,我会将其作为带有
      base64
      编码的字符串化JSON包,包含一组跟踪 数据,但重要的是,要访问的文件名以及utm 特定于收件人的参数
    • 该链接会命中提取编码的数据的服务器处理程序(NodeJS) JSON包,并使用包中的数据提供HTML 重定向指向右侧PDF文件的页面
    • 重要的是,HTML页面还将JSON包保存到 浏览器的
      localStorage
      …这在以后的应用中非常方便 台阶
    • PDF文件在浏览器中打开(不必,可以在 桌面)和调用操作链接有一个指向get请求的链接 处理者
    • get请求处理程序提供另一个重定向页面
    • 第二个重定向页面访问浏览器的本地存储,如下所示 对于我为该用户设置的utm参数,然后重定向到 销售页面,附有漂亮的utm参数
    总而言之,您不需要将utm参数添加到PDF中的call to action链接中(因为这会让这个世界变得太容易生活),而是在过程中通过链接点击中附加utm参数(通过保存在
    localStorage
    中的JSON字符串)(即,当用户通过链接打开电子邮件提取文件时,以及当用户单击PDF中的“行动呼吁”时)

    如有任何问题或澄清,请在评论中告知我,我将尽力解决

    注意事项

    • 仅当用户在所有步骤中使用相同的浏览器时才有效(即,如果Susan在Safari中打开电子邮件,保存PDF,然后在PDF中单击操作调用,并且链接在Chrome中打开,则不会传递utm参数)
    • 假设浏览器是现代化的,并且具有
      localStorage

    <