gtk打印不带对话框的操作



我正在尝试制作一个没有对话框窗口的打印例程,我知道这是使用PRINT选项而不是PRINT_dialog完成的。

Gtk.PrintOperationAction.PRINT_DIALOG
Gtk.PrintOperationAction.PRINT

具有对话框选项的例程相应地工作;print.toFile(…("函数并在行中读取:

pageSetup.loadFile(Assets.absoluteFilePath('pagesetup.conf'));
printSettings.loadFile(Assets.absoluteFilePath('printsettings.conf'));

它们出现在日志中。

但什么都没发生,没有触发任何事件("开始打印"、"绘图页"或其他什么(。

我将node-gtk包与Meteor一起使用,这在";Assets.absoluteFilePath";(Meteor(功能以及在所有其他线路上,这些线路处于camelCase(节点gtk这样做(

我不认为这些包是问题的原因,在我看来似乎缺少了一些东西,因为结果是三个(3->IN_PROGRESS(。

我发现的所有例子都使用PRINT_DIALOG例程

botao2.on('clicked', () => {
let printSettings = new Gtk.PrintSettings();
let pageSetup = new Gtk.PageSetup();
pageSetup.loadFile(Assets.absoluteFilePath('pagesetup.conf'));
printSettings.loadFile(Assets.absoluteFilePath('printsettings.conf'));
let print = new Gtk.PrintOperation({
//'allow-async': true,
});
print.setUnit(Gtk.Unit.NONE);
print.setPrintSettings(printSettings);
print.setDefaultPageSetup(pageSetup);
print.setUseFullPage(true);
print.setShowProgress(true);
console.log({ pageSetup, printSettings });
print.on('begin-print', (printContext, num) => {
print.nPages = 1;
width = Math.floor(printContext.getWidth());
height = Math.floor(printContext.getHeight());
});
print.on('draw-page', (printContext) => {
console.log('draw-page', printContext);
});
print.on('status-changed', (...args) => {
console.log('status-changed', args);
});
print.on('done', (res) => {
console.log('done', res);
});
console.log(print.run(Gtk.PrintOperationAction.PRINT));  // always 3 -> IN_PROGRESS
});

这是GTK4中存在的一个错误,在GTK3中它是有效的,团队已经修复了它,目前只需等待分发包

https://gitlab.gnome.org/GNOME/gtk/-/issues/4439

最新更新