{"id":1485,"date":"2010-08-12T18:42:04","date_gmt":"2010-08-12T13:12:04","guid":{"rendered":"https:\/\/tothenewco.pro\/blog\/?p=1485"},"modified":"2016-12-19T15:04:06","modified_gmt":"2016-12-19T09:34:06","slug":"qr-code-on-pdf-documents-for-identification-and-detection-on-server-side","status":"publish","type":"post","link":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/","title":{"rendered":"QR Code on PDF Documents for Identification and Detection on Server Side"},"content":{"rendered":"<p>In one of our projects, we needed to include <a href=\"http:\/\/en.wikipedia.org\/wiki\/QR_Code\">QR Code<\/a> on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files were going to be read by the grails application, identify the digital copy of the document and set a &#8220;received&#8221; status on the domain class representing the document.<\/p>\n<p><a href=\"http:\/\/www.grails.org\/plugin\/qrcode\">Grails QR Code plugin<\/a> proved to be an excellent choice to generate QR Codes to be included in the document, however, we were using iText Renderer, which meant that we had to provide the absolute URL to the image stream. This was accomplished by providing a URL, which was similar to<\/p>\n<blockquote>\n<pre lang=\"groovy\">${createLink(controller: 'qrcode', action: 'text', absolute: true, params: [text: 'Text to be Encoded'])}<\/pre>\n<\/blockquote>\n<p>instead of using the the tags provided by the plugin. Ability to set the property &#8216;absolute&#8217; while creating links is one of the features I would love to see in the QRCode tag library.<\/p>\n<p>Once the hard copies of the documents were received, we were going to scan them and upload them to our grails application. There are many desktop utilities available for detecting QR Code on images, but no ready made solution for a web application.<\/p>\n<p>A library which we found useful, however, \u00a0was\u00a0<a href=\"http:\/\/code.google.com\/p\/zxing\/\" target=\"_blank\">zxing<\/a> hosted on Google Code. This had a command line tool and the wiki also suggested possible ways to use the library within a java application.<\/p>\n<p>What we did was to read the image using the javax.imageio.ImageIO.read() method (this takes in only a file, so we ended up writing the uploaded file temporarily on the disk and then read it) and then decode the qrcode as:<\/p>\n<blockquote>\n<pre lang=\"groovy\">        com.google.zxing.Reader reader = new QRCodeReader()\r\n        java.awt.image.BufferedImage image = ImageIO.read(imageFile)\r\n        com.google.zxing.LuminanceSource source = new com.google.zxing.client.j2se.BufferedImageLuminanceSource(image);\r\n        com.google.zxing.BinaryBitmap bitmap = new com.google.zxing.BinaryBitmap(new com.google.zxing.common.HybridBinarizer(source))\r\n        Result result = reader.decode(bitmap)\r\n        return result.text<\/pre>\n<\/blockquote>\n<p>This returns the text, which was embedded in the QR Code.<\/p>\n<p>Hope this helps<\/p>\n<p>Vivek<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":8,"footnotes":""},"categories":[7],"tags":[4840,365,363,364],"class_list":["post-1485","post","type-post","status-publish","format-standard","hentry","category-grails","tag-grails","tag-grails-plugins","tag-qrcode","tag-zxing"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Vivek Krishna\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#article\",\"name\":\"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog\",\"headline\":\"QR Code on PDF Documents for Identification and Detection on Server Side\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2010-08-12T18:42:04+05:30\",\"dateModified\":\"2016-12-19T15:04:06+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#webpage\"},\"articleSection\":\"Grails, Grails, grails plugins, qrcode, zxing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#listItem\",\"name\":\"QR Code on PDF Documents for Identification and Detection on Server Side\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#listItem\",\"position\":3,\"name\":\"QR Code on PDF Documents for Identification and Detection on Server Side\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/\",\"name\":\"Vivek Krishna\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Vivek Krishna\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/\",\"name\":\"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog\",\"description\":\"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"datePublished\":\"2010-08-12T18:42:04+05:30\",\"dateModified\":\"2016-12-19T15:04:06+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog","description":"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files","canonical_url":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#article","name":"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog","headline":"QR Code on PDF Documents for Identification and Detection on Server Side","author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/vivek\/#author"},"publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"},"datePublished":"2010-08-12T18:42:04+05:30","dateModified":"2016-12-19T15:04:06+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#webpage"},"isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#webpage"},"articleSection":"Grails, Grails, grails plugins, qrcode, zxing"},{"@type":"BreadcrumbList","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/tothenewco.pro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/tothenewco.pro\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#listItem","name":"QR Code on PDF Documents for Identification and Detection on Server Side"},"previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#listItem","position":3,"name":"QR Code on PDF Documents for Identification and Detection on Server Side","previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/tothenewco.pro\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/tothenewco.pro\/blog\/"},{"@type":"Person","@id":"https:\/\/tothenewco.pro\/blog\/author\/vivek\/#author","url":"https:\/\/tothenewco.pro\/blog\/author\/vivek\/","name":"Vivek Krishna","image":{"@type":"ImageObject","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g","width":96,"height":96,"caption":"Vivek Krishna"}},{"@type":"WebPage","@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#webpage","url":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/","name":"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog","description":"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/#breadcrumblist"},"author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/vivek\/#author"},"creator":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/vivek\/#author"},"datePublished":"2010-08-12T18:42:04+05:30","dateModified":"2016-12-19T15:04:06+05:30"},{"@type":"WebSite","@id":"https:\/\/tothenewco.pro\/blog\/#website","url":"https:\/\/tothenewco.pro\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog","og:description":"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files","og:url":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/","og:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"QR Code on PDF Documents for Identification and Detection on Server Side | TO THE NEW Blog","twitter:description":"In one of our projects, we needed to include QR Code on the PDF documents, which were to be sent out to the user and the printed version was to be received back from them. Once the documents were received, we were going to scan each sheet into an image file and then, these files","twitter:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"1485","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 00:01:45","updated":"2024-02-29 09:34:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tQR Code on PDF Documents for Identification and Detection on Server Side\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/tothenewco.pro\/blog"},{"label":"Grails","link":"https:\/\/tothenewco.pro\/blog\/category\/grails\/"},{"label":"QR Code on PDF Documents for Identification and Detection on Server Side","link":"https:\/\/tothenewco.pro\/blog\/qr-code-on-pdf-documents-for-identification-and-detection-on-server-side\/"}],"_links":{"self":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/1485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/comments?post=1485"}],"version-history":[{"count":0,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/1485\/revisions"}],"wp:attachment":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/media?parent=1485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/categories?post=1485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/tags?post=1485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}