在gtk2hs中使用Gtk.Printing/cairo/pango进行打印-在Haskell中进行打印操作
我目前正在尝试使用gtk(2hs)在Haskell中使用在gtk2hs中使用Gtk.Printing/cairo/pango进行打印-在Haskell中进行打印操作,haskell,printing,cairo,pango,gtk2hs,Haskell,Printing,Cairo,Pango,Gtk2hs,我目前正在尝试使用gtk(2hs)在Haskell中使用Graphics.UI.gtk.Printing、Cairo和Pango打印文件或文本(到打印机,而不是到终端等) 代码如下: op <- printOperationNew on op printOptBeginPrint $ \context -> do set op [ printOperationNPages := 1]
Graphics.UI.gtk.Printing
、Cairo和Pango打印文件或文本(到打印机,而不是到终端等)
代码如下:
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
op-do
设置操作[printOperationNPages:=1]
返回()
在op printOptDrawPage$\context pages-do上
让text=“你好,世界”
putStrLn$“打印:”++文本
--开罗
cairoContext您是否尝试改用GtkPrintUnixDialog
使用起来简单得多。基本上,您可以创建GtkPrintUnixDialog
,创建GtkPrintJob
。将打印设置为源文件(文本,您可以命名为pdf),然后将其打印出来。您也不能显示对话框,使其使用系统上的默认打印设置 gtk cairo:gtk更高级别的打印api:我在这里读到过,但我还没有找到与之相当的haskell/gtk2hs。由于它不在Gtk2Hs套件的核心库中,您知道它在哪里吗!?