私は現在、Haskell で gtk(2hs) Graphics.UI.Gtk.Printing
、カイロ、パンゴを使用してファイルまたはテキストを (端末などではなく、プリンターに) 印刷しようとしています。
コードは次のとおりです。
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
を 1に設定したため、空のページが出力さprintOperationNPages
れます。問題は、cairo が何も描画しないことです。cairoContext
をpango レイアウト
に接続する必要があると思いますが、適切な呼び出しshowLayout
は実際にはpango_cairo_show_layout (cr, layout);
.
この問題については、gtk2hs [1] のメーリング リストで既に説明しました。
ですので、経験のある方がいましたら教えてください。Haskellでファイル/テキストを印刷するための、プラットフォームに依存しない他の望ましいソリューションにも感謝します。
会話へのリンク: [1] http://sourceforge.net/mailarchive/message.php?msg_id=27662267
Hackage の GTK(2hs): http://hackage.haskell.org/package/gtk-0.12.0