Отображение PDF-файлов в Umbraco - PullRequest
0 голосов
/ 10 января 2012

Ребята, я плохо застрял с тем, что, на мой взгляд, было бы легко: у меня есть страница, и я хочу отобразить 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 Ответ

2 голосов
/ 11 января 2012

На самом деле, это довольно просто.Здесь это задокументировано для всех, кто использует 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 , конечно, может быть установлена ​​на то, что вам подходит.Веселитесь.

...