我有一段PHP代码,它将URL传递给名为wkhtmltopdf
的插件,并使用webkit呈现页面的PDF。
我的代码在IE和Firefox中工作正常,这是我们使用的主要两个,但我们的一些高管使用Safari并且代码无法运行。
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){
// DEVELOPMENT CODE
$newPDF = md5($qid . time()). '.pdf';
$current = getcwd() . '\\exports\\';
$WshShell = new COM("WScript.Shell");
$WshShell->exec($current.'makeWKPDF.bat "'.$fileURL.'&ref=nomenu" '.$newPDF);
// had to add this because shell isnt waiting for the file to finish before continuning
sleep(10);
// get the contents of the new PDF file
$pdf = file_get_contents($toolURL."exports/".$newPDF);
// push the PDF File to the browser
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Initiative '.$intID.' Export.pdf"');
// push the PDF to the browser
echo $pdf;
// delete the PDF
@unlink($current.$newPDF);
}
我在这一点上的第一个也是唯一的猜测是Safari不支持我创建的new COM
?
任何人都可以确认是否是这种情况并且可以解决这个问题。一直在做一些研究而且找不到任何东西。
更新 我也发现这在IE8中也不起作用。我认为这两个问题都指向PHP如何创建COM对象,但我不确定另一种方法可以让它工作。