首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用WordPress插件中的FPDF库生成的空Pdf文件

用WordPress插件中的FPDF库生成的空Pdf文件
EN

WordPress Development用户
提问于 2022-05-12 08:50:32
回答 1查看 570关注 0票数 0

我目前正在开发的wordpress插件中实现一个pdf导出功能,但是当我点击导出按钮时生成的pdf文件是空的。要实现导出,我使用FPDF库

我将使用FPDF的代码放在由wp_ajax_动作钩子执行的函数中。以下是代码:

代码语言:javascript
复制
SetFont('arial','b',14);
  $pdf->AddPage();
  $pdf->Cell(40,10,'Referrer URL',1,0,'C');
  $pdf->Cell(40,10,'User IP Address',1,0,'C');
  $pdf->Cell(40,10,'User Agent',1,0,'C');
  $pdf->Cell(40,10,'Browser',1,0,'C');
  $pdf->Cell(40,10,'OS',1,0,'C');
  $pdf->Output();

  wp_die();

}

add_action('wp_ajax_pdf_pull','pdf_pull_wpse_212972'); 

以下是当我单击导出按钮时执行的jQuery代码

代码语言:javascript
复制
jQuery(document).ready(function($) {

  
  jQuery('#pdf-export-btn').click(function(){

    var data = {
      'action': 'pdf_pull',
    };
    
    jQuery.post(tclisecure.ajax_url, data, function(response) {


        var downloadLink = document.createElement("a");
        var fileData = [response];

        var blobObject = new Blob(fileData,{
            type: "application/pdf"
          });

        var url = URL.createObjectURL(blobObject);
        downloadLink.href = url;
        downloadLink.download = "tracked_info.pdf";

        /*
        * Actually download PDF
        */
        document.body.appendChild(downloadLink);
        downloadLink.click();
        document.body.removeChild(downloadLink);
      
    });

  });


});
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2022-05-12 14:20:14

这可能解决不了问题,但您目前所做的事情看起来不必要地复杂(ajax请求、假链接、通过链接单击等方式提供PDF )。

为什么不只是一个按钮的链接..。

代码语言:javascript
复制
Download

然后,...and直接从服务器下载PDF (使用WP的一般POST/GET处理程序admin-post.php):

代码语言:javascript
复制
function wpse_212972_pdf() {
    $pdf = new FPDF('p','mm','a4');
    $pdf->SetFont('arial','b',14);
    $pdf->AddPage();
    $pdf->Cell(40,10,'Referrer URL',1,0,'C');
    $pdf->Cell(40,10,'User IP Address',1,0,'C');
    $pdf->Cell(40,10,'User Agent',1,0,'C');
    $pdf->Cell(40,10,'Browser',1,0,'C');
    $pdf->Cell(40,10,'OS',1,0,'C');

    // http://www.fpdf.org/en/doc/output.htm
    $pdf->Output( 'D', 'tracked_info.pdf' );
    exit;
}

add_action( 'admin_post_wpse_212972_pdf', 'wpse_212972_pdf' );

// Non-logged-in users (remove if not required)
add_action( 'admin_post_nopriv_wpse_212972_pdf', 'wpse_212972_pdf' );
票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/405655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档