我正在使用链接显示PDF文件。我希望在新标签中显示PDF,因此我添加了target =“_ blank”。这很好用。将打开一个新选项卡,但我希望更改选项卡的标题。
该链接将我重定向到此控制器代码,如下所示: -
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
pdf显示正确,但没有视图脚本,因此我无法通过脚本进行控制。是否有标题(“浏览器标题:???”)我可以使用吗?
TIA Effy
答案 0 :(得分:2)
对于这个问题,我使用这个技巧:
我使用一个简单的html页面,其中包含iframe:
<html>
<head>
<title>Your PDF Title</title>
<link type="image/x-icon" rel="icon" href="">
</head>
<body>
<iframe src="/module/controller/action/param..." id="ifrm" name="ifrm" width="100%" height="100%">
</iframe>
</body>
</html>
iframe包含PDF,页面包含标题 当然,您可以使用javascript来拥有动态标题
答案 1 :(得分:0)
Firefox的内部pdfviewer似乎是从pdf中的元数据中获取文档标题的。 例如,使用Zend_Pdf可以处理此元数据。
$title = 'My custom title';
$pdf = Zend_Pdf::load($filepath);
$metadata = $pdf->getMetadata();
$metadataDOM = new DOMDocument();
$metadataDOM->loadXML($metadata);
$domTitle = $metadataDOM->getElementsByTagName('title')->item(0);
$domTitle->nodeValue = $title;
$pdf->setMetadata($metadataDOM->saveXML());
//maybe old style document info:
$pdf->properties['Title'] = $title;//this didn't work for me
echo $pdf->render();
我不是DOM操作专家,但这对使用Illustrator CS5创建的文件很有效。免费基于Zend Framework文档。您可能需要在此过程中进行一些错误检查。