Web service to donwload a document returns the following:
%PDF-1.5
%����
1 0 obj
<</Type/Catalog/Pages 2 0 R/Lang(en-GB) /StructTreeRoot 14 0 R/MarkInfo<</Marked true>>>>
endobj
2 0 obj
<</Type/Pages/Count 1/Kids[ 3 0 R] >>
endobj
3 0 obj
<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 8 0 R>>/ExtGState<</GS7 7 0 R>>/ProcSet[/PDF
/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 595.32 841.92] /Contents 4 0 R/Group<</Type/Group/S/Transparency
/CS/DeviceRGB>>/Tabs/S/StructParents 0>>
endobj
4 0 obj
To convert this data to file, i'm using the following code:
$.ajax({
url: "/documents/docDownload",
type: "GET",
async: true,
headers: {
responseType: "arraybuffer"
},
success: function(data,status,xhr) {
var file = new Blob([data], {type: 'application/pdf'});
var fileURL = window.URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.download = data.name || "newPDF2";
document.body.appendChild(a);
a.click();
$(window).on('focus', function(e) {
$('a').remove();
});
}
})
The functions returns me a pdf file, however when i open the pdf file, it's empty, seems that during the conversion was lost information.
Anybody knows why is it happening?
PHP - Web-Service code
$path = "/xxx/xxx/xxx/xxx/work.pdf";
$res = $app->response();
$res['Content-Description'] = 'File Transfer';
$res['Content-Type'] = 'application/force-download';
$res['Content-Type'] = 'application/pdf';
$res['Content-Disposition'] ='attachment; filename=' . basename($path);
$res['Content-Transfer-Encoding'] = 'binary';
$res['Expires'] = '0';
$res['Cache-Control'] = 'must-revalidate';
$res['Pragma'] = 'public';
$res['Content-Length'] = filesize($path);
readfile($path);