反复 - 获取发票PDF(pdf from pdf string)

时间:2013-10-04 13:10:38

标签: php zend-framework pdf invoice recurly

我正在努力为我的客户收费。但是如何才能获得发票pdf?
到目前为止我所拥有的是一张包含发票的表格。我显示发票的状态,计划,开始日期,结束日期。然后我也有这样的链接:

  

/用户/ invoicepdf / invoicenr / 1502

该链接转到我的invoicepdfaction并发送invoicenr参数。

在我的invoicepdfaction中,我有这个:

public function invoicepdfAction() {
    header('Content-Type:', 'application/pdf');
    header('Content-Disposition:', 'inline;');

    $request = $this->getRequest();
    $invoice_number = $request->getParam('invoicenr');

    try {
        $pdf = Recurly_Invoice::getInvoicePdf($invoice_number, 'en-US');
        var_dump($pdf);
    } catch (Recurly_NotFoundError $e) {
        print "Invoice not found.\n";
    }
}

我的var_dump显示this

但是如何在浏览器中显示pdf? (或直接下载)

2 个答案:

答案 0 :(得分:7)

这通常对我有用:

$request = $this->getRequest();
$invoice_number = $request->getParam('invoicenr');

try {
    header('Content-type: application/pdf');
    header('Accept-Language: en-US');
    header('Content-Disposition: attachment; filename="downloaded.pdf"');

    $pdf = Recurly_Invoice::getInvoicePdf($invoice_number, 'en-US');
    print($pdf);
} catch (Recurly_NotFoundError $e) {
    print "Invoice not found.\n";
}     

您可以随时向support@recurly.com提交支持服务单,因为它们为所有客户端库提供支持。

答案 1 :(得分:3)

应该是二进制PDF文件。您是否尝试将其保存到磁盘中,并在Acrobat或Preview中打开它?

我不确定Zend会如何退货,但您应该能够将内容回馈给用户。