从字节数组中以PHP输出PDF

mda*_*nce 3 javascript php arrays jquery curl

我从WCF服务获取一个字节数组,生成PDF并将其转换为字节数组.我需要能够获取字节数组并使用PHP或Javascript(或jQuery)获取该字节数组并将其转换回可下载的PDF.我更喜欢Javascript中的解决方案,但PHP也可以正常工作.

我用来获取PDF的代码是:

<?php
    $userPDF = $_POST['username'];
    $passPDF = $_POST['password'];
    $idPDF = 'MO-N007175A';

    //PDF Function
    $data = array("id" => $idPDF, "username" => $userPDF, "password" => $passPDF);                                                                    
    $data_string = json_encode($data);                                                
    $ch = curl_init('http://********.com/******/v1/DealPdf');                                                                      

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                 
    curl_setopt($ch, CURLOPT_VERBOSE, 1 );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

    $result = curl_exec($ch);
    var_dump($result);
?>
Run Code Online (Sandbox Code Playgroud)

var_dump($result);IS

string(1053285) "[37,80,68,70,45,49,46,54,10,37,211,244,204,225, ...

阵列持续了一段时间......所以我只提供了一小部分用于示例目的.

我从哪里开始从这个数组中获取PDF?

编辑 澄清 - WCF服务IS返回一个实际的PDF,只是一个字节数组.我需要在客户端计算机上将此字节数组保存为PDF.我使用过fwrite等等,但我必须遗漏一些东西,因为我看不到它有效.

另外 - 如果我使用fwrite,它输出文件在哪里? 编辑

Gri*_*inn 15

我不得不做同样的事情.对我来说,我正在生成PDF服务器端,但是希望在AJAX响应中将一堆其他数据发送给客户端.这是我最终得到的JavaScript.该斑点的saveAs方法是相当新的技术,所以你可能想(像我一样),让他们每个人的polyfills,挂上面.

// Convert the Base64 string back to text.
var byteString = atob(data.reportBase64Bytes);

// Convert that text into a byte array.
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
    ia[i] = byteString.charCodeAt(i);
}

// Blob for saving.
var blob = new Blob([ia], { type: "application/pdf" });

// Tell the browser to save as report.pdf.
saveAs(blob, "report.pdf");

// Alternatively, you could redirect to the blob to open it in the browser.
//document.location.href = window.URL.createObjectURL(blob);
Run Code Online (Sandbox Code Playgroud)