2010-02-10 58 views
0

我試圖打印SWF並遇到一些問題。 在瀏覽器中使用打印功能時,SWF將會失真,並且不能正確縮放。所以我嘗試使用Actionscript來實現打印功能。在瀏覽器中打印SWF時的問題

我已經採取了不同的方法是:使用

  • 印刷Flash播放器的右鍵快捷菜單並選擇打印。這種方式幾乎和預期的一樣,但是它會使透明的PNG變扁平,並且不能正確縮放。
  • 創建FlexPrintJob並將該組件添加到作業中。即使我已經在打印作業上設置了FlexPrintJobScaleType.SHOW_ALL,也不會縮放組件以適應頁面。
  • 創建一個包含圖像的PrintView。然後截取組件並將其設置爲PrintView中的圖像。完成後,我創建一個新的FlexPrintJob併發送它。這似乎在大多數時候都起作用,但縮放會扭曲,並使小元素(如文本)顯得非常糟糕。

打印的代碼如下所示:

var pj:FlexPrintJob = new FlexPrintJob(); 
if (pj.start()) 
{ 
pj.addObject(componentToBePrinted, FlexPrintJobScaleType.SHOW_ALL); 
    pj.send(); 
} 

我想這樣做是讓右鍵快捷菜單來工作,我的意思是設置SWF的縮放。這可能嗎?打印SWF時是否還有其他選擇?我究竟做錯了什麼?

測試時,我打印到PDF,但我不認爲這會改變結果。

回答

0

您需要將打印作業縮放你想在FlexPrintJobScaleType什麼:

MATCH_WIDTH

(默認)縮放對象以填充 可用頁面寬度。如果 生成的對象高度超過了頁面高度 ,則輸出跨越多個 頁面。

MATCH_HEIGHT

縮放對象以填充 可用頁面高度。如果 生成的對象寬度超過 頁面寬度,則輸出跨越多個 頁面。

SHOW_ALL

縮放以適合單個 頁上,填充一個尺寸對象;即 它選擇較小的 MATCH_WIDTH或MATCH_HEIGHT比例 類型。

FILL_PAGE

縮放對象以完全填充至少一個 頁;即選擇 MATCH_WIDTH或 MATCH_HEIGHT比例類型中較大的一個。

NONE

不縮放輸出。打印的 頁面的尺寸與屏幕上的 對象尺寸相同。如果對象 高度,寬度或兩個尺寸 超過頁面寬度或高度,則輸出會跨越多個頁面。

有關更多信息,請參閱http://livedocs.adobe.com/flex/3/html/help.html?content=printing_3.html