{"id":956,"date":"2012-03-08T18:52:55","date_gmt":"2012-03-08T17:52:55","guid":{"rendered":"http:\/\/cyberelk.net\/tim\/?p=956"},"modified":"2014-05-20T09:06:41","modified_gmt":"2014-05-20T08:06:41","slug":"session-printing","status":"publish","type":"post","link":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/","title":{"rendered":"Session printing"},"content":{"rendered":"<p>There has been <a href=\"http:\/\/lists.fedoraproject.org\/pipermail\/devel\/2012-March\/163610.html\" target=\"_blank\">a discussion on the Fedora devel mailing list recently<\/a> about user session printing: why that might be useful, and in what circumstances it makes sense.<\/p>\n<p>Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. the office CUPS server, or Google Cloud Print.\u00a0 Applications produce PDF, so for printing to these types of service there is nothing to do but send the PDF (along with any print options).<\/p>\n<p><!--more--><\/p>\n<p>A little about Google Cloud Print: this is a service that allows you to register your local printers with their service, and share those printers with other people.\u00a0 It currently works as part of Chrome: it maintains an XMPP connection to Google so that incoming jobs can be received and passed on to the local CUPS queue.\u00a0 For printing jobs to it, it is simply an authenticated web service.<\/p>\n<p><a href=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"957\" data-permalink=\"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/session-printing\/\" data-orig-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing.png\" data-orig-size=\"1053,745\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"session-printing\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-1024x724.png\" class=\"alignnone size-medium wp-image-957\" title=\"session-printing\" src=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png\" alt=\"\" width=\"450\" height=\"318\" srcset=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png 450w, https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-1024x724.png 1024w, https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing.png 1053w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>The GTK print dialog supports multiple print backends, and currently &#8216;cups&#8217; is the one we use for printing.\u00a0 This communicates with the locally-running cupsd.<\/p>\n<p>Printing is more than simply getting capabilities and submitting jobs though: we also need to monitor the status of submitted jobs, and perform actions on those jobs such as pause, resume, and cancel.<\/p>\n<p>Currently job status monitoring is performed in gsd-printer, which displays notifications when a job has completed etc, and job management actions are implemented in the &#8220;Printers&#8221; panel of the Systems Settings<br \/>\napplication.<\/p>\n<p>Adding support for printing to PDF-capable print services directly from the session could be implemented as follows.<\/p>\n<p>A new session service for printing could be created, providing methods for obtaining a list of printers, explicitly adding\/removing printers, and with properties for finding out the current state of each printer and whether it is reporting problems.\u00a0 It could also provide methods for retrieving the list of jobs for each printer, performing actions on those jobs, and have properties for the state of each job.<\/p>\n<p>This service could have plug-ins for dealing with the locally-running cupsd; with CUPS\/IPP servers on the network; and with Google Cloud Print.<\/p>\n<p>For the &#8220;network IPP&#8221; plug-in, it could discover available CUPS (and IPP Everywhere) queues using Avahi, and show in the list of printers only those queues that handle PDF.\u00a0 Additionally, the print dialog could<br \/>\nallow IPP print servers to be added by hostname (for CUPS) or URI (for network printers which speak IPP and handle PDF).<\/p>\n<p>For the &#8220;cloudprint&#8221; plug-in, it could interrogate the Google Cloud Print server to determine the list of available queues. (The &#8220;Online Accounts\/Google&#8221; part of System Settings knows how to log in.)<\/p>\n<p>For job status feedback, gsd-printer could instead query the new service. (Or perhaps the service would be implemented in gsd-printer?)<\/p>\n<p>For job management, the printer panel in System Settings could perform actions through the new service.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There has been a discussion on the Fedora devel mailing list recently about user session printing: why that might be useful, and in what circumstances it makes sense. Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[76,33,27,71,75,28],"class_list":["post-956","post","type-post","status-publish","format-standard","hentry","category-software","tag-cloud","tag-cups","tag-fedora","tag-gnome","tag-google","tag-printing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Session printing - PRINT HEAD<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Session printing - PRINT HEAD\" \/>\n<meta property=\"og:description\" content=\"There has been a discussion on the Fedora devel mailing list recently about user session printing: why that might be useful, and in what circumstances it makes sense. Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/\" \/>\n<meta property=\"og:site_name\" content=\"PRINT HEAD\" \/>\n<meta property=\"article:published_time\" content=\"2012-03-08T17:52:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-05-20T08:06:41+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png\" \/>\n<meta name=\"author\" content=\"Tim Waugh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tim Waugh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/\"},\"author\":{\"name\":\"Tim Waugh\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"headline\":\"Session printing\",\"datePublished\":\"2012-03-08T17:52:55+00:00\",\"dateModified\":\"2014-05-20T08:06:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/\"},\"wordCount\":480,\"publisher\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"image\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2012\\\/03\\\/session-printing-450x318.png\",\"keywords\":[\"cloud\",\"cups\",\"fedora\",\"gnome\",\"google\",\"printing\"],\"articleSection\":[\"Software\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/\",\"name\":\"Session printing - PRINT HEAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2012\\\/03\\\/session-printing-450x318.png\",\"datePublished\":\"2012-03-08T17:52:55+00:00\",\"dateModified\":\"2014-05-20T08:06:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#primaryimage\",\"url\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2012\\\/03\\\/session-printing-450x318.png\",\"contentUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2012\\\/03\\\/session-printing-450x318.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2012\\\/03\\\/08\\\/session-printing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Session printing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\",\"name\":\"PRINT HEAD\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\",\"name\":\"Tim Waugh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"contentUrl\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"width\":731,\"height\":140,\"caption\":\"Tim Waugh\"},\"logo\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\"},\"sameAs\":[\"http:\\\/\\\/cyberelk.net\\\/tim\"],\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/author\\\/twaugh\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Session printing - PRINT HEAD","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/","og_locale":"en_GB","og_type":"article","og_title":"Session printing - PRINT HEAD","og_description":"There has been a discussion on the Fedora devel mailing list recently about user session printing: why that might be useful, and in what circumstances it makes sense. Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. [&hellip;]","og_url":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/","og_site_name":"PRINT HEAD","article_published_time":"2012-03-08T17:52:55+00:00","article_modified_time":"2014-05-20T08:06:41+00:00","og_image":[{"url":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png","type":"","width":"","height":""}],"author":"Tim Waugh","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tim Waugh","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#article","isPartOf":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/"},"author":{"name":"Tim Waugh","@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"headline":"Session printing","datePublished":"2012-03-08T17:52:55+00:00","dateModified":"2014-05-20T08:06:41+00:00","mainEntityOfPage":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/"},"wordCount":480,"publisher":{"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"image":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#primaryimage"},"thumbnailUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png","keywords":["cloud","cups","fedora","gnome","google","printing"],"articleSection":["Software"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/","url":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/","name":"Session printing - PRINT HEAD","isPartOf":{"@id":"https:\/\/cyberelk.net\/tim\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#primaryimage"},"image":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#primaryimage"},"thumbnailUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png","datePublished":"2012-03-08T17:52:55+00:00","dateModified":"2014-05-20T08:06:41+00:00","breadcrumb":{"@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#primaryimage","url":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png","contentUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2012\/03\/session-printing-450x318.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cyberelk.net\/tim\/2012\/03\/08\/session-printing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cyberelk.net\/tim\/"},{"@type":"ListItem","position":2,"name":"Session printing"}]},{"@type":"WebSite","@id":"https:\/\/cyberelk.net\/tim\/#website","url":"https:\/\/cyberelk.net\/tim\/","name":"PRINT HEAD","description":"","publisher":{"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cyberelk.net\/tim\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6","name":"Tim Waugh","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","url":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","contentUrl":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","width":731,"height":140,"caption":"Tim Waugh"},"logo":{"@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png"},"sameAs":["http:\/\/cyberelk.net\/tim"],"url":"https:\/\/cyberelk.net\/tim\/author\/twaugh\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pnnS2-fq","_links":{"self":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/comments?post=956"}],"version-history":[{"count":7,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/956\/revisions"}],"predecessor-version":[{"id":1037,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/956\/revisions\/1037"}],"wp:attachment":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/media?parent=956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/categories?post=956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/tags?post=956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}