2012-01-10 46 views
0

民間, 我已經嚴重卡住了一些我認爲很容易的東西:我有一個頁面,我想顯示存儲在我的媒體集合中的PDF。在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

任何指針,幫助或建議將是偉大的。 謝謝!

+0

產生的HTML代碼是什麼? – 2012-01-11 08:57:36

回答

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的參數,點擊'顯示'複選框,然後將其全部保存。 嵌入的寬度和高度當然可以設置爲適合您的任何內容。 玩得開心。