2012-06-14 25 views
1

我使用pd4ml來渲染由Orbeon XForms引擎生成的URL並將其轉換爲PDF。如何將Orbeon Forms與不支持JavaScript的PD4ML集成?

pd4ml.render(urlstring, fileOutputStram); 

Orbeon從我的XForms生成的HTML在瀏覽器中顯示OK。

但試圖當渲染了XForms 與pd4ml的PDF頁面說您的瀏覽器似乎不支持JavaScript的頂部顯示一個警告消息。您可能想嘗試以下方法之一...,因爲PD4ML 不支持javascript

有沒有辦法禁用警告信息?

回答

1

如果您使用Form Builder創建表單,那麼Form Runner將能夠自動爲您生成PDF。爲此,Form Runner爲此使用Flying Saucer,這看起來類似於pd4ml。

如果您是「手動」編寫XForms,並且想要使用pd4ml,那麼在將它提供給pd4ml之前,您需要對HTML進行一些後處理。你可以看到Form Runner在print-pdf-notemplate.xpl中做了什麼;特別是查找嵌入在該管道中的XSLT樣式表,並且您很可能會想爲pd4ml做類似的操作。

+0

嗨,謝謝!但我不確定它會對我有用。 問題是我有兩臺帶orbeon的服務器,並且在一臺服務器上,我在xform上收到消息「您的瀏覽器似乎不支持JavaScript,您可能需要嘗試以下操作之一:」,另一臺服務器「T。 所以我的猜測是它可以在orbeon上配置。 我需要在使用Web瀏覽器請求xform時啓用javascript功能。所以從property.xml中禁用它不是一個選項。 任何建議將不勝感激。 – panox

+0

我不建議您禁用Orbeon Forms中的JavaScript功能;只是在您請求獲取頁面之後,您將轉換頁面以除去將由不支持JavaScript的pd4ml顯示的HTML部分,如'print-pdf-notemplate.xpl'所示(請參閱上面的鏈接)。如果你可以在XSLT中做到這一點,那真的很簡單,你可以重用Orbeon Forms已經使用的相同的XSLT代碼,然後它將HTML提供給Flying Saucer。 – avernet

0

好吧,我想通了是我的一切形式pageflow.xml提到了物業尾聲URL =「OXF:/config/epilogue.xpl

然後我進入到配置/property.xml,並認爲它是有聯繫的/config/theme-plain.xsl

And I add a stylesheet there on theme-plain.xsl 

(參見主題examples.xsl得到一個想法如何)

xhtml:link rel="stylesheet" href="/mystyle.css" type="text/css" media="all"/> 

在我的風格包含此:

 

    .xforms-noscript-panel { 
     border: 4px solid #FF6600; 
     margin: 1em; 
     padding: 0.5em; 
     width: auto; 
     display: none !important; 
    } 

然後pd4ml將打印與報警信息隱藏的HTML。