{"id":469,"date":"2018-10-09T08:50:11","date_gmt":"2018-10-09T08:50:11","guid":{"rendered":"https:\/\/ricardomoinhos.com\/?p=469"},"modified":"2019-05-12T22:11:35","modified_gmt":"2019-05-12T22:11:35","slug":"using-dynamics-nav-to-print-to-roll-paper","status":"publish","type":"post","link":"https:\/\/ricardomoinhos.com\/pt\/using-dynamics-nav-to-print-to-roll-paper\/","title":{"rendered":"Printing on roll paper in Dynamics NAV"},"content":{"rendered":"<p>I want to show you how I was able to print invoices and credit memos (or other reports) on a roll paper printer&nbsp;from Dynamics NAV.<\/p>\n<p>I was using Dynamics NAV Universal App in a tablet with Android and I wanted to print to a printer connected via Bluetooth.<\/p>\n<p>If you tried it, you\u2019ve already found out that SSRS \/ RDLC only allows you to print to stationary paper because you have to define the report size in design time.<\/p>\n<p>Besides, I wanted to print from the Universal App and as you may already know, Universal App just generates a PDF file and the printing process is handled by the Android operating system.<\/p>\n<p>A PDF file is like an image so there\u2019s nothing I could change in printer settings to define a different paper size. I needed the PDF file to be created with the final correct size.<\/p>\n<p>How was I able to do it?<\/p>\n<p>First, to preview the layout correctly in Dynamics NAV, showing the invoice in a single page, you must change the <strong>Height<\/strong> in <strong>InteractiveSize<\/strong> property to 0.<\/p>\n<p>The width was set to 7,5 cm because that\u2019s the width of the paper in use.<\/p>\n<p>These settings have no effect when printing the invoice to the printer or to a PDF file, only when previewing. To change the paper size, you have to change the <strong>PageSize <\/strong>property but you need to do it in a dynamically way because the printing size depends, at least, on how many lines the invoice have.<\/p>\n<p>To handle it I\u2019ve done the following:<\/p>\n<ol>\n<li>I\u2019ve created a specific layout that conforms to roll paper width (7,5 cm in my case as stated previously):<\/li>\n<\/ol>\n<p id=\"vFhOBbQ\"><img loading=\"lazy\" decoding=\"async\" width=\"349\" height=\"456\" class=\"alignnone size-full wp-image-472 \" src=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc681d3dec1.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc681d3dec1.png 349w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc681d3dec1-230x300.png 230w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/p>\n<p id=\"tTufgOI\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"57\" class=\"alignnone size-full wp-image-473 \" src=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc682584819.png\" alt=\"\"><\/p>\n<p>InteractiveSize only changes the preview size so I\u2019ve set up 7,5 cm&nbsp; \/ 0 cm.<\/p>\n<p>PageSize changes the print size so I\u2019ve set up 7,5 cm \/ 9 cm. Feel free to setup the height you need to build your layout. You change it dynamically later.<\/p>\n<ol start=\"2\">\n<li>Created a new action in page 132 \u2013 Posted Sales Invoice that looks pretty similar to the standard code but calls a method (see PrintMob) I\u2019ve created to print the new invoice layout.<\/li>\n<\/ol>\n<pre><strong>Print - OnAction()<\/strong>\nSalesInvHeader := Rec;\nCurrPage.SETSELECTIONFILTER(SalesInvHeader);\nSalesInvHeader.PrintRecords(TRUE);\n\n<strong>PrintMob - OnAction<\/strong>()\nSalesInvHeader := Rec;\nCurrPage.SETSELECTIONFILTER(SalesInvHeader);\nRoleCenterMgt.PrintMobilityPostedSalesInvoice(SalesInvHeader, TRUE);<\/pre>\n<ol start=\"3\">\n<li>Created a new codeunit that will have specific code to handle the new layout:<\/li>\n<\/ol>\n<pre><strong>PrintMobilityPostedSalesInvoice<\/strong>(VAR SalesInvoiceHeader : Record \"Sales Invoice Header\";ShowRequestForm : Boolean)\n\/\/ RPM,sn\nDocumentSendingProfile.TrySendToPrinter(\nDummyReportSelections.Usage::\"S.Invoice Mob.\",SalesInvoiceHeader,SalesInvoiceHeader.GetCustomerNoReportSelection,ShowRequestForm);\n\/\/ RPM,en<\/pre>\n<p>I\u2019m using this code so that I can use the Report Selections functionality.<\/p>\n<p>In order to use the Report Selections I\u2019ve added a new <strong>Sales Invoice Mobility <\/strong>option to the Usage field in table 77 \u2013 Report Selections.<\/p>\n<p id=\"wYvjOGO\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"85\" class=\"alignnone size-full wp-image-474 \" src=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc68e710e59.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc68e710e59.png 577w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2018\/10\/img_5bbc68e710e59-300x44.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/p>\n<p>And made the following changes in table 77 to identify that the layout being printed should be considered as a mobility invoice.<\/p>\n<pre><strong>PrintWithGUIYesNo<\/strong>(ReportUsage : Integer;RecordVariant : Variant;IsGUI : Boolean;CustNo : Code[20])\nFindPrintUsage(ReportUsage,CustNo,TempReportSelections);\n\nWITH TempReportSelections DO\nREPEAT\nReportLayoutSelection.SetTempLayoutSelected(\"Custom Report Layout Code\");\n\/\/ RPM,sn\nIF IsMobility(TempReportSelections) THEN\nSingleInstanceCodeunit.SetMobilityReportToPrint(ReportUsage,RecordVariant);\n\/\/ RPM,en\nREPORT.RUNMODAL(\"Report ID\",IsGUI,FALSE,RecordVariant)\nUNTIL NEXT = 0;\nReportLayoutSelection.SetTempLayoutSelected('');\n\/\/ RPM,sn\nSingleInstanceCodeunit.ClearMobilityReportToPrint();\n\/\/ RPM,en\n\n<strong>LOCAL IsMobility<\/strong>(TempReportSelections : TEMPORARY Record \"Report Selections\") : Boolean\n\/\/ RPM,sn\nEXIT(TempReportSelections.Usage IN [TempReportSelections.Usage::\"S.Invoice Mob.\",TempReportSelections.Usage::\"S.Cr.Memo Mob.\"]);\n\/\/ RPM,en<\/pre>\n<p>I\u2019ve only changed the PrintWithGUIYesNo but you may need to do this change in the other print methods.<\/p>\n<p>The codeunit <strong>50024 \u2013 Single Instance Codeunit<\/strong> is a single instance codeunit used to keep session values. When using events, it is a possible solution to pass values between objects.<\/p>\n<pre><strong>Name &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataType&nbsp;&nbsp; Subtype&nbsp;&nbsp;&nbsp; Length<\/strong>\nMobilityReportUsage&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Integer\nMobilityDocumentVariant&nbsp;&nbsp;&nbsp; Variant\n\n<strong>SetMobilityReportToPrint<\/strong>(MobilityReportUsage2 : Integer;MobilityDocumentVariant2 : Variant)\n\/\/ RPM,sn\nMobilityReportUsage := MobilityReportUsage2;\nMobilityDocumentVariant := MobilityDocumentVariant2;\n\/\/ RPM,en\n\n<strong>ClearMobilityReportToPrint<\/strong>()\n\/\/ RPM,sn\nCLEAR(MobilityReportUsage);\nCLEAR(MobilityDocumentVariant);\n\/\/ RPM,en\n\n<strong>IsSetMobilityReportToPrint<\/strong>() : Boolean\n\/\/ RPM,sn\nEXIT(MobilityReportUsage &lt;&gt; 0);\n\/\/ RPM,en\n<\/pre>\n<p>Now I\u2019ve changed the codeunit 1, methods HasCustomLayout and ReportGetCustomRdlc. These methods are called by Dynamics NAV whenever you print a report and I needed to do two changes:<\/p>\n<ol>\n<li>Change and force the HasCustomLayout method to return the value 1 when the report is set as a mobility layout, which indicates that the report has a custom rdlc. When that happens, the system calls the ReportGetCustomRdlc method to retrieve the layout rdlc.<\/li>\n<\/ol>\n<pre><strong>HasCustomLayout<\/strong>(ObjectType : 'Report,Page';ObjectID : Integer) : Integer\n\/\/ Return value:\n\/\/ 0: No custom layout\n\/\/ 1: RDLC layout\n\/\/ 2: Word layout\nIF ObjectType &lt;&gt; ObjectType::Report THEN\nERROR(NotSupportedErr);\n\n\/\/ RPM,sn\nIF SingleInstanceCodeunit.IsSetMobilityReportToPrint THEN\nEXIT(1);\n\/\/ RPM,en\n\nEXIT(ReportLayoutSelection.HasCustomLayout(ObjectID));<\/pre>\n<ol start=\"2\">\n<li>Change the ReportGetCustomRdlc to inject new code in the report rdlc and make the layout height dynamic. Sounds nice, right?<\/li>\n<\/ol>\n<pre><strong>ReportGetCustomRdlc<\/strong>(ReportId : Integer) : Text\n\/\/ RPM,sn\nIF SingleInstanceCodeunit.IsSetMobilityReportToPrint THEN\nEXIT(MobilityLayoutsMgt.GetReportRdlc(ReportId));\n\/\/ RPM,en\nEXIT(CustomReportLayout.GetCustomRdlc(ReportId));<\/pre>\n<p>Finally, I\u2019ve created a new codeunit where I have the method to get the updated layout rdlc, with the height being set dynamically.<\/p>\n<p>I\u2019ve used the REPORT.RDLCLAYOUT command to retrieve the original rdlc and created the method UpdateReportRdlc to update the height to the new value.<\/p>\n<p>I believe the code is self-explanatory.<\/p>\n<pre><strong>Text Constants<\/strong>\nStartTag&nbsp;&nbsp; &lt;PageHeight&gt;\nEndTag&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/PageHeight&gt;\n\n<strong>GetReportRdlc<\/strong>(ReportId : Integer) : Text\nREPORT.RDLCLAYOUT(ReportId,InStr);\nInStr.READ(RdlcTxt);\nEXIT(UpdateReportRdlc(RdlcTxt));\n\n<strong>LOCAL UpdateReportRdlc<\/strong>(RdlcTxt : Text) : Text\nCurrentHeightStartPosition := STRPOS(RdlcTxt, StartTag) + STRLEN(StartTag);\nCurrentHeightEndPosition := STRPOS(RdlcTxt, EndTag);\nRdlcStart := COPYSTR(RdlcTxt, 1, CurrentHeightStartPosition - 1);\nRdlcEnd := COPYSTR(RdlcTxt, CurrentHeightEndPosition - 2, STRLEN(RdlcTxt) - CurrentHeightEndPosition + 3);\nCurrentHeight := COPYSTR(RdlcTxt, CurrentHeightStartPosition, STRLEN(RdlcTxt) - STRLEN(RdlcStart) - STRLEN(RdlcEnd) - 1);\nEXIT(RdlcStart + FORMAT(GetReportNewHeight,0,9) + RdlcEnd);\n\n<strong>LOCAL GetReportNewHeight<\/strong>() NewHeight : Decimal\nSingleInstanceCodeunit.GetMobilityReportToPrint(ReportUsage,DocumentVariant);\nDataTypeManagement.GetRecordRef(DocumentVariant, RecRef);\nCASE RecRef.NUMBER OF\nDATABASE::\"Sales Invoice Header\":\nBEGIN\nSalesInvHeader.COPY(DocumentVariant);\nGetSalesInvNrOfLines(SalesInvHeader.\"No.\",NrOfLines);\nGetInvoiceHeights(HeaderHeight,VATHeight,TotalsHeight,FooterHeight,HeightPerLine);\nHeight := HeaderHeight + TotalsHeight + VATHeight + FooterHeight;\nHeight += NrOfLines * HeightPerLine;\nEND;\n\nDATABASE::\"Sales Cr.Memo Header\":\nBEGIN\nSalesCrMemoHeader.COPY(DocumentVariant);\nGetSalesCrMemoNrOfLines(SalesCrMemoHeader.\"No.\",NrOfLines);\nGetCrMemoHeights(HeaderHeight,VATHeight,TotalsHeight,FooterHeight,HeightPerLine);\nHeight := HeaderHeight + TotalsHeight + VATHeight + FooterHeight;\nHeight += NrOfLines * HeightPerLine;\nEND;\nEND;\nEXIT(Height);\n\n<strong>LOCAL GetSalesInvNrOfLines<\/strong>(SalesInvoiceNo : Code[20];VAR Lines : Integer)\nWITH SalesInvLine DO BEGIN\nRESET;\nSETRANGE(\"Document No.\", SalesInvoiceNo);\nLines := COUNT;\nEND;\n\n<strong>LOCAL GetSalesCrMemoNrOfLines<\/strong>(SalesCrMemoNo : Code[20];VAR Lines : Integer)\nWITH SalesCrMemoLine DO BEGIN\nRESET;\nSETRANGE(\"Document No.\", SalesCrMemoNo);\nLines := COUNT;\nEND;\n\n<strong>LOCAL GetInvoiceHeights<\/strong>(VAR Header : Decimal;VAR VAT : Decimal;VAR Totals : Decimal;VAR Footer : Decimal;VAR SingleLine : Decimal) : Decimal\nHeader := 11.5;\nVAT := 3;\nTotals := 2.5;\nFooter := 2.5;\nSingleLine := 0.5;\n\n<strong>LOCAL GetCrMemoHeights<\/strong>(VAR Header : Decimal;VAR VAT : Decimal;VAR Totals : Decimal;VAR Footer : Decimal;VAR SingleLine : Decimal) : Decimal\nHeader := 11;\nVAT := 3;\nTotals := 3;\nFooter := 2.5;\nSingleLine := 0.4;\n<\/pre>\n<p>Feel free to leave your comments or ask me questions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I want to show you how I was able to print invoices and credit memos (or other reports) on a roll paper printer&nbsp;from Dynamics NAV. I was using Dynamics NAV Universal App in a tablet with Android and I wanted to print to a printer connected via Bluetooth. If you tried it, you\u2019ve already found [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[6],"class_list":{"0":"post-469","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-dynamics365bc","8":"tag-dynamicsnav-2","10":"post-with-thumbnail","11":"post-with-thumbnail-icon"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos<\/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:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos\" \/>\n<meta property=\"og:description\" content=\"I want to show you how I was able to print invoices and credit memos (or other reports) on a roll paper printer&nbsp;from Dynamics NAV. I was using Dynamics NAV Universal App in a tablet with Android and I wanted to print to a printer connected via Bluetooth. If you tried it, you\u2019ve already found [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/\" \/>\n<meta property=\"og:site_name\" content=\"Ricardo Paiva Moinhos\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-09T08:50:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-12T22:11:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png\" \/>\n\t<meta property=\"og:image:width\" content=\"375\" \/>\n\t<meta property=\"og:image:height\" content=\"375\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ricardo Paiva Moinhos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ricardo Paiva Moinhos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/\"},\"author\":{\"name\":\"Ricardo Paiva Moinhos\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\"},\"headline\":\"Printing on roll paper in Dynamics NAV\",\"datePublished\":\"2018-10-09T08:50:11+00:00\",\"dateModified\":\"2019-05-12T22:11:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/\"},\"wordCount\":639,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"keywords\":[\"dynamicsnav\"],\"articleSection\":[\"Dynamics NAV\\\/365 BC\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/\",\"name\":\"Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"datePublished\":\"2018-10-09T08:50:11+00:00\",\"dateModified\":\"2019-05-12T22:11:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"contentUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"width\":375,\"height\":375},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/using-dynamics-nav-to-print-to-roll-paper\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ricardomoinhos.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Printing on roll paper in Dynamics NAV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#website\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/\",\"name\":\"Ricardo Paiva Moinhos\",\"description\":\"Welcome\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ricardomoinhos.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\",\"name\":\"Ricardo Paiva Moinhos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"caption\":\"Ricardo Paiva Moinhos\"},\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/author\\\/ricardopaiva\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos","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:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/","og_locale":"pt_PT","og_type":"article","og_title":"Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos","og_description":"I want to show you how I was able to print invoices and credit memos (or other reports) on a roll paper printer&nbsp;from Dynamics NAV. I was using Dynamics NAV Universal App in a tablet with Android and I wanted to print to a printer connected via Bluetooth. If you tried it, you\u2019ve already found [&hellip;]","og_url":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/","og_site_name":"Ricardo Paiva Moinhos","article_published_time":"2018-10-09T08:50:11+00:00","article_modified_time":"2019-05-12T22:11:35+00:00","og_image":[{"width":375,"height":375,"url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","type":"image\/png"}],"author":"Ricardo Paiva Moinhos","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Ricardo Paiva Moinhos","Tempo estimado de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#article","isPartOf":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/"},"author":{"name":"Ricardo Paiva Moinhos","@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc"},"headline":"Printing on roll paper in Dynamics NAV","datePublished":"2018-10-09T08:50:11+00:00","dateModified":"2019-05-12T22:11:35+00:00","mainEntityOfPage":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/"},"wordCount":639,"commentCount":0,"image":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#primaryimage"},"thumbnailUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","keywords":["dynamicsnav"],"articleSection":["Dynamics NAV\/365 BC"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/","url":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/","name":"Printing on roll paper in Dynamics NAV - Ricardo Paiva Moinhos","isPartOf":{"@id":"https:\/\/ricardomoinhos.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#primaryimage"},"image":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#primaryimage"},"thumbnailUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","datePublished":"2018-10-09T08:50:11+00:00","dateModified":"2019-05-12T22:11:35+00:00","author":{"@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc"},"breadcrumb":{"@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#primaryimage","url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","contentUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","width":375,"height":375},{"@type":"BreadcrumbList","@id":"https:\/\/ricardomoinhos.com\/using-dynamics-nav-to-print-to-roll-paper\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ricardomoinhos.com\/"},{"@type":"ListItem","position":2,"name":"Printing on roll paper in Dynamics NAV"}]},{"@type":"WebSite","@id":"https:\/\/ricardomoinhos.com\/#website","url":"https:\/\/ricardomoinhos.com\/","name":"Ricardo Paiva Moinhos","description":"Welcome","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ricardomoinhos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc","name":"Ricardo Paiva Moinhos","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","caption":"Ricardo Paiva Moinhos"},"url":"https:\/\/ricardomoinhos.com\/pt\/author\/ricardopaiva\/"}]}},"jetpack_featured_media_url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/comments?post=469"}],"version-history":[{"count":8,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/469\/revisions"}],"predecessor-version":[{"id":484,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/469\/revisions\/484"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/media\/138"}],"wp:attachment":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/media?parent=469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/categories?post=469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/tags?post=469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}