【问题标题】:A 30 page tcpdf pdf document won't open in Fancybox 2 using Chrome/IE使用 Chrome/IE 无法在 Fancybox 2 中打开 30 页 tcpdf pdf 文档
【发布时间】:2013-06-15 10:14:45
【问题描述】:

我正在尝试在 Fancybox 2 中打开一个 30 页的 PDF 文档,该 PDF 文档是使用 TCPDF 生成的,然后需要显示在屏幕上以便用户可以打印或保存它。当脚本完成时,fancybox 加载图形显示永恒并且没有 iframe 打开。它在 Firefox 中有效,但在 Chrome 或 IE 中无效。

如果我将打开的页数减少到 23,我还尝试先创建 pdf 并保存到服务器,然后使用下面的 javascript 打开它。

delivery_pdf.php 是创建 TCPDF 的脚本,然后将其保存为 delivery2.pdf

$.get('delivery_pdf.php',
{
    type:0,
    this_id:new_tick,
    delivery_run_date:dd
},function(data)
{
    $.fancybox.open(
    {
        type: 'iframe',
        href: 'delivery2.pdf'
    });
    $("#loader").hide();

});

通过将链接直接放在浏览器栏中打开文件,已创建 PDF。

提前谢谢你。

【问题讨论】:

    标签: php jquery fancybox tcpdf fancybox-2


    【解决方案1】:

    据报道 Chrome 和 IE 会出现这种行为,最快的解决方法是禁用 fancybox 的 iframe preload 所以试试吧:

    $.get('delivery_pdf.php', {
        type: 0,
        this_id: new_tick,
        delivery_run_date: dd
    }, function (data) {
        $.fancybox.open({
            type: 'iframe',
            href: 'delivery2.pdf',
            iframe: {
                preload: false
            }
        });
        $("#loader").hide();
    });
    

    您还可以在https://github.com/fancyapps/fancyBox/issues/579 处查看报告的问题和解决方法以供进一步参考。

    【讨论】:

    • 谢谢你,这解决了fancybox问题!现在看来,TCPDF 存在多页问题,因为当我尝试创建超过 28 页时它只返回一页??
    • @Sherwood : 在fancybox 中渲染时,delivery2.pdf 可能还没有完全完成。您可能需要检查您的 get 函数(使用 ajax 并渲染文档直到 successdata 是否实际上返回 PDF?所以您可以这样做 $.fancybox(data,{//options})
    • pdf 是根据用户选择的交货单的数量创建的,如果我选择 28 它呈现良好,对于 29 或 30 它就放弃了! TCPDF 返回的页面有一个带有预先设计的页眉和页脚的空白正文,如果我在没有 TCPDF 转换的情况下运行 php 脚本,则 HTML 创建很好,没有任何错误,我知道这可以停止 TCPDF 呈现页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多