更改浏览器标题

时间:2015-03-30 14:32:34

标签: zend-framework controller

我正在使用链接显示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

2 个答案:

答案 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文档。您可能需要在此过程中进行一些错误检查。