【问题标题】:How to add javascript import in cfcontent using cfpdf as source如何使用 cfpdf 作为源在 cfcontent 中添加 javascript 导入
【发布时间】:2019-07-12 18:35:00
【问题描述】:

我曾经通过 url 打开我的 pdf 并让浏览器处理 pdf 呈现,但自从上次更新到 android 和 ios 后,这种方式不再适用于移动设备。

我决定使用 coldfusion 本身来处理这个问题,使用 cfpdf 函数并使用 cfcontent 将二进制文件外部化,效果很好,但是我在页面上有一个 google analytics 代码,并且 cfcontent 呈现整个页面,所以我丢失了我的分析代码的引用。

我暂时通过 iframe 调用我的 cfpdf 生成的此内容的解决方案,但是当通过 base64 使用 iframe 时,某些 pdf 的 base64 没有加载,已经作为一个普通的 url 使用了,我回到了无法在移动设备上工作的最初问题。

基本上我需要将我的分析标签插入到我的cfcontent的生成html中,但我无法手动操作源,因为内容来自cfpdf

<cfhtmlhead text='
    <script async src="https://www.googletagmanager.com/gtag/js?id=#Key#"></script>
    <script> 
        window.dataLayer = window.dataLayer || []; 
        function gtag(){dataLayer.push(arguments);} 
        gtag("js", new Date());     
        gtag("config", "#Key#"); 
    </script>'>
<cfpdf action="read" name="RawFile" source="#RawUrl#" />
<cfcontent variable="#toBinary(RawFile)#" type="application/pdf" />

【问题讨论】:

    标签: coldfusion base64 coldfusion-11 cfpdf


    【解决方案1】:

    您的cfcontent 输出二进制数据并告诉浏览器将其视为application/pdf(通过Content-Type HTTP 标头)。您不能向其中添加 HTML 或 JavaScript,因为它会破坏 PDF 文档。我在这里看到两个选项:

    1 使用中间页面

    open_pdf.cfm

    <cfoutput>
    
        <h1>Please wait while we prepare the PDF document for you...</h1>
    
        <script async src="https://www.googletagmanager.com/gtag/js?id=#Key#"></script>
        <script>
    
            window.dataLayer = window.dataLayer || []; 
            function gtag(){dataLayer.push(arguments);} 
            gtag("js", new Date());     
            gtag("config", "#Key#");
    
            var secondsToWait = 4;
            setTimeout(function() { window.location.href = 'render_pdf.cfm'; }, secondsToWait * 1000);
    
        </script>
    
    </cfoutput>
    

    render_pdf.cfm

    <cfpdf action="read" name="RawFile" source="#RawUrl#" />
    <cfcontent variable="#toBinary(RawFile)#" type="application/pdf" />
    

    您的访问者点击open_pdf.cfm,阅读有关如何在 Google Analytics 跟踪的同时为他们“准备”PDF 文档的消息。 4 秒后(调整到您认为足以跟踪的任何内容),它们将被重定向到实际的 PDF 文档。

    2 将 Google Analytics 嵌入到您的 PDF 中

    您可以run JavaScript code in a PDF document。请注意,由于 PDF 查看器的安全限制,这可能有点棘手。即便如此,我还是强烈建议您不要使用此选项,因为它可能会导致比正确的 GA 展示次数更多的问题。

    【讨论】:

    • 我尝试了第一种方法,但使用 iframe,工作了一点,但不完全,我打算尝试重定向,但我猜客户不会喜欢它,但让我试一试
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多