我正在嘗試使用Graphics.UI.Gtk.Printing
在Haskell中使用gtk(2hs)打印文件或文本(打印機,而不是終端等) ,開羅和Pango。在gtk2hs中使用Gtk.Printing/cairo/pango進行打印 - 在Haskell中進行打印操作
代碼如下:
op <- printOperationNew
on op printOptBeginPrint $ \context -> do
set op [ printOperationNPages := 1]
return()
on op printOptDrawPage $ \context pages - do
let text = "Hello World"
putStrLn $ "Printing :" ++ text
--cairo
cairoContext<- printContextGetCairoContext context
--pango
layout<- printContextCreatePangoLayout context
layoutSetText layout text
let _ = do
--inside the Render Monad
showLayout layout
return()
return()
result <- printOperationRun op PrintOperationActionPrintDialog window
,因爲我設置了printOperationNPages
爲1 的問題是,開羅不畫任何東西這將打印空白頁。我想我必須 連接cairoContext
與潘戈佈局,適當的電話 showLayout
實際上是pango_cairo_show_layout (cr, layout);
。
我已經在gtk2hs的郵件列表上討論過這個問題[1]。
所以如果有人有這方面的經驗,請讓我知道。我也非常感謝在Haskell中打印文件/文本的其他更好的與平臺無關的解決方案。
鏈接到對話: [1] http://sourceforge.net/mailarchive/message.php?msg_id=27662267
GTK(2HS)在Hackage: http://hackage.haskell.org/package/gtk-0.12.0
gtk-cairo:http://projects.haskell.org/gtk2hs/docs/gtk-docs-0.11.0/Graphics-UI-Gtk-Cairo.html – forste
gtk更高級別的打印api:http:// developer.gnome.org/gtk/2.24/gtk-High-level-Printing-API.html – forste