使用XSL-FO使用ScreenFop视图时,如何动态设置PDF的名称



我正在使用## ofbiz xsl fo模板用于下载pdf文件##。当前,PDF文件始终以相同名称下载。我需要设置PDF文件的名称。如何动态设置文件名?在其他一些问题中,我看到我们必须设置响应标题"内容插词",但不确定在ofbiz的位置设置此设置。任何答案或指针都会有所帮助。

我的控制器.xml

    <view-map name="InvoicePDF" type="screenfop" 
   page="component://myapp/widget/OrderScreens.xml#InvoicePDF" content-type="application/pdf" encoding="none"/>

我的orderscreens.xml

          <!-- PDF Screens --> 
 <screen name="InvoicePDF">
    <section>
        <actions>
            <property-map resource="AppUiLabels" map-name="uiLabelMap" global="true"/>
            <service service-name="getInvoiceDetails" auto-field-map="true"/>
        </actions>
        <widgets>
            <platform-specific>
                <xsl-fo><html-template location="component://myapp/webapp/myapp/static/pdf/invoicePrint.fo.ftl"/></xsl-fo>
            </platform-specific>                
        </widgets>
        <fail-widgets>
            <label style="h3" text="${uiLabelMap.PrintPermission}"/>
        </fail-widgets>
    </section>
</screen>   

我尝试了一个选项,它为我工作 - 我在操作标签中添加了一个新的时髦脚本:

        <script location="component://myapp/webapp/myapp/WEB-INF/actions/setContentDisposition.groovy"/>

setContentDisposition.groovy

import javax.servlet.*;
import javax.servlet.http.*;
filename = invoiceNumber +"_" + month + ".pdf";
response.setHeader( "Content-Disposition", "attachment;filename=" + filename );

相关内容

  • 没有找到相关文章

最新更新