{"id":3330,"date":"2019-12-28T14:15:26","date_gmt":"2019-12-28T20:15:26","guid":{"rendered":"http:\/\/www.logikalsolutions.com\/wordpress\/?p=3330"},"modified":"2019-12-28T14:15:26","modified_gmt":"2019-12-28T20:15:26","slug":"qt-printing-taxes-pt-4","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/","title":{"rendered":"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3331\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg\" alt=\"center heading\" width=\"640\" height=\"480\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg 640w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading-300x225.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/>Before I get into more coding on this topic, I need to cover some remedial information. The first is how we center a heading. Even when we had printer spacing charts we would write the text on scratch paper then put a slash every two characters, counting spaces as characters then we would count the slashes. When working with narrow form we would subtract the number of slashes from 40, with wide form it was 66. That gives us the position of the very first character. Once again, COBOL made this simple.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3332\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/cobol-header-line.png\" alt=\"cobol header definition\" width=\"364\" height=\"146\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/cobol-header-line.png 364w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/cobol-header-line-300x120.png 300w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Things tend to get less obvious if you are using C++ and trying to use the approved Qt methods of building a string.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3333\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-header-cpp.png\" alt=\"report header cpp\" width=\"622\" height=\"351\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-header-cpp.png 622w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-header-cpp-300x169.png 300w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><\/p>\n<p>That&#8217;s why the early xpnsqt version built the report heading this way.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3334\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-heading-original.png\" alt=\"report heading original\" width=\"668\" height=\"342\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-heading-original.png 668w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/report-heading-original-300x154.png 300w\" sizes=\"(max-width: 668px) 100vw, 668px\" \/><\/p>\n<p>It&#8217;s a bit more human friendly. In the days of C and even early days of C++ developers would just use sprintf() with a format string. Admittedly, it got ugly. More of us switched to the example above because even a junior still in school developer could fix a spacing problem. QString does provide apsrint but <a href=\"https:\/\/doc.qt.io\/qt-5\/qstring.html\">we are told not to use it<\/a>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3335\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/sprintf-warning.png\" alt=\"sprintf warning\" width=\"967\" height=\"57\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/sprintf-warning.png 967w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/sprintf-warning-300x18.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/sprintf-warning-768x45.png 768w\" sizes=\"(max-width: 967px) 100vw, 967px\" \/><\/p>\n<p>There is a new new new approved method as well.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3336\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/new-new-new-way.png\" alt=\"new new new way\" width=\"662\" height=\"720\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/new-new-new-way.png 662w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/new-new-new-way-276x300.png 276w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/p>\n<p>Honestly COBOL is starting to look like a higher level language for reports, probably why COBOL will outlive Java and every scripting language in vogue today.<\/p>\n<p>Many Qt developers try to get around such things by writing html files. At first blush it doesn&#8217;t seem too horrible. Headings don&#8217;t get too complicated.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3337\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-page-heading.png\" alt=\"html page heading\" width=\"926\" height=\"511\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-page-heading.png 926w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-page-heading-300x166.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-page-heading-768x424.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/p>\n<p>You will note the use of tables to control positioning. The knee-jerk sizing width 100% really bites you if someone clicks the full screen button though.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3338\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen.png\" alt=\"html full screen\" width=\"1914\" height=\"369\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen.png 1914w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen-300x58.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen-1024x197.png 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen-768x148.png 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-full-screen-1536x296.png 1536w\" sizes=\"(max-width: 1914px) 100vw, 1914px\" \/><\/p>\n<p>I don&#8217;t know about you but &#8220;Total&#8221; kind of disappears for me. It&#8217;s also very difficult to follow the line across the screen.<\/p>\n<p>The real killer is dealing with all of the tables because that is your only real method of creating column alignment.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3339\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-detail.png\" alt=\"html detail\" width=\"926\" height=\"673\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-detail.png 926w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-detail-300x218.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-detail-768x558.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/p>\n<p>That funny looking piece of code from 419 to 423 creates the blank row between category total and grand total lines. In theory a single string of &#8220;&lt;tr&gt;&lt;\/tr&gt;\\n&#8221; should have worked, but not in all browsers. Keep that in mind. It may look perfect in your application, but if you don&#8217;t delete the file someone is going to try looking at it in their default browser if it has a .html extension. You need to keep in mind another thing before clutching html as &#8220;the solution.&#8221; <a href=\"https:\/\/www.w3schools.com\/tags\/tag_td.asp\">Much of it is going away with html 5<\/a>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3341\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-differences.png\" alt=\"html differences\" width=\"988\" height=\"600\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-differences.png 988w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-differences-300x182.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-differences-768x466.png 768w\" sizes=\"(max-width: 988px) 100vw, 988px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>You can follow the link to read up on everything disappearing from &lt;td&gt; when the browser supports only html 5. I included this snippet because the code made heavy use of align to make the report line up. Still, forcing the font to Monospace 9 point allows creation of a passable report for this purpose.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3342\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-report-image.jpg\" alt=\"report image\" width=\"640\" height=\"480\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-report-image.jpg 640w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/html-report-image-300x225.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>You will note the page breaks occur as expected. Yes, there is a touch extra space at the top of the second and subsequent pages. It can be fixed and it is good enough for this example.<\/p>\n<p>We need to look at just how bad things can get before I end this post. <a href=\"https:\/\/www.sec.gov\/Archives\/edgar\/data\/1259429\/000161577419013713\/0001615774-19-013713-index.htm\">Click this link<\/a> to be taken to the Edgar database for Oxford Square Capital Corp. (OXSQ). I gave you the company name in case the Edgar database moves or something. You will see a page looking much like this.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-3343\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/edgar-filing-1024x342.png\" alt=\"Edgar filing\" width=\"960\" height=\"321\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/edgar-filing-1024x342.png 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/edgar-filing-300x100.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/edgar-filing-768x257.png 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/edgar-filing.png 1221w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Click on the 10-Q html document and scroll down to the beginning of page 2, &#8220;CONSOLIDATED SCHEDULE OF INVESTMENTS.&#8221; It should look something like this.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3344\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/10-q-1.png\" alt=\"10-q\" width=\"662\" height=\"487\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/10-q-1.png 662w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/10-q-1-300x221.png 300w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Click your back button then click on the complete submission text file. Search for &#8220;consolidated.&#8221; You should find something like this.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-3345\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/consolidated-1-1024x444.png\" alt=\"consolidated html\" width=\"960\" height=\"416\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/consolidated-1-1024x444.png 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/consolidated-1-300x130.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/consolidated-1-768x333.png 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/consolidated-1.png 1238w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Nice huh? If you go back to the top and search for &#8220;T04&#8221; you can the later point in the file where they wedged in the data.<\/p>\n<p>Our discussion for today is over. In case I don&#8217;t get back to this before New Year&#8217;s Eve, have a happy happy!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before I get into more coding on this topic, I need to cover some remedial information. The first is how we center a heading. Even when we had printer spacing charts we would write the text on scratch paper then put a slash every two characters, counting spaces as characters then we would count the slashes. When working with narrow form we would subtract the number of slashes from 40, with wide form it was &hellip; <a title=\"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/\"><span class=\"screen-reader-text\">Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[438,436,159,1765],"class_list":["post-3330","post","type-post","status-publish","format-standard","hentry","category-information-technology","tag-cobol","tag-java","tag-qt","tag-reports","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"Continued discussion on using Qt to generated business class printed reports.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Continued discussion on using Qt to generated business class printed reports.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-28T20:15:26+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4\",\"datePublished\":\"2019-12-28T20:15:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/\"},\"wordCount\":678,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/center-heading.jpg\",\"keywords\":[\"COBOL\",\"Java\",\"Qt\",\"reports\"],\"articleSection\":[\"Information Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/\",\"name\":\"Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/center-heading.jpg\",\"datePublished\":\"2019-12-28T20:15:26+00:00\",\"description\":\"Continued discussion on using Qt to generated business class printed reports.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/center-heading.jpg\",\"contentUrl\":\"http:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/center-heading.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/qt-printing-taxes-pt-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog","description":"Continued discussion on using Qt to generated business class printed reports.","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:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/","og_locale":"en_US","og_type":"article","og_title":"Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog","og_description":"Continued discussion on using Qt to generated business class printed reports.","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/","og_site_name":"Logikal Blog","article_published_time":"2019-12-28T20:15:26+00:00","og_image":[{"url":"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg","type":"","width":"","height":""}],"author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4","datePublished":"2019-12-28T20:15:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/"},"wordCount":678,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#primaryimage"},"thumbnailUrl":"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg","keywords":["COBOL","Java","Qt","reports"],"articleSection":["Information Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/","name":"Qt - Printing - Taxes - Pt. 4 &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#primaryimage"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#primaryimage"},"thumbnailUrl":"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg","datePublished":"2019-12-28T20:15:26+00:00","description":"Continued discussion on using Qt to generated business class printed reports.","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#primaryimage","url":"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg","contentUrl":"http:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2019\/12\/center-heading.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qt-printing-taxes-pt-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Qt &#8211; Printing &#8211; Taxes &#8211; Pt. 4"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/3330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=3330"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/3330\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=3330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=3330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=3330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}