民间, 我已经严重困扰了一些我认为很容易的东西:我有一个页面,我想要显示存储在我的媒体集中的PDF。
我可以使用标准工具栏链接到PDF但是要嵌入PDF,我必须转向xslt和宏代码。
这就是我所拥有的:
<?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: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
任何指针,帮助或建议都会很棒。 谢谢!
答案 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 的宽度和高度可以设置为适合您的宽度和高度。 玩得开心。