在Umbraco中内联显示PDF

时间:2012-01-10 13:30:12

标签: pdf media inline umbraco

民间, 我已经严重困扰了一些我认为很容易的东西:我有一个页面,我想要显示存储在我的媒体集中的PDF。

我可以使用标准工具栏链接到PDF但是要嵌入PDF,我必须转向xslt和宏代码。

这就是我所拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:Stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<xsl:stylesheet 
 version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
 xmlns:msxml="urn:schemas-microsoft-com:xslt"
 xmlns:umbraco.library="urn:umbraco.library"
 exclude-result-prefixes="msxml umbraco.library">
 <xsl:output method="xml" omit-xml-declaration="yes"/>
 <xsl:param name="currentPage"/>
 <xsl:template match="/">
 <xsl:variable name="pdfFile" select="$currentPage/data [@alias='pdfFile']"/>

 <xsl:if test="$pdfFile!= '' ">
   <embed width="796" height="1032"> 
     <xsl:attribute name="src">
       <xsl:value-of select="umbraco.library:GetMedia(./data [@alias = 'pdfFile'], 'false')/data [@alias = 'umbracoFile']"/>
     </xsl:attribute>
   </embed>
 </xsl:if>

 </xsl:template></xsl:stylesheet>

但它不起作用 - 我在页面上什么也没得到。我已经找到了解决方案(也许我对GetMedia的引用是错误的)但我找不到任何对我有帮助的东西。 哦,我的宏使用pdfFile作为参数,并设置为mediaCurrent。 我正在使用Umbraco 4.7.1

任何指针,帮助或建议都会很棒。 谢谢!

1 个答案:

答案 0 :(得分:2)

实际上,这很容易。 这里记录了任何使用Umbraco 4.7.x且需要显示pdf文件的人:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:Stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet 
        version="1.0" 
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
        xmlns:msxml="urn:schemas-microsoft-com:xslt"
        xmlns:umbraco.library="urn:umbraco.library"
        exclude-result-prefixes="msxml umbraco.library">

<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage"/>
<xsl:param name="pdf" select="/macro/pdfFile"/>

  <xsl:template match="/">
    <embed width="100%" height="500"> 
      <xsl:attribute name="src">
        <xsl:value-of select="$pdf/File/umbracoFile"/>
      </xsl:attribute>
    </embed>
  </xsl:template>      

</xsl:stylesheet>

为了澄清,您还需要一个使用此xslt的宏(名称不重要)。您还必须向名为 pdfFile 的宏添加参数,单击“显示”复选框,然后将其全部保存。 当然, embed 的宽度和高度可以设置为适合您的宽度和高度。 玩得开心。