Summary: | [GTK] Implement print preview | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Carlos Garcia Campos <cgarcia> | ||||
Component: | WebKitGTK | Assignee: | Tomas Popela <tpopela> | ||||
Status: | NEW --- | ||||||
Severity: | Normal | CC: | aperez, bugs-noreply, bugzilla, mcrha, mike, noein93, tpopela | ||||
Priority: | P2 | Keywords: | Gtk | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | PC | ||||||
OS: | Linux | ||||||
See Also: | https://bugzilla.gnome.org/show_bug.cgi?id=779254 | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 75544 | ||||||
Attachments: |
|
Description
Carlos Garcia Campos
2012-02-22 05:07:58 PST
What all do we need to do for this? We probably need a way to send the PDF from the web process to the UI process. I do not know the rationale behind this, but with respect of the Gtk's print dialog, you get all of that for free, both Print Preview and Export to PDF (yes, that's also sometimes useful), if you just reuse what the gtk offer. All you need to do is to implement three signals on the GtkPrintOperation, as shown in the simple example [1], which can be run in gtk3-demo, Printing->Printing demo. Reuse of the code is beneficial, I believe, especially when you get things for free. [1] https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/printing.c#n158 Unfortunately this is not that easy in WebKit2 model. We run the dialog in the ui process, but the print operation in the web process. So we use the unix print dialog manually, and a custom print operation in the web process. So, the UI process simply collects the options form the print dialog, and the web process does the actual printing to a file that is sent to the printer with GtkPrintJob Created attachment 295851 [details]
Patch
I added a wip implementation (but it's working) just to have some opinion from other devs if this is the right way to implement this (we talked about this with Carlos during the hackfest). For the description please see the change logs. Just for a record, recent downstream bug report against Evolution: https://bugzilla.gnome.org/show_bug.cgi?id=779254 FWIW, Flatpak's xdg-desktop-portal-gtk just did something similar using evince-previewer for its print preview implementation, which has the same challenges as the WK2 model: https://github.com/flatpak/xdg-desktop-portal-gtk/commit/8710c71022e60543881bbe7dbefb76285ab03a34 Now that we have PDF support we can probably implement print preview using a web view. |