如何检查是否打印到文件

时间:2016-01-28 22:18:34

标签: fltk

有没有办法判断Fl_Printer是否正在打印到文件(.ps文件)?我的应用程序需要知道用户是否已选择打印到文件,因此它可以为打印页面添加一些额外的东西。我查看了Fl_Printer的文档及其所有遗产谱系无济于事。这可能与当前的API有关吗?我的应用程序使用FLTK 1.3.3,专为Linux和OS X而构建。

修改

#include <FL/Fl_Printer.H>
...
void SWindow::on_print()
{
    Fl_Printer printer;
    if( printer.start_job(1) ) return;
    if( printer.start_page() ) return;
    // Drawing takes place here
    printer.end_page();
    printer.end_job();
}

1 个答案:

答案 0 :(得分:0)

这不是一个优雅的方法,但它会起作用。

  1. 修改Fl_Printer.H。在类Fl_Printer中,将private更改为public
  2. 修改Fl_PostScript.H。在类Fl_PostScript_File_Device中,将protected更改为public
  3. 不需要重建库,因为标头只影响编译。您无需更改库即可更改标题。
  4. 在您的代码中

    if (printer.printer->driver()->ps_filename_ == NULL)
    {
         // printing to printer
     }
     else
     {
         // printing to file
     }