[{"data":1,"prerenderedAt":6727},["ShallowReactive",2],{"blog-\u002Fblog\u002F2025\u002F05\u002Fhow-to-generate-pdf-reports-using-node-red":3,"blog-all-for-related":6726},{"id":4,"title":5,"authors":6,"body":8,"cta":6700,"date":6704,"description":6705,"extension":6706,"image":6707,"lastUpdated":6708,"meta":6709,"navigation":5338,"path":6715,"seo":6716,"sitemap":6717,"stem":6718,"subtitle":6719,"tags":6720,"tldr":6723,"video":6724,"__hash__":6725},"blog\u002Fblog\u002F2025\u002F05\u002Fhow-to-generate-pdf-reports-using-node-red.md","How to Generate PDF Reports Using Node-RED in FlowFuse (2026)",[7],"sumit-shinde",{"type":9,"value":10,"toc":6687},"minimark",[11,15,18,23,26,66,70,73,78,87,106,109,121,125,128,131,134,359,368,371,1746,1749,1759,1763,1766,1771,1774,5208,5226,5236,5245,6322,6371,6378,6381,6385,6388,6393,6495,6498,6503,6507,6510,6545,6548,6551,6559,6657,6662,6672,6676,6684],[12,13,14],"p",{},"Generating PDF reports is a common need in many workflows, whether you're logging data, sharing results, or creating summaries. With Node-RED and FlowFuse, you can easily automate turning your data into well-structured PDF files. This guide will show you how to set up step-by-step PDF report generation using simple tools and flows.",[12,16,17],{},"Generating reports allows you to capture snapshots of critical data, summarize system activities, and distribute insights in an easy-to-read and stored format. PDF is one of the most universally accepted formats for sharing documents, making it ideal for delivering structured information from your Node-RED flows.",[19,20,22],"h2",{"id":21},"prerequisites","Prerequisites",[12,24,25],{},"Before you begin, make sure the following requirements are met:",[27,28,29,41,50],"ul",{},[30,31,32,33,40],"li",{},"You have an active ",[34,35,39],"a",{"href":36,"rel":37},"https:\u002F\u002Fapp.flowfuse.com",[38],"nofollow","FlowFuse account"," and a running FlowFuse instance.",[30,42,43,44,49],{},"You are familiar with creating and deploying basic flows in Node-RED. If not, consider taking the ",[34,45,48],{"href":46,"rel":47},"https:\u002F\u002Fnode-red-academy.learnworlds.com\u002Fcourse\u002Fnode-red-getting-started",[38],"Node-RED Fundamentals Course"," sponsored by FlowFuse.",[30,51,52,53,57,58,61,62,65],{},"Ensure you have installed ",[54,55,56],"code",{},"flowfuse\u002Fnode-red-dashboard"," ",[54,59,60],{},"@flowfuse\u002Fnode-red-dashboard-2-ui-iframe"," and ",[54,63,64],{},"node-red-contrib-sqlite"," (The SQLite node is required for the demo data generation flow we provided. If you're not using that flow, you can skip this.).",[19,67,69],{"id":68},"setting-up-pdf-generation-in-node-red","Setting Up PDF Generation in Node-RED",[12,71,72],{},"Once the prerequisites are in place, the next step is setting up your Node-RED environment to generate PDF reports. In this section, we will go over how to install the necessary Node-RED node and configure a flow to generate PDF reports.",[74,75,77],"h3",{"id":76},"step-1-install-the-platmacnode-red-pdfbuilder","Step 1: Install the @platmac\u002Fnode-red-pdfbuilder",[12,79,80,81,86],{},"The ",[34,82,85],{"href":83,"rel":84},"https:\u002F\u002Fflows.nodered.org\u002Fnode\u002F@platmac\u002Fnode-red-pdfbuilder",[38],"platmac\u002Fnode-red-pdfbuilder"," node is the primary node for creating PDF reports in Node-RED. To install this node:",[88,89,90,93,96,103],"ol",{},[30,91,92],{},"Open your Node-RED editor.",[30,94,95],{},"Navigate to the \"Manage palette\" section from the top-right menu.",[30,97,98,99,102],{},"Click on the \"Install\" tab and search for ",[54,100,101],{},"@platmac\u002Fnode-red-pdfbuilder",".",[30,104,105],{},"Click \"Install\" to add the node to your palette.",[12,107,108],{},"This node allows you to dynamically generate PDFs from various inputs, which is exactly what you will need to generate reports.",[12,110,111,112,115,116,61,118,120],{},"If you haven't installed the ",[54,113,114],{},"@flowfuse\u002Fnode-red-dashboard",", ",[54,117,60],{},[54,119,64],{}," nodes, you can install them similarly.",[74,122,124],{"id":123},"step-2-understanding-how-to-use-the-pdfbuilder-node","Step 2: Understanding How to Use the Pdfbuilder Node",[12,126,127],{},"Now that the required node is installed, let's dive into how to use it and how to leverage the different attributes to customize your PDF reports. The pdfbuilder node in Node-RED simplifies generating PDFs by allowing you to define content, layout, and styling directly in your flow.",[12,129,130],{},"The key advantage of using pdfbuilder node is that it operates server-side, meaning PDFs can be generated automatically without a browser or manual interaction. This makes it ideal for automated workflows where consistent, programmatically created documents are needed.",[12,132,133],{},"When working with this node, you can use various attributes to customize the content and layout of the PDF, such as text, tables, images, page sizes, margins, headers, footers, and more. Below are the most commonly used attributes:",[135,136,137,160],"table",{},[138,139,140],"thead",{},[141,142,143,150,155],"tr",{},[144,145,146],"th",{},[147,148,149],"strong",{},"Attribute",[144,151,152],{},[147,153,154],{},"Description",[144,156,157],{},[147,158,159],{},"Example",[161,162,163,179,194,209,224,239,254,269,284,299,314,329,344],"tbody",{},[141,164,165,171,174],{},[166,167,168],"td",{},[54,169,170],{},"content",[166,172,173],{},"Defines the content of the PDF (text, tables, images, etc.).",[166,175,176],{},[54,177,178],{},"{ \"content\": \"Hello, World!\" }",[141,180,181,186,189],{},[166,182,183],{},[54,184,185],{},"style",[166,187,188],{},"Specifies the style for content (font size, font family, etc.).",[166,190,191],{},[54,192,193],{},"{ \"style\": \"headerStyle\" }",[141,195,196,201,204],{},[166,197,198],{},[54,199,200],{},"layout",[166,202,203],{},"Defines the layout of a table (e.g., 'lightHorizontalLines', 'noBorders').",[166,205,206],{},[54,207,208],{},"{ \"layout\": \"lightHorizontalLines\" }",[141,210,211,216,219],{},[166,212,213],{},[54,214,215],{},"pageSize",[166,217,218],{},"Defines the page size for the PDF.",[166,220,221],{},[54,222,223],{},"{ \"pageSize\": \"A4\" }",[141,225,226,231,234],{},[166,227,228],{},[54,229,230],{},"pageMargins",[166,232,233],{},"Sets the margins for the PDF (left, top, right, bottom).",[166,235,236],{},[54,237,238],{},"{ \"pageMargins\": [40, 60, 40, 60] }",[141,240,241,246,249],{},[166,242,243],{},[54,244,245],{},"header",[166,247,248],{},"Specifies a header for the PDF. Can be a static text or dynamic content.",[166,250,251],{},[54,252,253],{},"{ \"header\": \"My PDF Report\" }",[141,255,256,261,264],{},[166,257,258],{},[54,259,260],{},"footer",[166,262,263],{},"Specifies a footer for the PDF. Can be a static text or dynamic content.",[166,265,266],{},[54,267,268],{},"{ \"footer\": \"Page {PAGE_NUM} of {PAGE_COUNT}\" }",[141,270,271,276,279],{},[166,272,273],{},[54,274,275],{},"defaultStyle",[166,277,278],{},"Defines the default style for all content in the PDF.",[166,280,281],{},[54,282,283],{},"{ \"defaultStyle\": { \"font\": \"Helvetica\", \"fontSize\": 12 } }",[141,285,286,291,294],{},[166,287,288],{},[54,289,290],{},"background",[166,292,293],{},"Adds a background to the page or content area.",[166,295,296],{},[54,297,298],{},"{ \"background\": { \"image\": \"imageData\" } }",[141,300,301,306,309],{},[166,302,303],{},[54,304,305],{},"width",[166,307,308],{},"Sets the width of table cells or other elements.",[166,310,311],{},[54,312,313],{},"{ \"width\": 150 }",[141,315,316,321,324],{},[166,317,318],{},[54,319,320],{},"height",[166,322,323],{},"Sets the height of table cells or other elements.",[166,325,326],{},[54,327,328],{},"{ \"height\": 50 }",[141,330,331,336,339],{},[166,332,333],{},[54,334,335],{},"alignment",[166,337,338],{},"Specifies the text alignment (left, center, right).",[166,340,341],{},[54,342,343],{},"{ \"alignment\": \"center\" }",[141,345,346,351,354],{},[166,347,348],{},[54,349,350],{},"border",[166,352,353],{},"Defines the border for tables or table cells (style, width, and color).",[166,355,356],{},[54,357,358],{},"{ \"border\": [true, true, true, true] }",[12,360,361,362,367],{},"For additional attributes and information, refer to the ",[34,363,366],{"href":364,"rel":365},"https:\u002F\u002Fpdfmake.github.io\u002Fdocs\u002F0.1\u002Fdocument-definition-object\u002F",[38],"pdfmake documentation",", as pdfbuilder-node uses this library to generate PDFs.",[12,369,370],{},"Here’s a simple example of how you can use these attributes to create a basic PDF:",[372,373,378],"pre",{"className":374,"code":375,"language":376,"meta":377,"style":377},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"content\": [\n    {\n      \"svg\": \"logoDataHere\",\n      \"width\": 150,\n      \"alignment\": \"center\",\n      \"margin\": [0, 0, 0, 20]\n    },\n    {\n      \"text\": \"Production Report - 2025\",\n      \"style\": \"header\"\n    },\n    {\n      \"text\": \"Daily Production Summary with Operator Performance\",\n      \"style\": \"subheader\",\n      \"alignment\": \"center\",\n      \"margin\": [0, 10, 0, 20]\n    },\n    {\n      \"layout\": \"lightHorizontalLines\",\n      \"table\": {\n        \"headerRows\": 1,\n        \"widths\": [\"auto\", \"auto\", \"*\", \"auto\", \"auto\", \"*\"],\n        \"body\": [\n          [\"Date\", \"Shift\", \"Product\", \"Units Produced\", \"Defective Units\", \"Operator\"],\n          [\"2025-01-01\", \"Morning\", \"Product A\", \"1000\", \"20\", \"John Doe\"],\n          [\"2025-01-01\", \"Afternoon\", \"Product B\", \"950\", \"15\", \"Jane Smith\"],\n          [\"2025-01-02\", \"Morning\", \"Product A\", \"1050\", \"10\", \"James Brown\"],\n          [\"2025-01-02\", \"Afternoon\", \"Product C\", \"800\", \"30\", \"Emily Clark\"],\n          [\"2025-01-03\", \"Morning\", \"Product B\", \"1100\", \"25\", \"Michael Green\"],\n          [\"2025-01-03\", \"Afternoon\", \"Product A\", \"980\", \"18\", \"Sarah White\"]\n        ]\n      }\n    },\n    {\n      \"text\": \"This table summarizes the daily production output across different shifts and operators. It includes total units produced and defective units recorded for quality analysis.\",\n      \"fontSize\": 12,\n      \"alignment\": \"justify\",\n      \"margin\": [0, 10, 0, 20]\n    },\n    {\n      \"text\": \"Internal Use Only - Manufacturing Co.\",\n      \"style\": \"footer\",\n      \"alignment\": \"center\",\n      \"margin\": [0, 20, 0, 0]\n    }\n  ],\n  \"styles\": {\n    \"header\": {\n      \"fontSize\": 20,\n      \"bold\": true,\n      \"alignment\": \"center\",\n      \"margin\": [0, 20, 0, 10]\n    },\n    \"subheader\": {\n      \"fontSize\": 14,\n      \"italics\": true,\n      \"color\": \"grey\",\n      \"margin\": [0, 10, 0, 20]\n    },\n    \"footer\": {\n      \"fontSize\": 10,\n      \"color\": \"grey\"\n    }\n  },\n  \"pageSize\": \"A4\",\n  \"pageMargins\": [40, 60, 40, 60]\n}\n","json","",[54,379,380,389,407,413,439,456,476,512,518,523,544,562,567,572,592,612,631,661,666,671,691,705,723,788,802,862,921,979,1036,1093,1150,1206,1212,1218,1223,1228,1248,1265,1285,1314,1319,1324,1344,1363,1382,1411,1417,1423,1437,1451,1466,1481,1500,1529,1534,1547,1563,1577,1598,1627,1632,1645,1660,1677,1682,1688,1708,1740],{"__ignoreMap":377},[381,382,385],"span",{"class":383,"line":384},"line",1,[381,386,388],{"class":387},"sMK4o","{\n",[381,390,392,395,398,401,404],{"class":383,"line":391},2,[381,393,394],{"class":387},"  \"",[381,396,170],{"class":397},"spNyl",[381,399,400],{"class":387},"\"",[381,402,403],{"class":387},":",[381,405,406],{"class":387}," [\n",[381,408,410],{"class":383,"line":409},3,[381,411,412],{"class":387},"    {\n",[381,414,416,419,423,425,427,430,434,436],{"class":383,"line":415},4,[381,417,418],{"class":387},"      \"",[381,420,422],{"class":421},"sBMFI","svg",[381,424,400],{"class":387},[381,426,403],{"class":387},[381,428,429],{"class":387}," \"",[381,431,433],{"class":432},"sfazB","logoDataHere",[381,435,400],{"class":387},[381,437,438],{"class":387},",\n",[381,440,442,444,446,448,450,454],{"class":383,"line":441},5,[381,443,418],{"class":387},[381,445,305],{"class":421},[381,447,400],{"class":387},[381,449,403],{"class":387},[381,451,453],{"class":452},"sbssI"," 150",[381,455,438],{"class":387},[381,457,459,461,463,465,467,469,472,474],{"class":383,"line":458},6,[381,460,418],{"class":387},[381,462,335],{"class":421},[381,464,400],{"class":387},[381,466,403],{"class":387},[381,468,429],{"class":387},[381,470,471],{"class":432},"center",[381,473,400],{"class":387},[381,475,438],{"class":387},[381,477,479,481,484,486,488,491,494,497,500,502,504,506,509],{"class":383,"line":478},7,[381,480,418],{"class":387},[381,482,483],{"class":421},"margin",[381,485,400],{"class":387},[381,487,403],{"class":387},[381,489,490],{"class":387}," [",[381,492,493],{"class":452},"0",[381,495,496],{"class":387},",",[381,498,499],{"class":452}," 0",[381,501,496],{"class":387},[381,503,499],{"class":452},[381,505,496],{"class":387},[381,507,508],{"class":452}," 20",[381,510,511],{"class":387},"]\n",[381,513,515],{"class":383,"line":514},8,[381,516,517],{"class":387},"    },\n",[381,519,521],{"class":383,"line":520},9,[381,522,412],{"class":387},[381,524,526,528,531,533,535,537,540,542],{"class":383,"line":525},10,[381,527,418],{"class":387},[381,529,530],{"class":421},"text",[381,532,400],{"class":387},[381,534,403],{"class":387},[381,536,429],{"class":387},[381,538,539],{"class":432},"Production Report - 2025",[381,541,400],{"class":387},[381,543,438],{"class":387},[381,545,547,549,551,553,555,557,559],{"class":383,"line":546},11,[381,548,418],{"class":387},[381,550,185],{"class":421},[381,552,400],{"class":387},[381,554,403],{"class":387},[381,556,429],{"class":387},[381,558,245],{"class":432},[381,560,561],{"class":387},"\"\n",[381,563,565],{"class":383,"line":564},12,[381,566,517],{"class":387},[381,568,570],{"class":383,"line":569},13,[381,571,412],{"class":387},[381,573,575,577,579,581,583,585,588,590],{"class":383,"line":574},14,[381,576,418],{"class":387},[381,578,530],{"class":421},[381,580,400],{"class":387},[381,582,403],{"class":387},[381,584,429],{"class":387},[381,586,587],{"class":432},"Daily Production Summary with Operator Performance",[381,589,400],{"class":387},[381,591,438],{"class":387},[381,593,595,597,599,601,603,605,608,610],{"class":383,"line":594},15,[381,596,418],{"class":387},[381,598,185],{"class":421},[381,600,400],{"class":387},[381,602,403],{"class":387},[381,604,429],{"class":387},[381,606,607],{"class":432},"subheader",[381,609,400],{"class":387},[381,611,438],{"class":387},[381,613,615,617,619,621,623,625,627,629],{"class":383,"line":614},16,[381,616,418],{"class":387},[381,618,335],{"class":421},[381,620,400],{"class":387},[381,622,403],{"class":387},[381,624,429],{"class":387},[381,626,471],{"class":432},[381,628,400],{"class":387},[381,630,438],{"class":387},[381,632,634,636,638,640,642,644,646,648,651,653,655,657,659],{"class":383,"line":633},17,[381,635,418],{"class":387},[381,637,483],{"class":421},[381,639,400],{"class":387},[381,641,403],{"class":387},[381,643,490],{"class":387},[381,645,493],{"class":452},[381,647,496],{"class":387},[381,649,650],{"class":452}," 10",[381,652,496],{"class":387},[381,654,499],{"class":452},[381,656,496],{"class":387},[381,658,508],{"class":452},[381,660,511],{"class":387},[381,662,664],{"class":383,"line":663},18,[381,665,517],{"class":387},[381,667,669],{"class":383,"line":668},19,[381,670,412],{"class":387},[381,672,674,676,678,680,682,684,687,689],{"class":383,"line":673},20,[381,675,418],{"class":387},[381,677,200],{"class":421},[381,679,400],{"class":387},[381,681,403],{"class":387},[381,683,429],{"class":387},[381,685,686],{"class":432},"lightHorizontalLines",[381,688,400],{"class":387},[381,690,438],{"class":387},[381,692,694,696,698,700,702],{"class":383,"line":693},21,[381,695,418],{"class":387},[381,697,135],{"class":421},[381,699,400],{"class":387},[381,701,403],{"class":387},[381,703,704],{"class":387}," {\n",[381,706,708,711,714,716,718,721],{"class":383,"line":707},22,[381,709,710],{"class":387},"        \"",[381,712,713],{"class":452},"headerRows",[381,715,400],{"class":387},[381,717,403],{"class":387},[381,719,720],{"class":452}," 1",[381,722,438],{"class":387},[381,724,726,728,731,733,735,737,739,742,744,746,748,750,752,754,756,759,761,763,765,767,769,771,773,775,777,779,781,783,785],{"class":383,"line":725},23,[381,727,710],{"class":387},[381,729,730],{"class":452},"widths",[381,732,400],{"class":387},[381,734,403],{"class":387},[381,736,490],{"class":387},[381,738,400],{"class":387},[381,740,741],{"class":432},"auto",[381,743,400],{"class":387},[381,745,496],{"class":387},[381,747,429],{"class":387},[381,749,741],{"class":432},[381,751,400],{"class":387},[381,753,496],{"class":387},[381,755,429],{"class":387},[381,757,758],{"class":432},"*",[381,760,400],{"class":387},[381,762,496],{"class":387},[381,764,429],{"class":387},[381,766,741],{"class":432},[381,768,400],{"class":387},[381,770,496],{"class":387},[381,772,429],{"class":387},[381,774,741],{"class":432},[381,776,400],{"class":387},[381,778,496],{"class":387},[381,780,429],{"class":387},[381,782,758],{"class":432},[381,784,400],{"class":387},[381,786,787],{"class":387},"],\n",[381,789,791,793,796,798,800],{"class":383,"line":790},24,[381,792,710],{"class":387},[381,794,795],{"class":452},"body",[381,797,400],{"class":387},[381,799,403],{"class":387},[381,801,406],{"class":387},[381,803,805,808,810,813,815,817,819,822,824,826,828,831,833,835,837,840,842,844,846,849,851,853,855,858,860],{"class":383,"line":804},25,[381,806,807],{"class":387},"          [",[381,809,400],{"class":387},[381,811,812],{"class":432},"Date",[381,814,400],{"class":387},[381,816,496],{"class":387},[381,818,429],{"class":387},[381,820,821],{"class":432},"Shift",[381,823,400],{"class":387},[381,825,496],{"class":387},[381,827,429],{"class":387},[381,829,830],{"class":432},"Product",[381,832,400],{"class":387},[381,834,496],{"class":387},[381,836,429],{"class":387},[381,838,839],{"class":432},"Units Produced",[381,841,400],{"class":387},[381,843,496],{"class":387},[381,845,429],{"class":387},[381,847,848],{"class":432},"Defective Units",[381,850,400],{"class":387},[381,852,496],{"class":387},[381,854,429],{"class":387},[381,856,857],{"class":432},"Operator",[381,859,400],{"class":387},[381,861,787],{"class":387},[381,863,865,867,869,872,874,876,878,881,883,885,887,890,892,894,896,899,901,903,905,908,910,912,914,917,919],{"class":383,"line":864},26,[381,866,807],{"class":387},[381,868,400],{"class":387},[381,870,871],{"class":432},"2025-01-01",[381,873,400],{"class":387},[381,875,496],{"class":387},[381,877,429],{"class":387},[381,879,880],{"class":432},"Morning",[381,882,400],{"class":387},[381,884,496],{"class":387},[381,886,429],{"class":387},[381,888,889],{"class":432},"Product A",[381,891,400],{"class":387},[381,893,496],{"class":387},[381,895,429],{"class":387},[381,897,898],{"class":432},"1000",[381,900,400],{"class":387},[381,902,496],{"class":387},[381,904,429],{"class":387},[381,906,907],{"class":432},"20",[381,909,400],{"class":387},[381,911,496],{"class":387},[381,913,429],{"class":387},[381,915,916],{"class":432},"John Doe",[381,918,400],{"class":387},[381,920,787],{"class":387},[381,922,924,926,928,930,932,934,936,939,941,943,945,948,950,952,954,957,959,961,963,966,968,970,972,975,977],{"class":383,"line":923},27,[381,925,807],{"class":387},[381,927,400],{"class":387},[381,929,871],{"class":432},[381,931,400],{"class":387},[381,933,496],{"class":387},[381,935,429],{"class":387},[381,937,938],{"class":432},"Afternoon",[381,940,400],{"class":387},[381,942,496],{"class":387},[381,944,429],{"class":387},[381,946,947],{"class":432},"Product B",[381,949,400],{"class":387},[381,951,496],{"class":387},[381,953,429],{"class":387},[381,955,956],{"class":432},"950",[381,958,400],{"class":387},[381,960,496],{"class":387},[381,962,429],{"class":387},[381,964,965],{"class":432},"15",[381,967,400],{"class":387},[381,969,496],{"class":387},[381,971,429],{"class":387},[381,973,974],{"class":432},"Jane Smith",[381,976,400],{"class":387},[381,978,787],{"class":387},[381,980,982,984,986,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1014,1016,1018,1020,1023,1025,1027,1029,1032,1034],{"class":383,"line":981},28,[381,983,807],{"class":387},[381,985,400],{"class":387},[381,987,988],{"class":432},"2025-01-02",[381,990,400],{"class":387},[381,992,496],{"class":387},[381,994,429],{"class":387},[381,996,880],{"class":432},[381,998,400],{"class":387},[381,1000,496],{"class":387},[381,1002,429],{"class":387},[381,1004,889],{"class":432},[381,1006,400],{"class":387},[381,1008,496],{"class":387},[381,1010,429],{"class":387},[381,1012,1013],{"class":432},"1050",[381,1015,400],{"class":387},[381,1017,496],{"class":387},[381,1019,429],{"class":387},[381,1021,1022],{"class":432},"10",[381,1024,400],{"class":387},[381,1026,496],{"class":387},[381,1028,429],{"class":387},[381,1030,1031],{"class":432},"James Brown",[381,1033,400],{"class":387},[381,1035,787],{"class":387},[381,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1062,1064,1066,1068,1071,1073,1075,1077,1080,1082,1084,1086,1089,1091],{"class":383,"line":1038},29,[381,1040,807],{"class":387},[381,1042,400],{"class":387},[381,1044,988],{"class":432},[381,1046,400],{"class":387},[381,1048,496],{"class":387},[381,1050,429],{"class":387},[381,1052,938],{"class":432},[381,1054,400],{"class":387},[381,1056,496],{"class":387},[381,1058,429],{"class":387},[381,1060,1061],{"class":432},"Product C",[381,1063,400],{"class":387},[381,1065,496],{"class":387},[381,1067,429],{"class":387},[381,1069,1070],{"class":432},"800",[381,1072,400],{"class":387},[381,1074,496],{"class":387},[381,1076,429],{"class":387},[381,1078,1079],{"class":432},"30",[381,1081,400],{"class":387},[381,1083,496],{"class":387},[381,1085,429],{"class":387},[381,1087,1088],{"class":432},"Emily Clark",[381,1090,400],{"class":387},[381,1092,787],{"class":387},[381,1094,1096,1098,1100,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1128,1130,1132,1134,1137,1139,1141,1143,1146,1148],{"class":383,"line":1095},30,[381,1097,807],{"class":387},[381,1099,400],{"class":387},[381,1101,1102],{"class":432},"2025-01-03",[381,1104,400],{"class":387},[381,1106,496],{"class":387},[381,1108,429],{"class":387},[381,1110,880],{"class":432},[381,1112,400],{"class":387},[381,1114,496],{"class":387},[381,1116,429],{"class":387},[381,1118,947],{"class":432},[381,1120,400],{"class":387},[381,1122,496],{"class":387},[381,1124,429],{"class":387},[381,1126,1127],{"class":432},"1100",[381,1129,400],{"class":387},[381,1131,496],{"class":387},[381,1133,429],{"class":387},[381,1135,1136],{"class":432},"25",[381,1138,400],{"class":387},[381,1140,496],{"class":387},[381,1142,429],{"class":387},[381,1144,1145],{"class":432},"Michael Green",[381,1147,400],{"class":387},[381,1149,787],{"class":387},[381,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1184,1186,1188,1190,1193,1195,1197,1199,1202,1204],{"class":383,"line":1152},31,[381,1154,807],{"class":387},[381,1156,400],{"class":387},[381,1158,1102],{"class":432},[381,1160,400],{"class":387},[381,1162,496],{"class":387},[381,1164,429],{"class":387},[381,1166,938],{"class":432},[381,1168,400],{"class":387},[381,1170,496],{"class":387},[381,1172,429],{"class":387},[381,1174,889],{"class":432},[381,1176,400],{"class":387},[381,1178,496],{"class":387},[381,1180,429],{"class":387},[381,1182,1183],{"class":432},"980",[381,1185,400],{"class":387},[381,1187,496],{"class":387},[381,1189,429],{"class":387},[381,1191,1192],{"class":432},"18",[381,1194,400],{"class":387},[381,1196,496],{"class":387},[381,1198,429],{"class":387},[381,1200,1201],{"class":432},"Sarah White",[381,1203,400],{"class":387},[381,1205,511],{"class":387},[381,1207,1209],{"class":383,"line":1208},32,[381,1210,1211],{"class":387},"        ]\n",[381,1213,1215],{"class":383,"line":1214},33,[381,1216,1217],{"class":387},"      }\n",[381,1219,1221],{"class":383,"line":1220},34,[381,1222,517],{"class":387},[381,1224,1226],{"class":383,"line":1225},35,[381,1227,412],{"class":387},[381,1229,1231,1233,1235,1237,1239,1241,1244,1246],{"class":383,"line":1230},36,[381,1232,418],{"class":387},[381,1234,530],{"class":421},[381,1236,400],{"class":387},[381,1238,403],{"class":387},[381,1240,429],{"class":387},[381,1242,1243],{"class":432},"This table summarizes the daily production output across different shifts and operators. It includes total units produced and defective units recorded for quality analysis.",[381,1245,400],{"class":387},[381,1247,438],{"class":387},[381,1249,1251,1253,1256,1258,1260,1263],{"class":383,"line":1250},37,[381,1252,418],{"class":387},[381,1254,1255],{"class":421},"fontSize",[381,1257,400],{"class":387},[381,1259,403],{"class":387},[381,1261,1262],{"class":452}," 12",[381,1264,438],{"class":387},[381,1266,1268,1270,1272,1274,1276,1278,1281,1283],{"class":383,"line":1267},38,[381,1269,418],{"class":387},[381,1271,335],{"class":421},[381,1273,400],{"class":387},[381,1275,403],{"class":387},[381,1277,429],{"class":387},[381,1279,1280],{"class":432},"justify",[381,1282,400],{"class":387},[381,1284,438],{"class":387},[381,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312],{"class":383,"line":1287},39,[381,1289,418],{"class":387},[381,1291,483],{"class":421},[381,1293,400],{"class":387},[381,1295,403],{"class":387},[381,1297,490],{"class":387},[381,1299,493],{"class":452},[381,1301,496],{"class":387},[381,1303,650],{"class":452},[381,1305,496],{"class":387},[381,1307,499],{"class":452},[381,1309,496],{"class":387},[381,1311,508],{"class":452},[381,1313,511],{"class":387},[381,1315,1317],{"class":383,"line":1316},40,[381,1318,517],{"class":387},[381,1320,1322],{"class":383,"line":1321},41,[381,1323,412],{"class":387},[381,1325,1327,1329,1331,1333,1335,1337,1340,1342],{"class":383,"line":1326},42,[381,1328,418],{"class":387},[381,1330,530],{"class":421},[381,1332,400],{"class":387},[381,1334,403],{"class":387},[381,1336,429],{"class":387},[381,1338,1339],{"class":432},"Internal Use Only - Manufacturing Co.",[381,1341,400],{"class":387},[381,1343,438],{"class":387},[381,1345,1347,1349,1351,1353,1355,1357,1359,1361],{"class":383,"line":1346},43,[381,1348,418],{"class":387},[381,1350,185],{"class":421},[381,1352,400],{"class":387},[381,1354,403],{"class":387},[381,1356,429],{"class":387},[381,1358,260],{"class":432},[381,1360,400],{"class":387},[381,1362,438],{"class":387},[381,1364,1366,1368,1370,1372,1374,1376,1378,1380],{"class":383,"line":1365},44,[381,1367,418],{"class":387},[381,1369,335],{"class":421},[381,1371,400],{"class":387},[381,1373,403],{"class":387},[381,1375,429],{"class":387},[381,1377,471],{"class":432},[381,1379,400],{"class":387},[381,1381,438],{"class":387},[381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409],{"class":383,"line":1384},45,[381,1386,418],{"class":387},[381,1388,483],{"class":421},[381,1390,400],{"class":387},[381,1392,403],{"class":387},[381,1394,490],{"class":387},[381,1396,493],{"class":452},[381,1398,496],{"class":387},[381,1400,508],{"class":452},[381,1402,496],{"class":387},[381,1404,499],{"class":452},[381,1406,496],{"class":387},[381,1408,499],{"class":452},[381,1410,511],{"class":387},[381,1412,1414],{"class":383,"line":1413},46,[381,1415,1416],{"class":387},"    }\n",[381,1418,1420],{"class":383,"line":1419},47,[381,1421,1422],{"class":387},"  ],\n",[381,1424,1426,1428,1431,1433,1435],{"class":383,"line":1425},48,[381,1427,394],{"class":387},[381,1429,1430],{"class":397},"styles",[381,1432,400],{"class":387},[381,1434,403],{"class":387},[381,1436,704],{"class":387},[381,1438,1440,1443,1445,1447,1449],{"class":383,"line":1439},49,[381,1441,1442],{"class":387},"    \"",[381,1444,245],{"class":421},[381,1446,400],{"class":387},[381,1448,403],{"class":387},[381,1450,704],{"class":387},[381,1452,1454,1456,1458,1460,1462,1464],{"class":383,"line":1453},50,[381,1455,418],{"class":387},[381,1457,1255],{"class":452},[381,1459,400],{"class":387},[381,1461,403],{"class":387},[381,1463,508],{"class":452},[381,1465,438],{"class":387},[381,1467,1469,1471,1474,1476,1478],{"class":383,"line":1468},51,[381,1470,418],{"class":387},[381,1472,1473],{"class":452},"bold",[381,1475,400],{"class":387},[381,1477,403],{"class":387},[381,1479,1480],{"class":387}," true,\n",[381,1482,1484,1486,1488,1490,1492,1494,1496,1498],{"class":383,"line":1483},52,[381,1485,418],{"class":387},[381,1487,335],{"class":452},[381,1489,400],{"class":387},[381,1491,403],{"class":387},[381,1493,429],{"class":387},[381,1495,471],{"class":432},[381,1497,400],{"class":387},[381,1499,438],{"class":387},[381,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527],{"class":383,"line":1502},53,[381,1504,418],{"class":387},[381,1506,483],{"class":452},[381,1508,400],{"class":387},[381,1510,403],{"class":387},[381,1512,490],{"class":387},[381,1514,493],{"class":452},[381,1516,496],{"class":387},[381,1518,508],{"class":452},[381,1520,496],{"class":387},[381,1522,499],{"class":452},[381,1524,496],{"class":387},[381,1526,650],{"class":452},[381,1528,511],{"class":387},[381,1530,1532],{"class":383,"line":1531},54,[381,1533,517],{"class":387},[381,1535,1537,1539,1541,1543,1545],{"class":383,"line":1536},55,[381,1538,1442],{"class":387},[381,1540,607],{"class":421},[381,1542,400],{"class":387},[381,1544,403],{"class":387},[381,1546,704],{"class":387},[381,1548,1550,1552,1554,1556,1558,1561],{"class":383,"line":1549},56,[381,1551,418],{"class":387},[381,1553,1255],{"class":452},[381,1555,400],{"class":387},[381,1557,403],{"class":387},[381,1559,1560],{"class":452}," 14",[381,1562,438],{"class":387},[381,1564,1566,1568,1571,1573,1575],{"class":383,"line":1565},57,[381,1567,418],{"class":387},[381,1569,1570],{"class":452},"italics",[381,1572,400],{"class":387},[381,1574,403],{"class":387},[381,1576,1480],{"class":387},[381,1578,1580,1582,1585,1587,1589,1591,1594,1596],{"class":383,"line":1579},58,[381,1581,418],{"class":387},[381,1583,1584],{"class":452},"color",[381,1586,400],{"class":387},[381,1588,403],{"class":387},[381,1590,429],{"class":387},[381,1592,1593],{"class":432},"grey",[381,1595,400],{"class":387},[381,1597,438],{"class":387},[381,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625],{"class":383,"line":1600},59,[381,1602,418],{"class":387},[381,1604,483],{"class":452},[381,1606,400],{"class":387},[381,1608,403],{"class":387},[381,1610,490],{"class":387},[381,1612,493],{"class":452},[381,1614,496],{"class":387},[381,1616,650],{"class":452},[381,1618,496],{"class":387},[381,1620,499],{"class":452},[381,1622,496],{"class":387},[381,1624,508],{"class":452},[381,1626,511],{"class":387},[381,1628,1630],{"class":383,"line":1629},60,[381,1631,517],{"class":387},[381,1633,1635,1637,1639,1641,1643],{"class":383,"line":1634},61,[381,1636,1442],{"class":387},[381,1638,260],{"class":421},[381,1640,400],{"class":387},[381,1642,403],{"class":387},[381,1644,704],{"class":387},[381,1646,1648,1650,1652,1654,1656,1658],{"class":383,"line":1647},62,[381,1649,418],{"class":387},[381,1651,1255],{"class":452},[381,1653,400],{"class":387},[381,1655,403],{"class":387},[381,1657,650],{"class":452},[381,1659,438],{"class":387},[381,1661,1663,1665,1667,1669,1671,1673,1675],{"class":383,"line":1662},63,[381,1664,418],{"class":387},[381,1666,1584],{"class":452},[381,1668,400],{"class":387},[381,1670,403],{"class":387},[381,1672,429],{"class":387},[381,1674,1593],{"class":432},[381,1676,561],{"class":387},[381,1678,1680],{"class":383,"line":1679},64,[381,1681,1416],{"class":387},[381,1683,1685],{"class":383,"line":1684},65,[381,1686,1687],{"class":387},"  },\n",[381,1689,1691,1693,1695,1697,1699,1701,1704,1706],{"class":383,"line":1690},66,[381,1692,394],{"class":387},[381,1694,215],{"class":397},[381,1696,400],{"class":387},[381,1698,403],{"class":387},[381,1700,429],{"class":387},[381,1702,1703],{"class":432},"A4",[381,1705,400],{"class":387},[381,1707,438],{"class":387},[381,1709,1711,1713,1715,1717,1719,1721,1724,1726,1729,1731,1734,1736,1738],{"class":383,"line":1710},67,[381,1712,394],{"class":387},[381,1714,230],{"class":397},[381,1716,400],{"class":387},[381,1718,403],{"class":387},[381,1720,490],{"class":387},[381,1722,1723],{"class":452},"40",[381,1725,496],{"class":387},[381,1727,1728],{"class":452}," 60",[381,1730,496],{"class":387},[381,1732,1733],{"class":452}," 40",[381,1735,496],{"class":387},[381,1737,1728],{"class":452},[381,1739,511],{"class":387},[381,1741,1743],{"class":383,"line":1742},68,[381,1744,1745],{"class":387},"}\n",[12,1747,1748],{},"This example creates a simple PDF featuring a centered logo, a title, a subtitle, a table with a light horizontal line layout, a paragraph of text, and a footer at the end. The following screenshot shows how it looks. You can customize it by adjusting the styles, layout, and content.",[12,1750,1751,1756],{},[1752,1753],"img",{"alt":1754,"dataZoomable":377,"src":1755},"Example pdf result","\u002Fblog\u002F2025\u002F05\u002Fimages\u002Fexample-pdf.png",[1757,1758,1754],"em",{},[74,1760,1762],{"id":1761},"step-3-creating-a-flow-to-generate-a-pdf","Step 3: Creating a Flow to Generate a PDF",[12,1764,1765],{},"Let's learn how to generate a PDF using dynamic inputs. For this, we’ll use the same example PDF report shown earlier, but this time, we’ll replace the hardcoded values with dynamic input data.",[88,1767,1768],{},[30,1769,1770],{},"For this guide's practical example, we will use the following SQLite flow that generates simulated production data. If you don't have the data source, you can import the flow below to follow along. After importing, deploy the flow and click the Inject node button to generate and insert the data.",[12,1772,1773],{},"When generating PDFs for your specific data, start by creating a flow to collect the information you want in the report. This data can come from sensors, databases, APIs, or even manual inputs.",[1775,1776,1778],"render-flow",{":height":1777},"300",[372,1779,1781],{"className":374,"code":1780,"language":376,"meta":377,"style":377},"[{\"id\":\"1e73fef718bb4876\",\"type\":\"group\",\"z\":\"b37428694e90b2c5\",\"style\":{\"stroke\":\"#b2b3bd\",\"stroke-opacity\":\"1\",\"fill\":\"#f2f3fb\",\"fill-opacity\":\"0.5\",\"label\":true,\"label-position\":\"nw\",\"color\":\"#32333b\"},\"nodes\":[\"5169b96ad66dcff6\",\"b75fde37ea431d84\",\"a571bbd7b0c0cb25\"],\"x\":14,\"y\":59,\"w\":812,\"h\":82},{\"id\":\"5169b96ad66dcff6\",\"type\":\"inject\",\"z\":\"b37428694e90b2c5\",\"g\":\"1e73fef718bb4876\",\"name\":\"Create Table\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":130,\"y\":100,\"wires\":[[\"b75fde37ea431d84\"]]},{\"id\":\"b75fde37ea431d84\",\"type\":\"sqlite\",\"z\":\"b37428694e90b2c5\",\"g\":\"1e73fef718bb4876\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"fixed\",\"sql\":\"CREATE TABLE IF NOT EXISTS production_report (\\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\\n    date TEXT NOT NULL,\\n    shift TEXT NOT NULL,\\n    product TEXT NOT NULL,\\n    units_produced INTEGER NOT NULL,\\n    defective_units INTEGER NOT NULL,\\n    operator TEXT NOT NULL\\n);\",\"name\":\"\",\"x\":440,\"y\":100,\"wires\":[[\"a571bbd7b0c0cb25\"]]},{\"id\":\"a571bbd7b0c0cb25\",\"type\":\"debug\",\"z\":\"b37428694e90b2c5\",\"g\":\"1e73fef718bb4876\",\"name\":\"debug 2\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":720,\"y\":100,\"wires\":[]},{\"id\":\"1ae6d7f7fdb60191\",\"type\":\"sqlitedb\",\"db\":\"productiondata.sqlite\",\"mode\":\"RWC\"},{\"id\":\"ccca7810c6b3db41\",\"type\":\"group\",\"z\":\"b37428694e90b2c5\",\"style\":{\"stroke\":\"#b2b3bd\",\"stroke-opacity\":\"1\",\"fill\":\"#f2f3fb\",\"fill-opacity\":\"0.5\",\"label\":true,\"label-position\":\"nw\",\"color\":\"#32333b\"},\"nodes\":[\"19ad08d3015ef8f2\",\"b706e4aa8a2d0740\",\"f32cdc1dd16b56b7\",\"3708b00ae17defa5\",\"c4464e3454a8805e\",\"2df338e18c9a60d5\"],\"x\":14,\"y\":179,\"w\":1332,\"h\":82},{\"id\":\"19ad08d3015ef8f2\",\"type\":\"sqlite\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"prepared\",\"sql\":\"INSERT INTO production_report (\\n    date,\\n    shift,\\n    product,\\n    units_produced,\\n    defective_units,\\n    operator\\n) VALUES (\\n    $date,\\n    $shift,\\n    $product,\\n    $units_produced,\\n    $defective_units,\\n    $operator\\n);\\n\",\"name\":\"\",\"x\":1060,\"y\":220,\"wires\":[[\"2df338e18c9a60d5\"]]},{\"id\":\"b706e4aa8a2d0740\",\"type\":\"inject\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"name\":\"Click to generate and insert data\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":190,\"y\":220,\"wires\":[[\"f32cdc1dd16b56b7\"]]},{\"id\":\"f32cdc1dd16b56b7\",\"type\":\"function\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"name\":\"Generate Simulated Production Data\",\"func\":\"const products = [\\\"Widget A\\\", \\\"Widget B\\\", \\\"Gadget X\\\", \\\"Component Z\\\"];\\nconst operators = [\\\"John Matthews\\\", \\\"Sarah Lee\\\", \\\"Amit Kumar\\\", \\\"Rita Patel\\\"];\\nconst shifts = [\\\"A\\\", \\\"B\\\", \\\"C\\\"];\\n\\nfunction getRandomInt(min, max) {\\n    return Math.floor(Math.random() * (max - min + 1)) + min;\\n}\\n\\nconst data = [];\\n\\nfor (let i = 0; i \u003C 10; i++) {\\n    const date = new Date();\\n    date.setDate(date.getDate() - i); \u002F\u002F Last 10 days\\n\\n    data.push({\\n        date: date.toISOString().split('T')[0],\\n        shift: shifts[getRandomInt(0, shifts.length - 1)],\\n        product: products[getRandomInt(0, products.length - 1)],\\n        units_produced: getRandomInt(400, 600),\\n        defective_units: getRandomInt(0, 10),\\n        operator: operators[getRandomInt(0, operators.length - 1)]\\n    });\\n}\\n\\nmsg.payload = data;\\nreturn msg;\\n\",\"outputs\":1,\"timeout\":0,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"libs\":[],\"x\":490,\"y\":220,\"wires\":[[\"3708b00ae17defa5\"]]},{\"id\":\"3708b00ae17defa5\",\"type\":\"split\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"name\":\"\",\"splt\":\"\\\\n\",\"spltType\":\"str\",\"arraySplt\":1,\"arraySpltType\":\"len\",\"stream\":false,\"addname\":\"\",\"property\":\"payload\",\"x\":710,\"y\":220,\"wires\":[[\"c4464e3454a8805e\"]]},{\"id\":\"c4464e3454a8805e\",\"type\":\"change\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"params\",\"pt\":\"msg\",\"to\":\"{}\",\"tot\":\"json\"},{\"t\":\"set\",\"p\":\"params.$date\",\"pt\":\"msg\",\"to\":\"payload.date\",\"tot\":\"msg\"},{\"t\":\"set\",\"p\":\"params.$shift\",\"pt\":\"msg\",\"to\":\"payload.shift\",\"tot\":\"msg\"},{\"t\":\"set\",\"p\":\"params.$product\",\"pt\":\"msg\",\"to\":\"payload.product\",\"tot\":\"msg\"},{\"t\":\"set\",\"p\":\"params.$units_produced\",\"pt\":\"msg\",\"to\":\"payload.units_produced\",\"tot\":\"msg\"},{\"t\":\"set\",\"p\":\"params.$defective_units\",\"pt\":\"msg\",\"to\":\"payload.defective_units\",\"tot\":\"msg\"},{\"t\":\"set\",\"p\":\"params.$operator\",\"pt\":\"msg\",\"to\":\"payload.operator\",\"tot\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":860,\"y\":220,\"wires\":[[\"19ad08d3015ef8f2\"]]},{\"id\":\"2df338e18c9a60d5\",\"type\":\"debug\",\"z\":\"b37428694e90b2c5\",\"g\":\"ccca7810c6b3db41\",\"name\":\"debug 3\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1240,\"y\":220,\"wires\":[]}]\n",[54,1782,1783],{"__ignoreMap":377},[381,1784,1785,1788,1790,1793,1795,1797,1799,1802,1804,1806,1808,1811,1813,1815,1817,1820,1822,1824,1826,1829,1831,1833,1835,1838,1840,1842,1844,1846,1848,1851,1853,1856,1858,1860,1862,1865,1867,1869,1871,1874,1876,1878,1880,1883,1885,1887,1889,1892,1894,1896,1898,1901,1903,1905,1907,1910,1912,1914,1916,1919,1921,1923,1925,1928,1930,1933,1935,1938,1940,1942,1944,1947,1949,1951,1953,1955,1957,1959,1961,1964,1966,1969,1971,1974,1976,1979,1981,1984,1986,1988,1990,1993,1995,1997,1999,2002,2004,2007,2009,2012,2014,2016,2019,2021,2023,2026,2028,2030,2033,2035,2037,2040,2042,2044,2047,2049,2051,2054,2056,2058,2061,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2118,2120,2122,2124,2126,2128,2130,2132,2135,2137,2139,2141,2144,2146,2148,2150,2153,2155,2158,2160,2162,2164,2166,2168,2171,2173,2175,2177,2179,2181,2183,2185,2188,2190,2192,2194,2197,2199,2201,2203,2206,2208,2211,2213,2216,2218,2220,2223,2225,2227,2230,2232,2234,2236,2238,2240,2243,2245,2247,2249,2252,2254,2256,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2290,2292,2294,2296,2299,2301,2303,2305,2307,2309,2311,2314,2316,2318,2320,2322,2324,2327,2329,2331,2334,2336,2339,2341,2343,2345,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2418,2420,2422,2424,2427,2429,2431,2433,2436,2438,2440,2442,2445,2447,2449,2451,2454,2456,2458,2460,2463,2467,2470,2472,2475,2477,2480,2482,2485,2487,2490,2492,2495,2497,2500,2502,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2640,2642,2644,2646,2649,2651,2653,2655,2658,2660,2662,2664,2667,2669,2672,2674,2677,2679,2681,2683,2686,2688,2690,2692,2695,2697,2699,2701,2704,2706,2708,2710,2712,2714,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2792,2794,2796,2798,2801,2803,2805,2807,2810,2812,2814,2816,2819,2821,2823,2825,2828,2830,2832,2834,2836,2838,2840,2842,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3003,3006,3008,3010,3012,3015,3017,3019,3021,3024,3026,3028,3030,3033,3035,3037,3039,3042,3044,3046,3048,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3078,3080,3082,3084,3086,3088,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3198,3200,3202,3204,3206,3208,3210,3212,3215,3217,3220,3222,3225,3227,3230,3232,3235,3237,3240,3242,3245,3247,3250,3252,3255,3257,3260,3262,3265,3267,3270,3272,3275,3277,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3313,3315,3317,3319,3321,3323,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679,3681,3684,3686,3688,3690,3693,3695,3697,3699,3702,3705,3708,3710,3712,3714,3717,3719,3721,3723,3726,3728,3730,3732,3735,3737,3740,3742,3745,3747,3750,3752,3754,3756,3759,3761,3763,3765,3768,3770,3772,3774,3777,3779,3781,3783,3786,3788,3791,3793,3795,3797,3800,3802,3804,3806,3809,3811,3813,3816,3819,3821,3824,3826,3829,3831,3834,3836,3839,3841,3844,3846,3849,3851,3854,3856,3859,3861,3864,3866,3869,3871,3874,3876,3879,3881,3884,3886,3889,3891,3893,3895,3898,3900,3903,3905,3907,3909,3911,3914,3916,3918,3920,3922,3924,3927,3929,3931,3933,3935,3937,3940,3942,3944,3946,3948,3950,3953,3955,3957,3959,3961,3963,3966,3968,3970,3972,3974,3976,3979,3981,3984,3986,3988,3990,3992,3995,3997,3999,4001,4003,4005,4007,4009,4011,4013,4015,4017,4019,4021,4023,4025,4027,4029,4031,4033,4035,4037,4039,4041,4043,4045,4047,4049,4051,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072,4074,4076,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102,4104,4107,4109,4111,4113,4116,4119,4121,4123,4125,4128,4130,4132,4134,4136,4138,4140,4142,4145,4147,4149,4151,4153,4155,4158,4160,4162,4164,4167,4169,4171,4173,4176,4178,4180,4182,4185,4187,4189,4191,4193,4195,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216,4218,4221,4223,4225,4227,4229,4231,4233,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269,4271,4273,4275,4277,4280,4282,4284,4286,4288,4290,4292,4294,4296,4298,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330,4333,4335,4337,4339,4342,4344,4346,4348,4351,4353,4355,4357,4359,4361,4363,4365,4368,4370,4372,4374,4377,4379,4381,4383,4386,4388,4390,4392,4395,4397,4399,4401,4404,4406,4408,4410,4413,4415,4417,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437,4439,4441,4443,4445,4447,4449,4451,4454,4456,4458,4460,4462,4464,4466,4468,4470,4472,4474,4476,4478,4480,4482,4484,4487,4489,4491,4493,4495,4497,4499,4501,4503,4505,4507,4509,4511,4513,4515,4517,4519,4521,4523,4525,4527,4529,4531,4533,4536,4538,4540,4542,4544,4546,4548,4550,4552,4554,4556,4558,4560,4562,4564,4566,4569,4571,4573,4575,4577,4579,4581,4583,4585,4587,4589,4591,4593,4595,4597,4599,4601,4603,4605,4607,4609,4611,4613,4615,4618,4620,4622,4624,4626,4628,4630,4632,4634,4636,4638,4640,4642,4644,4646,4648,4651,4653,4655,4657,4659,4661,4663,4665,4667,4669,4671,4673,4675,4677,4679,4681,4683,4685,4687,4689,4691,4693,4695,4697,4700,4702,4704,4706,4708,4710,4712,4714,4716,4718,4720,4722,4724,4726,4728,4730,4733,4735,4737,4739,4741,4743,4745,4747,4749,4751,4753,4755,4757,4759,4761,4763,4765,4767,4769,4771,4773,4775,4777,4779,4782,4784,4786,4788,4790,4792,4794,4796,4798,4800,4802,4804,4806,4808,4810,4812,4815,4817,4819,4821,4823,4825,4827,4829,4831,4833,4835,4837,4839,4841,4843,4845,4847,4849,4851,4853,4855,4857,4859,4861,4864,4866,4868,4870,4872,4874,4876,4878,4880,4882,4884,4886,4888,4890,4892,4894,4897,4899,4901,4903,4905,4907,4909,4911,4913,4915,4917,4919,4922,4924,4926,4928,4930,4932,4934,4936,4938,4940,4942,4944,4947,4949,4951,4953,4955,4957,4959,4961,4963,4965,4967,4969,4972,4974,4976,4978,4980,4982,4984,4987,4989,4991,4993,4995,4997,4999,5001,5003,5005,5007,5009,5011,5013,5015,5017,5019,5021,5023,5025,5027,5029,5031,5033,5035,5037,5039,5041,5043,5045,5047,5049,5051,5053,5055,5057,5059,5061,5063,5065,5067,5069,5071,5073,5075,5077,5079,5081,5083,5085,5087,5089,5091,5094,5096,5098,5100,5102,5104,5106,5108,5110,5112,5114,5116,5118,5120,5122,5124,5126,5128,5130,5132,5134,5136,5138,5140,5142,5144,5146,5148,5150,5152,5154,5156,5158,5160,5162,5164,5166,5168,5170,5172,5174,5176,5178,5180,5182,5185,5187,5189,5191,5193,5195,5197,5199,5201,5203,5205],{"class":383,"line":384},[381,1786,1787],{"class":387},"[{",[381,1789,400],{"class":387},[381,1791,1792],{"class":397},"id",[381,1794,400],{"class":387},[381,1796,403],{"class":387},[381,1798,400],{"class":387},[381,1800,1801],{"class":432},"1e73fef718bb4876",[381,1803,400],{"class":387},[381,1805,496],{"class":387},[381,1807,400],{"class":387},[381,1809,1810],{"class":397},"type",[381,1812,400],{"class":387},[381,1814,403],{"class":387},[381,1816,400],{"class":387},[381,1818,1819],{"class":432},"group",[381,1821,400],{"class":387},[381,1823,496],{"class":387},[381,1825,400],{"class":387},[381,1827,1828],{"class":397},"z",[381,1830,400],{"class":387},[381,1832,403],{"class":387},[381,1834,400],{"class":387},[381,1836,1837],{"class":432},"b37428694e90b2c5",[381,1839,400],{"class":387},[381,1841,496],{"class":387},[381,1843,400],{"class":387},[381,1845,185],{"class":397},[381,1847,400],{"class":387},[381,1849,1850],{"class":387},":{",[381,1852,400],{"class":387},[381,1854,1855],{"class":421},"stroke",[381,1857,400],{"class":387},[381,1859,403],{"class":387},[381,1861,400],{"class":387},[381,1863,1864],{"class":432},"#b2b3bd",[381,1866,400],{"class":387},[381,1868,496],{"class":387},[381,1870,400],{"class":387},[381,1872,1873],{"class":421},"stroke-opacity",[381,1875,400],{"class":387},[381,1877,403],{"class":387},[381,1879,400],{"class":387},[381,1881,1882],{"class":432},"1",[381,1884,400],{"class":387},[381,1886,496],{"class":387},[381,1888,400],{"class":387},[381,1890,1891],{"class":421},"fill",[381,1893,400],{"class":387},[381,1895,403],{"class":387},[381,1897,400],{"class":387},[381,1899,1900],{"class":432},"#f2f3fb",[381,1902,400],{"class":387},[381,1904,496],{"class":387},[381,1906,400],{"class":387},[381,1908,1909],{"class":421},"fill-opacity",[381,1911,400],{"class":387},[381,1913,403],{"class":387},[381,1915,400],{"class":387},[381,1917,1918],{"class":432},"0.5",[381,1920,400],{"class":387},[381,1922,496],{"class":387},[381,1924,400],{"class":387},[381,1926,1927],{"class":421},"label",[381,1929,400],{"class":387},[381,1931,1932],{"class":387},":true,",[381,1934,400],{"class":387},[381,1936,1937],{"class":421},"label-position",[381,1939,400],{"class":387},[381,1941,403],{"class":387},[381,1943,400],{"class":387},[381,1945,1946],{"class":432},"nw",[381,1948,400],{"class":387},[381,1950,496],{"class":387},[381,1952,400],{"class":387},[381,1954,1584],{"class":421},[381,1956,400],{"class":387},[381,1958,403],{"class":387},[381,1960,400],{"class":387},[381,1962,1963],{"class":432},"#32333b",[381,1965,400],{"class":387},[381,1967,1968],{"class":387},"},",[381,1970,400],{"class":387},[381,1972,1973],{"class":397},"nodes",[381,1975,400],{"class":387},[381,1977,1978],{"class":387},":[",[381,1980,400],{"class":387},[381,1982,1983],{"class":432},"5169b96ad66dcff6",[381,1985,400],{"class":387},[381,1987,496],{"class":387},[381,1989,400],{"class":387},[381,1991,1992],{"class":432},"b75fde37ea431d84",[381,1994,400],{"class":387},[381,1996,496],{"class":387},[381,1998,400],{"class":387},[381,2000,2001],{"class":432},"a571bbd7b0c0cb25",[381,2003,400],{"class":387},[381,2005,2006],{"class":387},"],",[381,2008,400],{"class":387},[381,2010,2011],{"class":397},"x",[381,2013,400],{"class":387},[381,2015,403],{"class":387},[381,2017,2018],{"class":452},"14",[381,2020,496],{"class":387},[381,2022,400],{"class":387},[381,2024,2025],{"class":397},"y",[381,2027,400],{"class":387},[381,2029,403],{"class":387},[381,2031,2032],{"class":452},"59",[381,2034,496],{"class":387},[381,2036,400],{"class":387},[381,2038,2039],{"class":397},"w",[381,2041,400],{"class":387},[381,2043,403],{"class":387},[381,2045,2046],{"class":452},"812",[381,2048,496],{"class":387},[381,2050,400],{"class":387},[381,2052,2053],{"class":397},"h",[381,2055,400],{"class":387},[381,2057,403],{"class":387},[381,2059,2060],{"class":452},"82",[381,2062,2063],{"class":387},"},{",[381,2065,400],{"class":387},[381,2067,1792],{"class":397},[381,2069,400],{"class":387},[381,2071,403],{"class":387},[381,2073,400],{"class":387},[381,2075,1983],{"class":432},[381,2077,400],{"class":387},[381,2079,496],{"class":387},[381,2081,400],{"class":387},[381,2083,1810],{"class":397},[381,2085,400],{"class":387},[381,2087,403],{"class":387},[381,2089,400],{"class":387},[381,2091,2092],{"class":432},"inject",[381,2094,400],{"class":387},[381,2096,496],{"class":387},[381,2098,400],{"class":387},[381,2100,1828],{"class":397},[381,2102,400],{"class":387},[381,2104,403],{"class":387},[381,2106,400],{"class":387},[381,2108,1837],{"class":432},[381,2110,400],{"class":387},[381,2112,496],{"class":387},[381,2114,400],{"class":387},[381,2116,2117],{"class":397},"g",[381,2119,400],{"class":387},[381,2121,403],{"class":387},[381,2123,400],{"class":387},[381,2125,1801],{"class":432},[381,2127,400],{"class":387},[381,2129,496],{"class":387},[381,2131,400],{"class":387},[381,2133,2134],{"class":397},"name",[381,2136,400],{"class":387},[381,2138,403],{"class":387},[381,2140,400],{"class":387},[381,2142,2143],{"class":432},"Create Table",[381,2145,400],{"class":387},[381,2147,496],{"class":387},[381,2149,400],{"class":387},[381,2151,2152],{"class":397},"props",[381,2154,400],{"class":387},[381,2156,2157],{"class":387},":[{",[381,2159,400],{"class":387},[381,2161,12],{"class":421},[381,2163,400],{"class":387},[381,2165,403],{"class":387},[381,2167,400],{"class":387},[381,2169,2170],{"class":432},"payload",[381,2172,400],{"class":387},[381,2174,2063],{"class":387},[381,2176,400],{"class":387},[381,2178,12],{"class":421},[381,2180,400],{"class":387},[381,2182,403],{"class":387},[381,2184,400],{"class":387},[381,2186,2187],{"class":432},"topic",[381,2189,400],{"class":387},[381,2191,496],{"class":387},[381,2193,400],{"class":387},[381,2195,2196],{"class":421},"vt",[381,2198,400],{"class":387},[381,2200,403],{"class":387},[381,2202,400],{"class":387},[381,2204,2205],{"class":432},"str",[381,2207,400],{"class":387},[381,2209,2210],{"class":387},"}],",[381,2212,400],{"class":387},[381,2214,2215],{"class":397},"repeat",[381,2217,400],{"class":387},[381,2219,403],{"class":387},[381,2221,2222],{"class":387},"\"\"",[381,2224,496],{"class":387},[381,2226,400],{"class":387},[381,2228,2229],{"class":397},"crontab",[381,2231,400],{"class":387},[381,2233,403],{"class":387},[381,2235,2222],{"class":387},[381,2237,496],{"class":387},[381,2239,400],{"class":387},[381,2241,2242],{"class":397},"once",[381,2244,400],{"class":387},[381,2246,1932],{"class":387},[381,2248,400],{"class":387},[381,2250,2251],{"class":397},"onceDelay",[381,2253,400],{"class":387},[381,2255,403],{"class":387},[381,2257,2258],{"class":452},"0.1",[381,2260,496],{"class":387},[381,2262,400],{"class":387},[381,2264,2187],{"class":397},[381,2266,400],{"class":387},[381,2268,403],{"class":387},[381,2270,2222],{"class":387},[381,2272,496],{"class":387},[381,2274,400],{"class":387},[381,2276,2170],{"class":397},[381,2278,400],{"class":387},[381,2280,403],{"class":387},[381,2282,2222],{"class":387},[381,2284,496],{"class":387},[381,2286,400],{"class":387},[381,2288,2289],{"class":397},"payloadType",[381,2291,400],{"class":387},[381,2293,403],{"class":387},[381,2295,400],{"class":387},[381,2297,2298],{"class":432},"date",[381,2300,400],{"class":387},[381,2302,496],{"class":387},[381,2304,400],{"class":387},[381,2306,2011],{"class":397},[381,2308,400],{"class":387},[381,2310,403],{"class":387},[381,2312,2313],{"class":452},"130",[381,2315,496],{"class":387},[381,2317,400],{"class":387},[381,2319,2025],{"class":397},[381,2321,400],{"class":387},[381,2323,403],{"class":387},[381,2325,2326],{"class":452},"100",[381,2328,496],{"class":387},[381,2330,400],{"class":387},[381,2332,2333],{"class":397},"wires",[381,2335,400],{"class":387},[381,2337,2338],{"class":387},":[[",[381,2340,400],{"class":387},[381,2342,1992],{"class":432},[381,2344,400],{"class":387},[381,2346,2347],{"class":387},"]]},{",[381,2349,400],{"class":387},[381,2351,1792],{"class":397},[381,2353,400],{"class":387},[381,2355,403],{"class":387},[381,2357,400],{"class":387},[381,2359,1992],{"class":432},[381,2361,400],{"class":387},[381,2363,496],{"class":387},[381,2365,400],{"class":387},[381,2367,1810],{"class":397},[381,2369,400],{"class":387},[381,2371,403],{"class":387},[381,2373,400],{"class":387},[381,2375,2376],{"class":432},"sqlite",[381,2378,400],{"class":387},[381,2380,496],{"class":387},[381,2382,400],{"class":387},[381,2384,1828],{"class":397},[381,2386,400],{"class":387},[381,2388,403],{"class":387},[381,2390,400],{"class":387},[381,2392,1837],{"class":432},[381,2394,400],{"class":387},[381,2396,496],{"class":387},[381,2398,400],{"class":387},[381,2400,2117],{"class":397},[381,2402,400],{"class":387},[381,2404,403],{"class":387},[381,2406,400],{"class":387},[381,2408,1801],{"class":432},[381,2410,400],{"class":387},[381,2412,496],{"class":387},[381,2414,400],{"class":387},[381,2416,2417],{"class":397},"mydb",[381,2419,400],{"class":387},[381,2421,403],{"class":387},[381,2423,400],{"class":387},[381,2425,2426],{"class":432},"1ae6d7f7fdb60191",[381,2428,400],{"class":387},[381,2430,496],{"class":387},[381,2432,400],{"class":387},[381,2434,2435],{"class":397},"sqlquery",[381,2437,400],{"class":387},[381,2439,403],{"class":387},[381,2441,400],{"class":387},[381,2443,2444],{"class":432},"fixed",[381,2446,400],{"class":387},[381,2448,496],{"class":387},[381,2450,400],{"class":387},[381,2452,2453],{"class":397},"sql",[381,2455,400],{"class":387},[381,2457,403],{"class":387},[381,2459,400],{"class":387},[381,2461,2462],{"class":432},"CREATE TABLE IF NOT EXISTS production_report (",[381,2464,2466],{"class":2465},"sTEyZ","\\n",[381,2468,2469],{"class":432},"    id INTEGER PRIMARY KEY AUTOINCREMENT,",[381,2471,2466],{"class":2465},[381,2473,2474],{"class":432},"    date TEXT NOT NULL,",[381,2476,2466],{"class":2465},[381,2478,2479],{"class":432},"    shift TEXT NOT NULL,",[381,2481,2466],{"class":2465},[381,2483,2484],{"class":432},"    product TEXT NOT NULL,",[381,2486,2466],{"class":2465},[381,2488,2489],{"class":432},"    units_produced INTEGER NOT NULL,",[381,2491,2466],{"class":2465},[381,2493,2494],{"class":432},"    defective_units INTEGER NOT NULL,",[381,2496,2466],{"class":2465},[381,2498,2499],{"class":432},"    operator TEXT NOT NULL",[381,2501,2466],{"class":2465},[381,2503,2504],{"class":432},");",[381,2506,400],{"class":387},[381,2508,496],{"class":387},[381,2510,400],{"class":387},[381,2512,2134],{"class":397},[381,2514,400],{"class":387},[381,2516,403],{"class":387},[381,2518,2222],{"class":387},[381,2520,496],{"class":387},[381,2522,400],{"class":387},[381,2524,2011],{"class":397},[381,2526,400],{"class":387},[381,2528,403],{"class":387},[381,2530,2531],{"class":452},"440",[381,2533,496],{"class":387},[381,2535,400],{"class":387},[381,2537,2025],{"class":397},[381,2539,400],{"class":387},[381,2541,403],{"class":387},[381,2543,2326],{"class":452},[381,2545,496],{"class":387},[381,2547,400],{"class":387},[381,2549,2333],{"class":397},[381,2551,400],{"class":387},[381,2553,2338],{"class":387},[381,2555,400],{"class":387},[381,2557,2001],{"class":432},[381,2559,400],{"class":387},[381,2561,2347],{"class":387},[381,2563,400],{"class":387},[381,2565,1792],{"class":397},[381,2567,400],{"class":387},[381,2569,403],{"class":387},[381,2571,400],{"class":387},[381,2573,2001],{"class":432},[381,2575,400],{"class":387},[381,2577,496],{"class":387},[381,2579,400],{"class":387},[381,2581,1810],{"class":397},[381,2583,400],{"class":387},[381,2585,403],{"class":387},[381,2587,400],{"class":387},[381,2589,2590],{"class":432},"debug",[381,2592,400],{"class":387},[381,2594,496],{"class":387},[381,2596,400],{"class":387},[381,2598,1828],{"class":397},[381,2600,400],{"class":387},[381,2602,403],{"class":387},[381,2604,400],{"class":387},[381,2606,1837],{"class":432},[381,2608,400],{"class":387},[381,2610,496],{"class":387},[381,2612,400],{"class":387},[381,2614,2117],{"class":397},[381,2616,400],{"class":387},[381,2618,403],{"class":387},[381,2620,400],{"class":387},[381,2622,1801],{"class":432},[381,2624,400],{"class":387},[381,2626,496],{"class":387},[381,2628,400],{"class":387},[381,2630,2134],{"class":397},[381,2632,400],{"class":387},[381,2634,403],{"class":387},[381,2636,400],{"class":387},[381,2638,2639],{"class":432},"debug 2",[381,2641,400],{"class":387},[381,2643,496],{"class":387},[381,2645,400],{"class":387},[381,2647,2648],{"class":397},"active",[381,2650,400],{"class":387},[381,2652,1932],{"class":387},[381,2654,400],{"class":387},[381,2656,2657],{"class":397},"tosidebar",[381,2659,400],{"class":387},[381,2661,1932],{"class":387},[381,2663,400],{"class":387},[381,2665,2666],{"class":397},"console",[381,2668,400],{"class":387},[381,2670,2671],{"class":387},":false,",[381,2673,400],{"class":387},[381,2675,2676],{"class":397},"tostatus",[381,2678,400],{"class":387},[381,2680,2671],{"class":387},[381,2682,400],{"class":387},[381,2684,2685],{"class":397},"complete",[381,2687,400],{"class":387},[381,2689,403],{"class":387},[381,2691,400],{"class":387},[381,2693,2694],{"class":432},"false",[381,2696,400],{"class":387},[381,2698,496],{"class":387},[381,2700,400],{"class":387},[381,2702,2703],{"class":397},"statusVal",[381,2705,400],{"class":387},[381,2707,403],{"class":387},[381,2709,2222],{"class":387},[381,2711,496],{"class":387},[381,2713,400],{"class":387},[381,2715,2716],{"class":397},"statusType",[381,2718,400],{"class":387},[381,2720,403],{"class":387},[381,2722,400],{"class":387},[381,2724,741],{"class":432},[381,2726,400],{"class":387},[381,2728,496],{"class":387},[381,2730,400],{"class":387},[381,2732,2011],{"class":397},[381,2734,400],{"class":387},[381,2736,403],{"class":387},[381,2738,2739],{"class":452},"720",[381,2741,496],{"class":387},[381,2743,400],{"class":387},[381,2745,2025],{"class":397},[381,2747,400],{"class":387},[381,2749,403],{"class":387},[381,2751,2326],{"class":452},[381,2753,496],{"class":387},[381,2755,400],{"class":387},[381,2757,2333],{"class":397},[381,2759,400],{"class":387},[381,2761,2762],{"class":387},":[]},{",[381,2764,400],{"class":387},[381,2766,1792],{"class":397},[381,2768,400],{"class":387},[381,2770,403],{"class":387},[381,2772,400],{"class":387},[381,2774,2426],{"class":432},[381,2776,400],{"class":387},[381,2778,496],{"class":387},[381,2780,400],{"class":387},[381,2782,1810],{"class":397},[381,2784,400],{"class":387},[381,2786,403],{"class":387},[381,2788,400],{"class":387},[381,2790,2791],{"class":432},"sqlitedb",[381,2793,400],{"class":387},[381,2795,496],{"class":387},[381,2797,400],{"class":387},[381,2799,2800],{"class":397},"db",[381,2802,400],{"class":387},[381,2804,403],{"class":387},[381,2806,400],{"class":387},[381,2808,2809],{"class":432},"productiondata.sqlite",[381,2811,400],{"class":387},[381,2813,496],{"class":387},[381,2815,400],{"class":387},[381,2817,2818],{"class":397},"mode",[381,2820,400],{"class":387},[381,2822,403],{"class":387},[381,2824,400],{"class":387},[381,2826,2827],{"class":432},"RWC",[381,2829,400],{"class":387},[381,2831,2063],{"class":387},[381,2833,400],{"class":387},[381,2835,1792],{"class":397},[381,2837,400],{"class":387},[381,2839,403],{"class":387},[381,2841,400],{"class":387},[381,2843,2844],{"class":432},"ccca7810c6b3db41",[381,2846,400],{"class":387},[381,2848,496],{"class":387},[381,2850,400],{"class":387},[381,2852,1810],{"class":397},[381,2854,400],{"class":387},[381,2856,403],{"class":387},[381,2858,400],{"class":387},[381,2860,1819],{"class":432},[381,2862,400],{"class":387},[381,2864,496],{"class":387},[381,2866,400],{"class":387},[381,2868,1828],{"class":397},[381,2870,400],{"class":387},[381,2872,403],{"class":387},[381,2874,400],{"class":387},[381,2876,1837],{"class":432},[381,2878,400],{"class":387},[381,2880,496],{"class":387},[381,2882,400],{"class":387},[381,2884,185],{"class":397},[381,2886,400],{"class":387},[381,2888,1850],{"class":387},[381,2890,400],{"class":387},[381,2892,1855],{"class":421},[381,2894,400],{"class":387},[381,2896,403],{"class":387},[381,2898,400],{"class":387},[381,2900,1864],{"class":432},[381,2902,400],{"class":387},[381,2904,496],{"class":387},[381,2906,400],{"class":387},[381,2908,1873],{"class":421},[381,2910,400],{"class":387},[381,2912,403],{"class":387},[381,2914,400],{"class":387},[381,2916,1882],{"class":432},[381,2918,400],{"class":387},[381,2920,496],{"class":387},[381,2922,400],{"class":387},[381,2924,1891],{"class":421},[381,2926,400],{"class":387},[381,2928,403],{"class":387},[381,2930,400],{"class":387},[381,2932,1900],{"class":432},[381,2934,400],{"class":387},[381,2936,496],{"class":387},[381,2938,400],{"class":387},[381,2940,1909],{"class":421},[381,2942,400],{"class":387},[381,2944,403],{"class":387},[381,2946,400],{"class":387},[381,2948,1918],{"class":432},[381,2950,400],{"class":387},[381,2952,496],{"class":387},[381,2954,400],{"class":387},[381,2956,1927],{"class":421},[381,2958,400],{"class":387},[381,2960,1932],{"class":387},[381,2962,400],{"class":387},[381,2964,1937],{"class":421},[381,2966,400],{"class":387},[381,2968,403],{"class":387},[381,2970,400],{"class":387},[381,2972,1946],{"class":432},[381,2974,400],{"class":387},[381,2976,496],{"class":387},[381,2978,400],{"class":387},[381,2980,1584],{"class":421},[381,2982,400],{"class":387},[381,2984,403],{"class":387},[381,2986,400],{"class":387},[381,2988,1963],{"class":432},[381,2990,400],{"class":387},[381,2992,1968],{"class":387},[381,2994,400],{"class":387},[381,2996,1973],{"class":397},[381,2998,400],{"class":387},[381,3000,1978],{"class":387},[381,3002,400],{"class":387},[381,3004,3005],{"class":432},"19ad08d3015ef8f2",[381,3007,400],{"class":387},[381,3009,496],{"class":387},[381,3011,400],{"class":387},[381,3013,3014],{"class":432},"b706e4aa8a2d0740",[381,3016,400],{"class":387},[381,3018,496],{"class":387},[381,3020,400],{"class":387},[381,3022,3023],{"class":432},"f32cdc1dd16b56b7",[381,3025,400],{"class":387},[381,3027,496],{"class":387},[381,3029,400],{"class":387},[381,3031,3032],{"class":432},"3708b00ae17defa5",[381,3034,400],{"class":387},[381,3036,496],{"class":387},[381,3038,400],{"class":387},[381,3040,3041],{"class":432},"c4464e3454a8805e",[381,3043,400],{"class":387},[381,3045,496],{"class":387},[381,3047,400],{"class":387},[381,3049,3050],{"class":432},"2df338e18c9a60d5",[381,3052,400],{"class":387},[381,3054,2006],{"class":387},[381,3056,400],{"class":387},[381,3058,2011],{"class":397},[381,3060,400],{"class":387},[381,3062,403],{"class":387},[381,3064,2018],{"class":452},[381,3066,496],{"class":387},[381,3068,400],{"class":387},[381,3070,2025],{"class":397},[381,3072,400],{"class":387},[381,3074,403],{"class":387},[381,3076,3077],{"class":452},"179",[381,3079,496],{"class":387},[381,3081,400],{"class":387},[381,3083,2039],{"class":397},[381,3085,400],{"class":387},[381,3087,403],{"class":387},[381,3089,3090],{"class":452},"1332",[381,3092,496],{"class":387},[381,3094,400],{"class":387},[381,3096,2053],{"class":397},[381,3098,400],{"class":387},[381,3100,403],{"class":387},[381,3102,2060],{"class":452},[381,3104,2063],{"class":387},[381,3106,400],{"class":387},[381,3108,1792],{"class":397},[381,3110,400],{"class":387},[381,3112,403],{"class":387},[381,3114,400],{"class":387},[381,3116,3005],{"class":432},[381,3118,400],{"class":387},[381,3120,496],{"class":387},[381,3122,400],{"class":387},[381,3124,1810],{"class":397},[381,3126,400],{"class":387},[381,3128,403],{"class":387},[381,3130,400],{"class":387},[381,3132,2376],{"class":432},[381,3134,400],{"class":387},[381,3136,496],{"class":387},[381,3138,400],{"class":387},[381,3140,1828],{"class":397},[381,3142,400],{"class":387},[381,3144,403],{"class":387},[381,3146,400],{"class":387},[381,3148,1837],{"class":432},[381,3150,400],{"class":387},[381,3152,496],{"class":387},[381,3154,400],{"class":387},[381,3156,2117],{"class":397},[381,3158,400],{"class":387},[381,3160,403],{"class":387},[381,3162,400],{"class":387},[381,3164,2844],{"class":432},[381,3166,400],{"class":387},[381,3168,496],{"class":387},[381,3170,400],{"class":387},[381,3172,2417],{"class":397},[381,3174,400],{"class":387},[381,3176,403],{"class":387},[381,3178,400],{"class":387},[381,3180,2426],{"class":432},[381,3182,400],{"class":387},[381,3184,496],{"class":387},[381,3186,400],{"class":387},[381,3188,2435],{"class":397},[381,3190,400],{"class":387},[381,3192,403],{"class":387},[381,3194,400],{"class":387},[381,3196,3197],{"class":432},"prepared",[381,3199,400],{"class":387},[381,3201,496],{"class":387},[381,3203,400],{"class":387},[381,3205,2453],{"class":397},[381,3207,400],{"class":387},[381,3209,403],{"class":387},[381,3211,400],{"class":387},[381,3213,3214],{"class":432},"INSERT INTO production_report (",[381,3216,2466],{"class":2465},[381,3218,3219],{"class":432},"    date,",[381,3221,2466],{"class":2465},[381,3223,3224],{"class":432},"    shift,",[381,3226,2466],{"class":2465},[381,3228,3229],{"class":432},"    product,",[381,3231,2466],{"class":2465},[381,3233,3234],{"class":432},"    units_produced,",[381,3236,2466],{"class":2465},[381,3238,3239],{"class":432},"    defective_units,",[381,3241,2466],{"class":2465},[381,3243,3244],{"class":432},"    operator",[381,3246,2466],{"class":2465},[381,3248,3249],{"class":432},") VALUES (",[381,3251,2466],{"class":2465},[381,3253,3254],{"class":432},"    $date,",[381,3256,2466],{"class":2465},[381,3258,3259],{"class":432},"    $shift,",[381,3261,2466],{"class":2465},[381,3263,3264],{"class":432},"    $product,",[381,3266,2466],{"class":2465},[381,3268,3269],{"class":432},"    $units_produced,",[381,3271,2466],{"class":2465},[381,3273,3274],{"class":432},"    $defective_units,",[381,3276,2466],{"class":2465},[381,3278,3279],{"class":432},"    $operator",[381,3281,2466],{"class":2465},[381,3283,2504],{"class":432},[381,3285,2466],{"class":2465},[381,3287,400],{"class":387},[381,3289,496],{"class":387},[381,3291,400],{"class":387},[381,3293,2134],{"class":397},[381,3295,400],{"class":387},[381,3297,403],{"class":387},[381,3299,2222],{"class":387},[381,3301,496],{"class":387},[381,3303,400],{"class":387},[381,3305,2011],{"class":397},[381,3307,400],{"class":387},[381,3309,403],{"class":387},[381,3311,3312],{"class":452},"1060",[381,3314,496],{"class":387},[381,3316,400],{"class":387},[381,3318,2025],{"class":397},[381,3320,400],{"class":387},[381,3322,403],{"class":387},[381,3324,3325],{"class":452},"220",[381,3327,496],{"class":387},[381,3329,400],{"class":387},[381,3331,2333],{"class":397},[381,3333,400],{"class":387},[381,3335,2338],{"class":387},[381,3337,400],{"class":387},[381,3339,3050],{"class":432},[381,3341,400],{"class":387},[381,3343,2347],{"class":387},[381,3345,400],{"class":387},[381,3347,1792],{"class":397},[381,3349,400],{"class":387},[381,3351,403],{"class":387},[381,3353,400],{"class":387},[381,3355,3014],{"class":432},[381,3357,400],{"class":387},[381,3359,496],{"class":387},[381,3361,400],{"class":387},[381,3363,1810],{"class":397},[381,3365,400],{"class":387},[381,3367,403],{"class":387},[381,3369,400],{"class":387},[381,3371,2092],{"class":432},[381,3373,400],{"class":387},[381,3375,496],{"class":387},[381,3377,400],{"class":387},[381,3379,1828],{"class":397},[381,3381,400],{"class":387},[381,3383,403],{"class":387},[381,3385,400],{"class":387},[381,3387,1837],{"class":432},[381,3389,400],{"class":387},[381,3391,496],{"class":387},[381,3393,400],{"class":387},[381,3395,2117],{"class":397},[381,3397,400],{"class":387},[381,3399,403],{"class":387},[381,3401,400],{"class":387},[381,3403,2844],{"class":432},[381,3405,400],{"class":387},[381,3407,496],{"class":387},[381,3409,400],{"class":387},[381,3411,2134],{"class":397},[381,3413,400],{"class":387},[381,3415,403],{"class":387},[381,3417,400],{"class":387},[381,3419,3420],{"class":432},"Click to generate and insert data",[381,3422,400],{"class":387},[381,3424,496],{"class":387},[381,3426,400],{"class":387},[381,3428,2152],{"class":397},[381,3430,400],{"class":387},[381,3432,2157],{"class":387},[381,3434,400],{"class":387},[381,3436,12],{"class":421},[381,3438,400],{"class":387},[381,3440,403],{"class":387},[381,3442,400],{"class":387},[381,3444,2170],{"class":432},[381,3446,400],{"class":387},[381,3448,2063],{"class":387},[381,3450,400],{"class":387},[381,3452,12],{"class":421},[381,3454,400],{"class":387},[381,3456,403],{"class":387},[381,3458,400],{"class":387},[381,3460,2187],{"class":432},[381,3462,400],{"class":387},[381,3464,496],{"class":387},[381,3466,400],{"class":387},[381,3468,2196],{"class":421},[381,3470,400],{"class":387},[381,3472,403],{"class":387},[381,3474,400],{"class":387},[381,3476,2205],{"class":432},[381,3478,400],{"class":387},[381,3480,2210],{"class":387},[381,3482,400],{"class":387},[381,3484,2215],{"class":397},[381,3486,400],{"class":387},[381,3488,403],{"class":387},[381,3490,2222],{"class":387},[381,3492,496],{"class":387},[381,3494,400],{"class":387},[381,3496,2229],{"class":397},[381,3498,400],{"class":387},[381,3500,403],{"class":387},[381,3502,2222],{"class":387},[381,3504,496],{"class":387},[381,3506,400],{"class":387},[381,3508,2242],{"class":397},[381,3510,400],{"class":387},[381,3512,2671],{"class":387},[381,3514,400],{"class":387},[381,3516,2251],{"class":397},[381,3518,400],{"class":387},[381,3520,403],{"class":387},[381,3522,2258],{"class":452},[381,3524,496],{"class":387},[381,3526,400],{"class":387},[381,3528,2187],{"class":397},[381,3530,400],{"class":387},[381,3532,403],{"class":387},[381,3534,2222],{"class":387},[381,3536,496],{"class":387},[381,3538,400],{"class":387},[381,3540,2170],{"class":397},[381,3542,400],{"class":387},[381,3544,403],{"class":387},[381,3546,2222],{"class":387},[381,3548,496],{"class":387},[381,3550,400],{"class":387},[381,3552,2289],{"class":397},[381,3554,400],{"class":387},[381,3556,403],{"class":387},[381,3558,400],{"class":387},[381,3560,2298],{"class":432},[381,3562,400],{"class":387},[381,3564,496],{"class":387},[381,3566,400],{"class":387},[381,3568,2011],{"class":397},[381,3570,400],{"class":387},[381,3572,403],{"class":387},[381,3574,3575],{"class":452},"190",[381,3577,496],{"class":387},[381,3579,400],{"class":387},[381,3581,2025],{"class":397},[381,3583,400],{"class":387},[381,3585,403],{"class":387},[381,3587,3325],{"class":452},[381,3589,496],{"class":387},[381,3591,400],{"class":387},[381,3593,2333],{"class":397},[381,3595,400],{"class":387},[381,3597,2338],{"class":387},[381,3599,400],{"class":387},[381,3601,3023],{"class":432},[381,3603,400],{"class":387},[381,3605,2347],{"class":387},[381,3607,400],{"class":387},[381,3609,1792],{"class":397},[381,3611,400],{"class":387},[381,3613,403],{"class":387},[381,3615,400],{"class":387},[381,3617,3023],{"class":432},[381,3619,400],{"class":387},[381,3621,496],{"class":387},[381,3623,400],{"class":387},[381,3625,1810],{"class":397},[381,3627,400],{"class":387},[381,3629,403],{"class":387},[381,3631,400],{"class":387},[381,3633,3634],{"class":432},"function",[381,3636,400],{"class":387},[381,3638,496],{"class":387},[381,3640,400],{"class":387},[381,3642,1828],{"class":397},[381,3644,400],{"class":387},[381,3646,403],{"class":387},[381,3648,400],{"class":387},[381,3650,1837],{"class":432},[381,3652,400],{"class":387},[381,3654,496],{"class":387},[381,3656,400],{"class":387},[381,3658,2117],{"class":397},[381,3660,400],{"class":387},[381,3662,403],{"class":387},[381,3664,400],{"class":387},[381,3666,2844],{"class":432},[381,3668,400],{"class":387},[381,3670,496],{"class":387},[381,3672,400],{"class":387},[381,3674,2134],{"class":397},[381,3676,400],{"class":387},[381,3678,403],{"class":387},[381,3680,400],{"class":387},[381,3682,3683],{"class":432},"Generate Simulated Production Data",[381,3685,400],{"class":387},[381,3687,496],{"class":387},[381,3689,400],{"class":387},[381,3691,3692],{"class":397},"func",[381,3694,400],{"class":387},[381,3696,403],{"class":387},[381,3698,400],{"class":387},[381,3700,3701],{"class":432},"const products = [",[381,3703,3704],{"class":2465},"\\\"",[381,3706,3707],{"class":432},"Widget A",[381,3709,3704],{"class":2465},[381,3711,115],{"class":432},[381,3713,3704],{"class":2465},[381,3715,3716],{"class":432},"Widget B",[381,3718,3704],{"class":2465},[381,3720,115],{"class":432},[381,3722,3704],{"class":2465},[381,3724,3725],{"class":432},"Gadget X",[381,3727,3704],{"class":2465},[381,3729,115],{"class":432},[381,3731,3704],{"class":2465},[381,3733,3734],{"class":432},"Component Z",[381,3736,3704],{"class":2465},[381,3738,3739],{"class":432},"];",[381,3741,2466],{"class":2465},[381,3743,3744],{"class":432},"const operators = [",[381,3746,3704],{"class":2465},[381,3748,3749],{"class":432},"John Matthews",[381,3751,3704],{"class":2465},[381,3753,115],{"class":432},[381,3755,3704],{"class":2465},[381,3757,3758],{"class":432},"Sarah Lee",[381,3760,3704],{"class":2465},[381,3762,115],{"class":432},[381,3764,3704],{"class":2465},[381,3766,3767],{"class":432},"Amit Kumar",[381,3769,3704],{"class":2465},[381,3771,115],{"class":432},[381,3773,3704],{"class":2465},[381,3775,3776],{"class":432},"Rita Patel",[381,3778,3704],{"class":2465},[381,3780,3739],{"class":432},[381,3782,2466],{"class":2465},[381,3784,3785],{"class":432},"const shifts = [",[381,3787,3704],{"class":2465},[381,3789,3790],{"class":432},"A",[381,3792,3704],{"class":2465},[381,3794,115],{"class":432},[381,3796,3704],{"class":2465},[381,3798,3799],{"class":432},"B",[381,3801,3704],{"class":2465},[381,3803,115],{"class":432},[381,3805,3704],{"class":2465},[381,3807,3808],{"class":432},"C",[381,3810,3704],{"class":2465},[381,3812,3739],{"class":432},[381,3814,3815],{"class":2465},"\\n\\n",[381,3817,3818],{"class":432},"function getRandomInt(min, max) {",[381,3820,2466],{"class":2465},[381,3822,3823],{"class":432},"    return Math.floor(Math.random() * (max - min + 1)) + min;",[381,3825,2466],{"class":2465},[381,3827,3828],{"class":432},"}",[381,3830,3815],{"class":2465},[381,3832,3833],{"class":432},"const data = [];",[381,3835,3815],{"class":2465},[381,3837,3838],{"class":432},"for (let i = 0; i \u003C 10; i++) {",[381,3840,2466],{"class":2465},[381,3842,3843],{"class":432},"    const date = new Date();",[381,3845,2466],{"class":2465},[381,3847,3848],{"class":432},"    date.setDate(date.getDate() - i); \u002F\u002F Last 10 days",[381,3850,3815],{"class":2465},[381,3852,3853],{"class":432},"    data.push({",[381,3855,2466],{"class":2465},[381,3857,3858],{"class":432},"        date: date.toISOString().split('T')[0],",[381,3860,2466],{"class":2465},[381,3862,3863],{"class":432},"        shift: shifts[getRandomInt(0, shifts.length - 1)],",[381,3865,2466],{"class":2465},[381,3867,3868],{"class":432},"        product: products[getRandomInt(0, products.length - 1)],",[381,3870,2466],{"class":2465},[381,3872,3873],{"class":432},"        units_produced: getRandomInt(400, 600),",[381,3875,2466],{"class":2465},[381,3877,3878],{"class":432},"        defective_units: getRandomInt(0, 10),",[381,3880,2466],{"class":2465},[381,3882,3883],{"class":432},"        operator: operators[getRandomInt(0, operators.length - 1)]",[381,3885,2466],{"class":2465},[381,3887,3888],{"class":432},"    });",[381,3890,2466],{"class":2465},[381,3892,3828],{"class":432},[381,3894,3815],{"class":2465},[381,3896,3897],{"class":432},"msg.payload = data;",[381,3899,2466],{"class":2465},[381,3901,3902],{"class":432},"return msg;",[381,3904,2466],{"class":2465},[381,3906,400],{"class":387},[381,3908,496],{"class":387},[381,3910,400],{"class":387},[381,3912,3913],{"class":397},"outputs",[381,3915,400],{"class":387},[381,3917,403],{"class":387},[381,3919,1882],{"class":452},[381,3921,496],{"class":387},[381,3923,400],{"class":387},[381,3925,3926],{"class":397},"timeout",[381,3928,400],{"class":387},[381,3930,403],{"class":387},[381,3932,493],{"class":452},[381,3934,496],{"class":387},[381,3936,400],{"class":387},[381,3938,3939],{"class":397},"noerr",[381,3941,400],{"class":387},[381,3943,403],{"class":387},[381,3945,493],{"class":452},[381,3947,496],{"class":387},[381,3949,400],{"class":387},[381,3951,3952],{"class":397},"initialize",[381,3954,400],{"class":387},[381,3956,403],{"class":387},[381,3958,2222],{"class":387},[381,3960,496],{"class":387},[381,3962,400],{"class":387},[381,3964,3965],{"class":397},"finalize",[381,3967,400],{"class":387},[381,3969,403],{"class":387},[381,3971,2222],{"class":387},[381,3973,496],{"class":387},[381,3975,400],{"class":387},[381,3977,3978],{"class":397},"libs",[381,3980,400],{"class":387},[381,3982,3983],{"class":387},":[],",[381,3985,400],{"class":387},[381,3987,2011],{"class":397},[381,3989,400],{"class":387},[381,3991,403],{"class":387},[381,3993,3994],{"class":452},"490",[381,3996,496],{"class":387},[381,3998,400],{"class":387},[381,4000,2025],{"class":397},[381,4002,400],{"class":387},[381,4004,403],{"class":387},[381,4006,3325],{"class":452},[381,4008,496],{"class":387},[381,4010,400],{"class":387},[381,4012,2333],{"class":397},[381,4014,400],{"class":387},[381,4016,2338],{"class":387},[381,4018,400],{"class":387},[381,4020,3032],{"class":432},[381,4022,400],{"class":387},[381,4024,2347],{"class":387},[381,4026,400],{"class":387},[381,4028,1792],{"class":397},[381,4030,400],{"class":387},[381,4032,403],{"class":387},[381,4034,400],{"class":387},[381,4036,3032],{"class":432},[381,4038,400],{"class":387},[381,4040,496],{"class":387},[381,4042,400],{"class":387},[381,4044,1810],{"class":397},[381,4046,400],{"class":387},[381,4048,403],{"class":387},[381,4050,400],{"class":387},[381,4052,4053],{"class":432},"split",[381,4055,400],{"class":387},[381,4057,496],{"class":387},[381,4059,400],{"class":387},[381,4061,1828],{"class":397},[381,4063,400],{"class":387},[381,4065,403],{"class":387},[381,4067,400],{"class":387},[381,4069,1837],{"class":432},[381,4071,400],{"class":387},[381,4073,496],{"class":387},[381,4075,400],{"class":387},[381,4077,2117],{"class":397},[381,4079,400],{"class":387},[381,4081,403],{"class":387},[381,4083,400],{"class":387},[381,4085,2844],{"class":432},[381,4087,400],{"class":387},[381,4089,496],{"class":387},[381,4091,400],{"class":387},[381,4093,2134],{"class":397},[381,4095,400],{"class":387},[381,4097,403],{"class":387},[381,4099,2222],{"class":387},[381,4101,496],{"class":387},[381,4103,400],{"class":387},[381,4105,4106],{"class":397},"splt",[381,4108,400],{"class":387},[381,4110,403],{"class":387},[381,4112,400],{"class":387},[381,4114,4115],{"class":2465},"\\\\",[381,4117,4118],{"class":432},"n",[381,4120,400],{"class":387},[381,4122,496],{"class":387},[381,4124,400],{"class":387},[381,4126,4127],{"class":397},"spltType",[381,4129,400],{"class":387},[381,4131,403],{"class":387},[381,4133,400],{"class":387},[381,4135,2205],{"class":432},[381,4137,400],{"class":387},[381,4139,496],{"class":387},[381,4141,400],{"class":387},[381,4143,4144],{"class":397},"arraySplt",[381,4146,400],{"class":387},[381,4148,403],{"class":387},[381,4150,1882],{"class":452},[381,4152,496],{"class":387},[381,4154,400],{"class":387},[381,4156,4157],{"class":397},"arraySpltType",[381,4159,400],{"class":387},[381,4161,403],{"class":387},[381,4163,400],{"class":387},[381,4165,4166],{"class":432},"len",[381,4168,400],{"class":387},[381,4170,496],{"class":387},[381,4172,400],{"class":387},[381,4174,4175],{"class":397},"stream",[381,4177,400],{"class":387},[381,4179,2671],{"class":387},[381,4181,400],{"class":387},[381,4183,4184],{"class":397},"addname",[381,4186,400],{"class":387},[381,4188,403],{"class":387},[381,4190,2222],{"class":387},[381,4192,496],{"class":387},[381,4194,400],{"class":387},[381,4196,4197],{"class":397},"property",[381,4199,400],{"class":387},[381,4201,403],{"class":387},[381,4203,400],{"class":387},[381,4205,2170],{"class":432},[381,4207,400],{"class":387},[381,4209,496],{"class":387},[381,4211,400],{"class":387},[381,4213,2011],{"class":397},[381,4215,400],{"class":387},[381,4217,403],{"class":387},[381,4219,4220],{"class":452},"710",[381,4222,496],{"class":387},[381,4224,400],{"class":387},[381,4226,2025],{"class":397},[381,4228,400],{"class":387},[381,4230,403],{"class":387},[381,4232,3325],{"class":452},[381,4234,496],{"class":387},[381,4236,400],{"class":387},[381,4238,2333],{"class":397},[381,4240,400],{"class":387},[381,4242,2338],{"class":387},[381,4244,400],{"class":387},[381,4246,3041],{"class":432},[381,4248,400],{"class":387},[381,4250,2347],{"class":387},[381,4252,400],{"class":387},[381,4254,1792],{"class":397},[381,4256,400],{"class":387},[381,4258,403],{"class":387},[381,4260,400],{"class":387},[381,4262,3041],{"class":432},[381,4264,400],{"class":387},[381,4266,496],{"class":387},[381,4268,400],{"class":387},[381,4270,1810],{"class":397},[381,4272,400],{"class":387},[381,4274,403],{"class":387},[381,4276,400],{"class":387},[381,4278,4279],{"class":432},"change",[381,4281,400],{"class":387},[381,4283,496],{"class":387},[381,4285,400],{"class":387},[381,4287,1828],{"class":397},[381,4289,400],{"class":387},[381,4291,403],{"class":387},[381,4293,400],{"class":387},[381,4295,1837],{"class":432},[381,4297,400],{"class":387},[381,4299,496],{"class":387},[381,4301,400],{"class":387},[381,4303,2117],{"class":397},[381,4305,400],{"class":387},[381,4307,403],{"class":387},[381,4309,400],{"class":387},[381,4311,2844],{"class":432},[381,4313,400],{"class":387},[381,4315,496],{"class":387},[381,4317,400],{"class":387},[381,4319,2134],{"class":397},[381,4321,400],{"class":387},[381,4323,403],{"class":387},[381,4325,2222],{"class":387},[381,4327,496],{"class":387},[381,4329,400],{"class":387},[381,4331,4332],{"class":397},"rules",[381,4334,400],{"class":387},[381,4336,2157],{"class":387},[381,4338,400],{"class":387},[381,4340,4341],{"class":421},"t",[381,4343,400],{"class":387},[381,4345,403],{"class":387},[381,4347,400],{"class":387},[381,4349,4350],{"class":432},"set",[381,4352,400],{"class":387},[381,4354,496],{"class":387},[381,4356,400],{"class":387},[381,4358,12],{"class":421},[381,4360,400],{"class":387},[381,4362,403],{"class":387},[381,4364,400],{"class":387},[381,4366,4367],{"class":432},"params",[381,4369,400],{"class":387},[381,4371,496],{"class":387},[381,4373,400],{"class":387},[381,4375,4376],{"class":421},"pt",[381,4378,400],{"class":387},[381,4380,403],{"class":387},[381,4382,400],{"class":387},[381,4384,4385],{"class":432},"msg",[381,4387,400],{"class":387},[381,4389,496],{"class":387},[381,4391,400],{"class":387},[381,4393,4394],{"class":421},"to",[381,4396,400],{"class":387},[381,4398,403],{"class":387},[381,4400,400],{"class":387},[381,4402,4403],{"class":432},"{}",[381,4405,400],{"class":387},[381,4407,496],{"class":387},[381,4409,400],{"class":387},[381,4411,4412],{"class":421},"tot",[381,4414,400],{"class":387},[381,4416,403],{"class":387},[381,4418,400],{"class":387},[381,4420,376],{"class":432},[381,4422,400],{"class":387},[381,4424,2063],{"class":387},[381,4426,400],{"class":387},[381,4428,4341],{"class":421},[381,4430,400],{"class":387},[381,4432,403],{"class":387},[381,4434,400],{"class":387},[381,4436,4350],{"class":432},[381,4438,400],{"class":387},[381,4440,496],{"class":387},[381,4442,400],{"class":387},[381,4444,12],{"class":421},[381,4446,400],{"class":387},[381,4448,403],{"class":387},[381,4450,400],{"class":387},[381,4452,4453],{"class":432},"params.$date",[381,4455,400],{"class":387},[381,4457,496],{"class":387},[381,4459,400],{"class":387},[381,4461,4376],{"class":421},[381,4463,400],{"class":387},[381,4465,403],{"class":387},[381,4467,400],{"class":387},[381,4469,4385],{"class":432},[381,4471,400],{"class":387},[381,4473,496],{"class":387},[381,4475,400],{"class":387},[381,4477,4394],{"class":421},[381,4479,400],{"class":387},[381,4481,403],{"class":387},[381,4483,400],{"class":387},[381,4485,4486],{"class":432},"payload.date",[381,4488,400],{"class":387},[381,4490,496],{"class":387},[381,4492,400],{"class":387},[381,4494,4412],{"class":421},[381,4496,400],{"class":387},[381,4498,403],{"class":387},[381,4500,400],{"class":387},[381,4502,4385],{"class":432},[381,4504,400],{"class":387},[381,4506,2063],{"class":387},[381,4508,400],{"class":387},[381,4510,4341],{"class":421},[381,4512,400],{"class":387},[381,4514,403],{"class":387},[381,4516,400],{"class":387},[381,4518,4350],{"class":432},[381,4520,400],{"class":387},[381,4522,496],{"class":387},[381,4524,400],{"class":387},[381,4526,12],{"class":421},[381,4528,400],{"class":387},[381,4530,403],{"class":387},[381,4532,400],{"class":387},[381,4534,4535],{"class":432},"params.$shift",[381,4537,400],{"class":387},[381,4539,496],{"class":387},[381,4541,400],{"class":387},[381,4543,4376],{"class":421},[381,4545,400],{"class":387},[381,4547,403],{"class":387},[381,4549,400],{"class":387},[381,4551,4385],{"class":432},[381,4553,400],{"class":387},[381,4555,496],{"class":387},[381,4557,400],{"class":387},[381,4559,4394],{"class":421},[381,4561,400],{"class":387},[381,4563,403],{"class":387},[381,4565,400],{"class":387},[381,4567,4568],{"class":432},"payload.shift",[381,4570,400],{"class":387},[381,4572,496],{"class":387},[381,4574,400],{"class":387},[381,4576,4412],{"class":421},[381,4578,400],{"class":387},[381,4580,403],{"class":387},[381,4582,400],{"class":387},[381,4584,4385],{"class":432},[381,4586,400],{"class":387},[381,4588,2063],{"class":387},[381,4590,400],{"class":387},[381,4592,4341],{"class":421},[381,4594,400],{"class":387},[381,4596,403],{"class":387},[381,4598,400],{"class":387},[381,4600,4350],{"class":432},[381,4602,400],{"class":387},[381,4604,496],{"class":387},[381,4606,400],{"class":387},[381,4608,12],{"class":421},[381,4610,400],{"class":387},[381,4612,403],{"class":387},[381,4614,400],{"class":387},[381,4616,4617],{"class":432},"params.$product",[381,4619,400],{"class":387},[381,4621,496],{"class":387},[381,4623,400],{"class":387},[381,4625,4376],{"class":421},[381,4627,400],{"class":387},[381,4629,403],{"class":387},[381,4631,400],{"class":387},[381,4633,4385],{"class":432},[381,4635,400],{"class":387},[381,4637,496],{"class":387},[381,4639,400],{"class":387},[381,4641,4394],{"class":421},[381,4643,400],{"class":387},[381,4645,403],{"class":387},[381,4647,400],{"class":387},[381,4649,4650],{"class":432},"payload.product",[381,4652,400],{"class":387},[381,4654,496],{"class":387},[381,4656,400],{"class":387},[381,4658,4412],{"class":421},[381,4660,400],{"class":387},[381,4662,403],{"class":387},[381,4664,400],{"class":387},[381,4666,4385],{"class":432},[381,4668,400],{"class":387},[381,4670,2063],{"class":387},[381,4672,400],{"class":387},[381,4674,4341],{"class":421},[381,4676,400],{"class":387},[381,4678,403],{"class":387},[381,4680,400],{"class":387},[381,4682,4350],{"class":432},[381,4684,400],{"class":387},[381,4686,496],{"class":387},[381,4688,400],{"class":387},[381,4690,12],{"class":421},[381,4692,400],{"class":387},[381,4694,403],{"class":387},[381,4696,400],{"class":387},[381,4698,4699],{"class":432},"params.$units_produced",[381,4701,400],{"class":387},[381,4703,496],{"class":387},[381,4705,400],{"class":387},[381,4707,4376],{"class":421},[381,4709,400],{"class":387},[381,4711,403],{"class":387},[381,4713,400],{"class":387},[381,4715,4385],{"class":432},[381,4717,400],{"class":387},[381,4719,496],{"class":387},[381,4721,400],{"class":387},[381,4723,4394],{"class":421},[381,4725,400],{"class":387},[381,4727,403],{"class":387},[381,4729,400],{"class":387},[381,4731,4732],{"class":432},"payload.units_produced",[381,4734,400],{"class":387},[381,4736,496],{"class":387},[381,4738,400],{"class":387},[381,4740,4412],{"class":421},[381,4742,400],{"class":387},[381,4744,403],{"class":387},[381,4746,400],{"class":387},[381,4748,4385],{"class":432},[381,4750,400],{"class":387},[381,4752,2063],{"class":387},[381,4754,400],{"class":387},[381,4756,4341],{"class":421},[381,4758,400],{"class":387},[381,4760,403],{"class":387},[381,4762,400],{"class":387},[381,4764,4350],{"class":432},[381,4766,400],{"class":387},[381,4768,496],{"class":387},[381,4770,400],{"class":387},[381,4772,12],{"class":421},[381,4774,400],{"class":387},[381,4776,403],{"class":387},[381,4778,400],{"class":387},[381,4780,4781],{"class":432},"params.$defective_units",[381,4783,400],{"class":387},[381,4785,496],{"class":387},[381,4787,400],{"class":387},[381,4789,4376],{"class":421},[381,4791,400],{"class":387},[381,4793,403],{"class":387},[381,4795,400],{"class":387},[381,4797,4385],{"class":432},[381,4799,400],{"class":387},[381,4801,496],{"class":387},[381,4803,400],{"class":387},[381,4805,4394],{"class":421},[381,4807,400],{"class":387},[381,4809,403],{"class":387},[381,4811,400],{"class":387},[381,4813,4814],{"class":432},"payload.defective_units",[381,4816,400],{"class":387},[381,4818,496],{"class":387},[381,4820,400],{"class":387},[381,4822,4412],{"class":421},[381,4824,400],{"class":387},[381,4826,403],{"class":387},[381,4828,400],{"class":387},[381,4830,4385],{"class":432},[381,4832,400],{"class":387},[381,4834,2063],{"class":387},[381,4836,400],{"class":387},[381,4838,4341],{"class":421},[381,4840,400],{"class":387},[381,4842,403],{"class":387},[381,4844,400],{"class":387},[381,4846,4350],{"class":432},[381,4848,400],{"class":387},[381,4850,496],{"class":387},[381,4852,400],{"class":387},[381,4854,12],{"class":421},[381,4856,400],{"class":387},[381,4858,403],{"class":387},[381,4860,400],{"class":387},[381,4862,4863],{"class":432},"params.$operator",[381,4865,400],{"class":387},[381,4867,496],{"class":387},[381,4869,400],{"class":387},[381,4871,4376],{"class":421},[381,4873,400],{"class":387},[381,4875,403],{"class":387},[381,4877,400],{"class":387},[381,4879,4385],{"class":432},[381,4881,400],{"class":387},[381,4883,496],{"class":387},[381,4885,400],{"class":387},[381,4887,4394],{"class":421},[381,4889,400],{"class":387},[381,4891,403],{"class":387},[381,4893,400],{"class":387},[381,4895,4896],{"class":432},"payload.operator",[381,4898,400],{"class":387},[381,4900,496],{"class":387},[381,4902,400],{"class":387},[381,4904,4412],{"class":421},[381,4906,400],{"class":387},[381,4908,403],{"class":387},[381,4910,400],{"class":387},[381,4912,4385],{"class":432},[381,4914,400],{"class":387},[381,4916,2210],{"class":387},[381,4918,400],{"class":387},[381,4920,4921],{"class":397},"action",[381,4923,400],{"class":387},[381,4925,403],{"class":387},[381,4927,2222],{"class":387},[381,4929,496],{"class":387},[381,4931,400],{"class":387},[381,4933,4197],{"class":397},[381,4935,400],{"class":387},[381,4937,403],{"class":387},[381,4939,2222],{"class":387},[381,4941,496],{"class":387},[381,4943,400],{"class":387},[381,4945,4946],{"class":397},"from",[381,4948,400],{"class":387},[381,4950,403],{"class":387},[381,4952,2222],{"class":387},[381,4954,496],{"class":387},[381,4956,400],{"class":387},[381,4958,4394],{"class":397},[381,4960,400],{"class":387},[381,4962,403],{"class":387},[381,4964,2222],{"class":387},[381,4966,496],{"class":387},[381,4968,400],{"class":387},[381,4970,4971],{"class":397},"reg",[381,4973,400],{"class":387},[381,4975,2671],{"class":387},[381,4977,400],{"class":387},[381,4979,2011],{"class":397},[381,4981,400],{"class":387},[381,4983,403],{"class":387},[381,4985,4986],{"class":452},"860",[381,4988,496],{"class":387},[381,4990,400],{"class":387},[381,4992,2025],{"class":397},[381,4994,400],{"class":387},[381,4996,403],{"class":387},[381,4998,3325],{"class":452},[381,5000,496],{"class":387},[381,5002,400],{"class":387},[381,5004,2333],{"class":397},[381,5006,400],{"class":387},[381,5008,2338],{"class":387},[381,5010,400],{"class":387},[381,5012,3005],{"class":432},[381,5014,400],{"class":387},[381,5016,2347],{"class":387},[381,5018,400],{"class":387},[381,5020,1792],{"class":397},[381,5022,400],{"class":387},[381,5024,403],{"class":387},[381,5026,400],{"class":387},[381,5028,3050],{"class":432},[381,5030,400],{"class":387},[381,5032,496],{"class":387},[381,5034,400],{"class":387},[381,5036,1810],{"class":397},[381,5038,400],{"class":387},[381,5040,403],{"class":387},[381,5042,400],{"class":387},[381,5044,2590],{"class":432},[381,5046,400],{"class":387},[381,5048,496],{"class":387},[381,5050,400],{"class":387},[381,5052,1828],{"class":397},[381,5054,400],{"class":387},[381,5056,403],{"class":387},[381,5058,400],{"class":387},[381,5060,1837],{"class":432},[381,5062,400],{"class":387},[381,5064,496],{"class":387},[381,5066,400],{"class":387},[381,5068,2117],{"class":397},[381,5070,400],{"class":387},[381,5072,403],{"class":387},[381,5074,400],{"class":387},[381,5076,2844],{"class":432},[381,5078,400],{"class":387},[381,5080,496],{"class":387},[381,5082,400],{"class":387},[381,5084,2134],{"class":397},[381,5086,400],{"class":387},[381,5088,403],{"class":387},[381,5090,400],{"class":387},[381,5092,5093],{"class":432},"debug 3",[381,5095,400],{"class":387},[381,5097,496],{"class":387},[381,5099,400],{"class":387},[381,5101,2648],{"class":397},[381,5103,400],{"class":387},[381,5105,1932],{"class":387},[381,5107,400],{"class":387},[381,5109,2657],{"class":397},[381,5111,400],{"class":387},[381,5113,1932],{"class":387},[381,5115,400],{"class":387},[381,5117,2666],{"class":397},[381,5119,400],{"class":387},[381,5121,2671],{"class":387},[381,5123,400],{"class":387},[381,5125,2676],{"class":397},[381,5127,400],{"class":387},[381,5129,2671],{"class":387},[381,5131,400],{"class":387},[381,5133,2685],{"class":397},[381,5135,400],{"class":387},[381,5137,403],{"class":387},[381,5139,400],{"class":387},[381,5141,2694],{"class":432},[381,5143,400],{"class":387},[381,5145,496],{"class":387},[381,5147,400],{"class":387},[381,5149,2703],{"class":397},[381,5151,400],{"class":387},[381,5153,403],{"class":387},[381,5155,2222],{"class":387},[381,5157,496],{"class":387},[381,5159,400],{"class":387},[381,5161,2716],{"class":397},[381,5163,400],{"class":387},[381,5165,403],{"class":387},[381,5167,400],{"class":387},[381,5169,741],{"class":432},[381,5171,400],{"class":387},[381,5173,496],{"class":387},[381,5175,400],{"class":387},[381,5177,2011],{"class":397},[381,5179,400],{"class":387},[381,5181,403],{"class":387},[381,5183,5184],{"class":452},"1240",[381,5186,496],{"class":387},[381,5188,400],{"class":387},[381,5190,2025],{"class":397},[381,5192,400],{"class":387},[381,5194,403],{"class":387},[381,5196,3325],{"class":452},[381,5198,496],{"class":387},[381,5200,400],{"class":387},[381,5202,2333],{"class":397},[381,5204,400],{"class":387},[381,5206,5207],{"class":387},":[]}]\n",[88,5209,5210,5217],{"start":391},[30,5211,5212,5213,5216],{},"Drag an ",[147,5214,5215],{},"Inject"," node onto the canvas.",[30,5218,5212,5219,5222,5223,5225],{},[147,5220,5221],{},"SQLite"," node and connect it to the Inject node. Configure the ",[147,5224,5221],{}," node with the same database to generate the simulated data. Set the SQL Query type to \"fixed statement\" and use the following query:",[372,5227,5230],{"className":5228,"code":5229,"language":2453,"meta":377,"style":377},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT * FROM production_report;\n",[54,5231,5232],{"__ignoreMap":377},[381,5233,5234],{"class":383,"line":384},[381,5235,5229],{},[88,5237,5238],{"start":415},[30,5239,5240,5241,5244],{},"Drag a ",[147,5242,5243],{},"Function"," node onto the canvas and paste the following JavaScript code. When generating PDFs for your specific data, make sure to adjust the code to match your data structure.",[372,5246,5250],{"className":5247,"code":5248,"language":5249,"meta":377,"style":377},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Initialize table body with headers\nconst tableBody = [\n    ['Date', 'Shift', 'Product', 'Units Produced', 'Defective Units', 'Operator']\n];\n\nconst logo = `\u003Creplace-this-your-logo-svg`\n\n\u002F\u002F Loop through data rows from SQLite (msg.payload)\nfor (const row of msg.payload) {\n    tableBody.push([\n        row.date,\n        row.shift,\n        row.product,\n        row.units_produced.toString(),\n        row.defective_units.toString(),\n        row.operator\n    ]);\n}\n\nconst docDefinition = {\n    content: [\n        {\n            svg: logo,\n            width: 150, \u002F\u002F Adjust the logo size as needed\n            alignment: 'center',\n            margin: [0, 0, 0, 20]\n        },\n        \u002F\u002F Header\n        {\n            text: 'Production Report - 2025',\n            style: 'header'\n        },\n\n        \u002F\u002F Subheader\n        {\n            text: 'Daily Production Summary with Operator Performance',\n            style: 'subheader',\n            alignment: 'center',\n            margin: [0, 10, 0, 20]\n        },\n\n        \u002F\u002F Table\n        {\n            layout: 'lightHorizontalLines',\n            table: {\n                headerRows: 1,\n                widths: ['auto', 'auto', '*', 'auto', 'auto', '*'],\n                body: tableBody\n            }\n        },\n\n        \u002F\u002F Description\n        {\n            text: 'This table summarizes the daily production output across different shifts and operators. It includes total units produced and defective units recorded for quality analysis.',\n            fontSize: 12,\n            alignment: 'justify',\n            margin: [0, 10, 0, 20]\n        },\n\n        \u002F\u002F Footer\n        {\n            text: 'Internal Use Only - Manufacturing Co.',\n            style: 'footer',\n            alignment: 'center',\n            margin: [0, 20, 0, 0]\n        }\n    ],\n\n    styles: {\n        header: {\n            fontSize: 20,\n            bold: true,\n            alignment: 'center',\n            margin: [0, 20, 0, 10]\n        },\n        subheader: {\n            fontSize: 14,\n            italics: true,\n            color: 'grey',\n            margin: [0, 10, 0, 20]\n        },\n        footer: {\n            fontSize: 10,\n            color: 'grey'\n        }\n    },\n\n    pageSize: 'A4',\n    pageMargins: [40, 60, 40, 60]\n};\n\nmsg.payload = docDefinition;\nreturn msg;\n","javascript",[54,5251,5252,5258,5271,5326,5334,5340,5358,5362,5367,5394,5409,5420,5431,5442,5461,5478,5487,5494,5498,5502,5513,5522,5527,5539,5553,5568,5593,5598,5603,5607,5622,5636,5640,5644,5649,5653,5667,5681,5695,5719,5723,5727,5732,5736,5751,5760,5771,5830,5840,5845,5849,5853,5858,5862,5876,5887,5901,5925,5929,5933,5938,5942,5956,5970,5984,6008,6013,6020,6024,6034,6044,6055,6069,6084,6109,6114,6124,6135,6147,6163,6188,6193,6203,6214,6227,6232,6237,6242,6258,6284,6290,6295,6312],{"__ignoreMap":377},[381,5253,5254],{"class":383,"line":384},[381,5255,5257],{"class":5256},"sHwdD","\u002F\u002F Initialize table body with headers\n",[381,5259,5260,5263,5266,5269],{"class":383,"line":391},[381,5261,5262],{"class":397},"const",[381,5264,5265],{"class":2465}," tableBody ",[381,5267,5268],{"class":387},"=",[381,5270,406],{"class":2465},[381,5272,5273,5276,5279,5281,5283,5285,5288,5290,5292,5294,5296,5298,5300,5302,5304,5306,5308,5310,5312,5314,5316,5318,5320,5322,5324],{"class":383,"line":409},[381,5274,5275],{"class":2465},"    [",[381,5277,5278],{"class":387},"'",[381,5280,812],{"class":432},[381,5282,5278],{"class":387},[381,5284,496],{"class":387},[381,5286,5287],{"class":387}," '",[381,5289,821],{"class":432},[381,5291,5278],{"class":387},[381,5293,496],{"class":387},[381,5295,5287],{"class":387},[381,5297,830],{"class":432},[381,5299,5278],{"class":387},[381,5301,496],{"class":387},[381,5303,5287],{"class":387},[381,5305,839],{"class":432},[381,5307,5278],{"class":387},[381,5309,496],{"class":387},[381,5311,5287],{"class":387},[381,5313,848],{"class":432},[381,5315,5278],{"class":387},[381,5317,496],{"class":387},[381,5319,5287],{"class":387},[381,5321,857],{"class":432},[381,5323,5278],{"class":387},[381,5325,511],{"class":2465},[381,5327,5328,5331],{"class":383,"line":415},[381,5329,5330],{"class":2465},"]",[381,5332,5333],{"class":387},";\n",[381,5335,5336],{"class":383,"line":441},[381,5337,5339],{"emptyLinePlaceholder":5338},true,"\n",[381,5341,5342,5344,5347,5349,5352,5355],{"class":383,"line":458},[381,5343,5262],{"class":397},[381,5345,5346],{"class":2465}," logo ",[381,5348,5268],{"class":387},[381,5350,5351],{"class":387}," `",[381,5353,5354],{"class":432},"\u003Creplace-this-your-logo-svg",[381,5356,5357],{"class":387},"`\n",[381,5359,5360],{"class":383,"line":478},[381,5361,5339],{"emptyLinePlaceholder":5338},[381,5363,5364],{"class":383,"line":514},[381,5365,5366],{"class":5256},"\u002F\u002F Loop through data rows from SQLite (msg.payload)\n",[381,5368,5369,5373,5376,5378,5381,5384,5387,5389,5392],{"class":383,"line":520},[381,5370,5372],{"class":5371},"s7zQu","for",[381,5374,5375],{"class":2465}," (",[381,5377,5262],{"class":397},[381,5379,5380],{"class":2465}," row ",[381,5382,5383],{"class":387},"of",[381,5385,5386],{"class":2465}," msg",[381,5388,102],{"class":387},[381,5390,5391],{"class":2465},"payload) ",[381,5393,388],{"class":387},[381,5395,5396,5399,5401,5405],{"class":383,"line":525},[381,5397,5398],{"class":2465},"    tableBody",[381,5400,102],{"class":387},[381,5402,5404],{"class":5403},"s2Zo4","push",[381,5406,5408],{"class":5407},"swJcz","([\n",[381,5410,5411,5414,5416,5418],{"class":383,"line":546},[381,5412,5413],{"class":2465},"        row",[381,5415,102],{"class":387},[381,5417,2298],{"class":2465},[381,5419,438],{"class":387},[381,5421,5422,5424,5426,5429],{"class":383,"line":564},[381,5423,5413],{"class":2465},[381,5425,102],{"class":387},[381,5427,5428],{"class":2465},"shift",[381,5430,438],{"class":387},[381,5432,5433,5435,5437,5440],{"class":383,"line":569},[381,5434,5413],{"class":2465},[381,5436,102],{"class":387},[381,5438,5439],{"class":2465},"product",[381,5441,438],{"class":387},[381,5443,5444,5446,5448,5451,5453,5456,5459],{"class":383,"line":574},[381,5445,5413],{"class":2465},[381,5447,102],{"class":387},[381,5449,5450],{"class":2465},"units_produced",[381,5452,102],{"class":387},[381,5454,5455],{"class":5403},"toString",[381,5457,5458],{"class":5407},"()",[381,5460,438],{"class":387},[381,5462,5463,5465,5467,5470,5472,5474,5476],{"class":383,"line":594},[381,5464,5413],{"class":2465},[381,5466,102],{"class":387},[381,5468,5469],{"class":2465},"defective_units",[381,5471,102],{"class":387},[381,5473,5455],{"class":5403},[381,5475,5458],{"class":5407},[381,5477,438],{"class":387},[381,5479,5480,5482,5484],{"class":383,"line":614},[381,5481,5413],{"class":2465},[381,5483,102],{"class":387},[381,5485,5486],{"class":2465},"operator\n",[381,5488,5489,5492],{"class":383,"line":633},[381,5490,5491],{"class":5407},"    ])",[381,5493,5333],{"class":387},[381,5495,5496],{"class":383,"line":663},[381,5497,1745],{"class":387},[381,5499,5500],{"class":383,"line":668},[381,5501,5339],{"emptyLinePlaceholder":5338},[381,5503,5504,5506,5509,5511],{"class":383,"line":673},[381,5505,5262],{"class":397},[381,5507,5508],{"class":2465}," docDefinition ",[381,5510,5268],{"class":387},[381,5512,704],{"class":387},[381,5514,5515,5518,5520],{"class":383,"line":693},[381,5516,5517],{"class":5407},"    content",[381,5519,403],{"class":387},[381,5521,406],{"class":2465},[381,5523,5524],{"class":383,"line":707},[381,5525,5526],{"class":387},"        {\n",[381,5528,5529,5532,5534,5537],{"class":383,"line":725},[381,5530,5531],{"class":5407},"            svg",[381,5533,403],{"class":387},[381,5535,5536],{"class":2465}," logo",[381,5538,438],{"class":387},[381,5540,5541,5544,5546,5548,5550],{"class":383,"line":790},[381,5542,5543],{"class":5407},"            width",[381,5545,403],{"class":387},[381,5547,453],{"class":452},[381,5549,496],{"class":387},[381,5551,5552],{"class":5256}," \u002F\u002F Adjust the logo size as needed\n",[381,5554,5555,5558,5560,5562,5564,5566],{"class":383,"line":804},[381,5556,5557],{"class":5407},"            alignment",[381,5559,403],{"class":387},[381,5561,5287],{"class":387},[381,5563,471],{"class":432},[381,5565,5278],{"class":387},[381,5567,438],{"class":387},[381,5569,5570,5573,5575,5577,5579,5581,5583,5585,5587,5589,5591],{"class":383,"line":864},[381,5571,5572],{"class":5407},"            margin",[381,5574,403],{"class":387},[381,5576,490],{"class":2465},[381,5578,493],{"class":452},[381,5580,496],{"class":387},[381,5582,499],{"class":452},[381,5584,496],{"class":387},[381,5586,499],{"class":452},[381,5588,496],{"class":387},[381,5590,508],{"class":452},[381,5592,511],{"class":2465},[381,5594,5595],{"class":383,"line":923},[381,5596,5597],{"class":387},"        },\n",[381,5599,5600],{"class":383,"line":981},[381,5601,5602],{"class":5256},"        \u002F\u002F Header\n",[381,5604,5605],{"class":383,"line":1038},[381,5606,5526],{"class":387},[381,5608,5609,5612,5614,5616,5618,5620],{"class":383,"line":1095},[381,5610,5611],{"class":5407},"            text",[381,5613,403],{"class":387},[381,5615,5287],{"class":387},[381,5617,539],{"class":432},[381,5619,5278],{"class":387},[381,5621,438],{"class":387},[381,5623,5624,5627,5629,5631,5633],{"class":383,"line":1152},[381,5625,5626],{"class":5407},"            style",[381,5628,403],{"class":387},[381,5630,5287],{"class":387},[381,5632,245],{"class":432},[381,5634,5635],{"class":387},"'\n",[381,5637,5638],{"class":383,"line":1208},[381,5639,5597],{"class":387},[381,5641,5642],{"class":383,"line":1214},[381,5643,5339],{"emptyLinePlaceholder":5338},[381,5645,5646],{"class":383,"line":1220},[381,5647,5648],{"class":5256},"        \u002F\u002F Subheader\n",[381,5650,5651],{"class":383,"line":1225},[381,5652,5526],{"class":387},[381,5654,5655,5657,5659,5661,5663,5665],{"class":383,"line":1230},[381,5656,5611],{"class":5407},[381,5658,403],{"class":387},[381,5660,5287],{"class":387},[381,5662,587],{"class":432},[381,5664,5278],{"class":387},[381,5666,438],{"class":387},[381,5668,5669,5671,5673,5675,5677,5679],{"class":383,"line":1250},[381,5670,5626],{"class":5407},[381,5672,403],{"class":387},[381,5674,5287],{"class":387},[381,5676,607],{"class":432},[381,5678,5278],{"class":387},[381,5680,438],{"class":387},[381,5682,5683,5685,5687,5689,5691,5693],{"class":383,"line":1267},[381,5684,5557],{"class":5407},[381,5686,403],{"class":387},[381,5688,5287],{"class":387},[381,5690,471],{"class":432},[381,5692,5278],{"class":387},[381,5694,438],{"class":387},[381,5696,5697,5699,5701,5703,5705,5707,5709,5711,5713,5715,5717],{"class":383,"line":1287},[381,5698,5572],{"class":5407},[381,5700,403],{"class":387},[381,5702,490],{"class":2465},[381,5704,493],{"class":452},[381,5706,496],{"class":387},[381,5708,650],{"class":452},[381,5710,496],{"class":387},[381,5712,499],{"class":452},[381,5714,496],{"class":387},[381,5716,508],{"class":452},[381,5718,511],{"class":2465},[381,5720,5721],{"class":383,"line":1316},[381,5722,5597],{"class":387},[381,5724,5725],{"class":383,"line":1321},[381,5726,5339],{"emptyLinePlaceholder":5338},[381,5728,5729],{"class":383,"line":1326},[381,5730,5731],{"class":5256},"        \u002F\u002F Table\n",[381,5733,5734],{"class":383,"line":1346},[381,5735,5526],{"class":387},[381,5737,5738,5741,5743,5745,5747,5749],{"class":383,"line":1365},[381,5739,5740],{"class":5407},"            layout",[381,5742,403],{"class":387},[381,5744,5287],{"class":387},[381,5746,686],{"class":432},[381,5748,5278],{"class":387},[381,5750,438],{"class":387},[381,5752,5753,5756,5758],{"class":383,"line":1384},[381,5754,5755],{"class":5407},"            table",[381,5757,403],{"class":387},[381,5759,704],{"class":387},[381,5761,5762,5765,5767,5769],{"class":383,"line":1413},[381,5763,5764],{"class":5407},"                headerRows",[381,5766,403],{"class":387},[381,5768,720],{"class":452},[381,5770,438],{"class":387},[381,5772,5773,5776,5778,5780,5782,5784,5786,5788,5790,5792,5794,5796,5798,5800,5802,5804,5806,5808,5810,5812,5814,5816,5818,5820,5822,5824,5826,5828],{"class":383,"line":1419},[381,5774,5775],{"class":5407},"                widths",[381,5777,403],{"class":387},[381,5779,490],{"class":2465},[381,5781,5278],{"class":387},[381,5783,741],{"class":432},[381,5785,5278],{"class":387},[381,5787,496],{"class":387},[381,5789,5287],{"class":387},[381,5791,741],{"class":432},[381,5793,5278],{"class":387},[381,5795,496],{"class":387},[381,5797,5287],{"class":387},[381,5799,758],{"class":432},[381,5801,5278],{"class":387},[381,5803,496],{"class":387},[381,5805,5287],{"class":387},[381,5807,741],{"class":432},[381,5809,5278],{"class":387},[381,5811,496],{"class":387},[381,5813,5287],{"class":387},[381,5815,741],{"class":432},[381,5817,5278],{"class":387},[381,5819,496],{"class":387},[381,5821,5287],{"class":387},[381,5823,758],{"class":432},[381,5825,5278],{"class":387},[381,5827,5330],{"class":2465},[381,5829,438],{"class":387},[381,5831,5832,5835,5837],{"class":383,"line":1425},[381,5833,5834],{"class":5407},"                body",[381,5836,403],{"class":387},[381,5838,5839],{"class":2465}," tableBody\n",[381,5841,5842],{"class":383,"line":1439},[381,5843,5844],{"class":387},"            }\n",[381,5846,5847],{"class":383,"line":1453},[381,5848,5597],{"class":387},[381,5850,5851],{"class":383,"line":1468},[381,5852,5339],{"emptyLinePlaceholder":5338},[381,5854,5855],{"class":383,"line":1483},[381,5856,5857],{"class":5256},"        \u002F\u002F Description\n",[381,5859,5860],{"class":383,"line":1502},[381,5861,5526],{"class":387},[381,5863,5864,5866,5868,5870,5872,5874],{"class":383,"line":1531},[381,5865,5611],{"class":5407},[381,5867,403],{"class":387},[381,5869,5287],{"class":387},[381,5871,1243],{"class":432},[381,5873,5278],{"class":387},[381,5875,438],{"class":387},[381,5877,5878,5881,5883,5885],{"class":383,"line":1536},[381,5879,5880],{"class":5407},"            fontSize",[381,5882,403],{"class":387},[381,5884,1262],{"class":452},[381,5886,438],{"class":387},[381,5888,5889,5891,5893,5895,5897,5899],{"class":383,"line":1549},[381,5890,5557],{"class":5407},[381,5892,403],{"class":387},[381,5894,5287],{"class":387},[381,5896,1280],{"class":432},[381,5898,5278],{"class":387},[381,5900,438],{"class":387},[381,5902,5903,5905,5907,5909,5911,5913,5915,5917,5919,5921,5923],{"class":383,"line":1565},[381,5904,5572],{"class":5407},[381,5906,403],{"class":387},[381,5908,490],{"class":2465},[381,5910,493],{"class":452},[381,5912,496],{"class":387},[381,5914,650],{"class":452},[381,5916,496],{"class":387},[381,5918,499],{"class":452},[381,5920,496],{"class":387},[381,5922,508],{"class":452},[381,5924,511],{"class":2465},[381,5926,5927],{"class":383,"line":1579},[381,5928,5597],{"class":387},[381,5930,5931],{"class":383,"line":1600},[381,5932,5339],{"emptyLinePlaceholder":5338},[381,5934,5935],{"class":383,"line":1629},[381,5936,5937],{"class":5256},"        \u002F\u002F Footer\n",[381,5939,5940],{"class":383,"line":1634},[381,5941,5526],{"class":387},[381,5943,5944,5946,5948,5950,5952,5954],{"class":383,"line":1647},[381,5945,5611],{"class":5407},[381,5947,403],{"class":387},[381,5949,5287],{"class":387},[381,5951,1339],{"class":432},[381,5953,5278],{"class":387},[381,5955,438],{"class":387},[381,5957,5958,5960,5962,5964,5966,5968],{"class":383,"line":1662},[381,5959,5626],{"class":5407},[381,5961,403],{"class":387},[381,5963,5287],{"class":387},[381,5965,260],{"class":432},[381,5967,5278],{"class":387},[381,5969,438],{"class":387},[381,5971,5972,5974,5976,5978,5980,5982],{"class":383,"line":1679},[381,5973,5557],{"class":5407},[381,5975,403],{"class":387},[381,5977,5287],{"class":387},[381,5979,471],{"class":432},[381,5981,5278],{"class":387},[381,5983,438],{"class":387},[381,5985,5986,5988,5990,5992,5994,5996,5998,6000,6002,6004,6006],{"class":383,"line":1684},[381,5987,5572],{"class":5407},[381,5989,403],{"class":387},[381,5991,490],{"class":2465},[381,5993,493],{"class":452},[381,5995,496],{"class":387},[381,5997,508],{"class":452},[381,5999,496],{"class":387},[381,6001,499],{"class":452},[381,6003,496],{"class":387},[381,6005,499],{"class":452},[381,6007,511],{"class":2465},[381,6009,6010],{"class":383,"line":1690},[381,6011,6012],{"class":387},"        }\n",[381,6014,6015,6018],{"class":383,"line":1710},[381,6016,6017],{"class":2465},"    ]",[381,6019,438],{"class":387},[381,6021,6022],{"class":383,"line":1742},[381,6023,5339],{"emptyLinePlaceholder":5338},[381,6025,6027,6030,6032],{"class":383,"line":6026},69,[381,6028,6029],{"class":5407},"    styles",[381,6031,403],{"class":387},[381,6033,704],{"class":387},[381,6035,6037,6040,6042],{"class":383,"line":6036},70,[381,6038,6039],{"class":5407},"        header",[381,6041,403],{"class":387},[381,6043,704],{"class":387},[381,6045,6047,6049,6051,6053],{"class":383,"line":6046},71,[381,6048,5880],{"class":5407},[381,6050,403],{"class":387},[381,6052,508],{"class":452},[381,6054,438],{"class":387},[381,6056,6058,6061,6063,6067],{"class":383,"line":6057},72,[381,6059,6060],{"class":5407},"            bold",[381,6062,403],{"class":387},[381,6064,6066],{"class":6065},"sfNiH"," true",[381,6068,438],{"class":387},[381,6070,6072,6074,6076,6078,6080,6082],{"class":383,"line":6071},73,[381,6073,5557],{"class":5407},[381,6075,403],{"class":387},[381,6077,5287],{"class":387},[381,6079,471],{"class":432},[381,6081,5278],{"class":387},[381,6083,438],{"class":387},[381,6085,6087,6089,6091,6093,6095,6097,6099,6101,6103,6105,6107],{"class":383,"line":6086},74,[381,6088,5572],{"class":5407},[381,6090,403],{"class":387},[381,6092,490],{"class":2465},[381,6094,493],{"class":452},[381,6096,496],{"class":387},[381,6098,508],{"class":452},[381,6100,496],{"class":387},[381,6102,499],{"class":452},[381,6104,496],{"class":387},[381,6106,650],{"class":452},[381,6108,511],{"class":2465},[381,6110,6112],{"class":383,"line":6111},75,[381,6113,5597],{"class":387},[381,6115,6117,6120,6122],{"class":383,"line":6116},76,[381,6118,6119],{"class":5407},"        subheader",[381,6121,403],{"class":387},[381,6123,704],{"class":387},[381,6125,6127,6129,6131,6133],{"class":383,"line":6126},77,[381,6128,5880],{"class":5407},[381,6130,403],{"class":387},[381,6132,1560],{"class":452},[381,6134,438],{"class":387},[381,6136,6138,6141,6143,6145],{"class":383,"line":6137},78,[381,6139,6140],{"class":5407},"            italics",[381,6142,403],{"class":387},[381,6144,6066],{"class":6065},[381,6146,438],{"class":387},[381,6148,6150,6153,6155,6157,6159,6161],{"class":383,"line":6149},79,[381,6151,6152],{"class":5407},"            color",[381,6154,403],{"class":387},[381,6156,5287],{"class":387},[381,6158,1593],{"class":432},[381,6160,5278],{"class":387},[381,6162,438],{"class":387},[381,6164,6166,6168,6170,6172,6174,6176,6178,6180,6182,6184,6186],{"class":383,"line":6165},80,[381,6167,5572],{"class":5407},[381,6169,403],{"class":387},[381,6171,490],{"class":2465},[381,6173,493],{"class":452},[381,6175,496],{"class":387},[381,6177,650],{"class":452},[381,6179,496],{"class":387},[381,6181,499],{"class":452},[381,6183,496],{"class":387},[381,6185,508],{"class":452},[381,6187,511],{"class":2465},[381,6189,6191],{"class":383,"line":6190},81,[381,6192,5597],{"class":387},[381,6194,6196,6199,6201],{"class":383,"line":6195},82,[381,6197,6198],{"class":5407},"        footer",[381,6200,403],{"class":387},[381,6202,704],{"class":387},[381,6204,6206,6208,6210,6212],{"class":383,"line":6205},83,[381,6207,5880],{"class":5407},[381,6209,403],{"class":387},[381,6211,650],{"class":452},[381,6213,438],{"class":387},[381,6215,6217,6219,6221,6223,6225],{"class":383,"line":6216},84,[381,6218,6152],{"class":5407},[381,6220,403],{"class":387},[381,6222,5287],{"class":387},[381,6224,1593],{"class":432},[381,6226,5635],{"class":387},[381,6228,6230],{"class":383,"line":6229},85,[381,6231,6012],{"class":387},[381,6233,6235],{"class":383,"line":6234},86,[381,6236,517],{"class":387},[381,6238,6240],{"class":383,"line":6239},87,[381,6241,5339],{"emptyLinePlaceholder":5338},[381,6243,6245,6248,6250,6252,6254,6256],{"class":383,"line":6244},88,[381,6246,6247],{"class":5407},"    pageSize",[381,6249,403],{"class":387},[381,6251,5287],{"class":387},[381,6253,1703],{"class":432},[381,6255,5278],{"class":387},[381,6257,438],{"class":387},[381,6259,6261,6264,6266,6268,6270,6272,6274,6276,6278,6280,6282],{"class":383,"line":6260},89,[381,6262,6263],{"class":5407},"    pageMargins",[381,6265,403],{"class":387},[381,6267,490],{"class":2465},[381,6269,1723],{"class":452},[381,6271,496],{"class":387},[381,6273,1728],{"class":452},[381,6275,496],{"class":387},[381,6277,1733],{"class":452},[381,6279,496],{"class":387},[381,6281,1728],{"class":452},[381,6283,511],{"class":2465},[381,6285,6287],{"class":383,"line":6286},90,[381,6288,6289],{"class":387},"};\n",[381,6291,6293],{"class":383,"line":6292},91,[381,6294,5339],{"emptyLinePlaceholder":5338},[381,6296,6298,6300,6302,6305,6307,6310],{"class":383,"line":6297},92,[381,6299,4385],{"class":2465},[381,6301,102],{"class":387},[381,6303,6304],{"class":2465},"payload ",[381,6306,5268],{"class":387},[381,6308,6309],{"class":2465}," docDefinition",[381,6311,5333],{"class":387},[381,6313,6315,6318,6320],{"class":383,"line":6314},93,[381,6316,6317],{"class":5371},"return",[381,6319,5386],{"class":2465},[381,6321,5333],{"class":387},[88,6323,6324,6336,6353,6368],{"start":441},[30,6325,5240,6326,6329,6330,6333,6334,102],{},[147,6327,6328],{},"pdfbuilder"," node onto the canvas. Set the input property to ",[54,6331,6332],{},"msg.payload",", set output type to Buffer, and output property to ",[54,6335,6332],{},[30,6337,5240,6338,6341,6342],{},[147,6339,6340],{},"Write File"," node, configure it with:\n",[27,6343,6344,6347,6350],{},[30,6345,6346],{},"Filename: test.pdf",[30,6348,6349],{},"Action: Overwrite file",[30,6351,6352],{},"Add newline (\\n) to each payload?: Checked",[30,6354,6355,6356,6358,6359,6361,6362,6364,6365,6367],{},"Connect the ",[147,6357,5221],{}," node to the ",[147,6360,5243],{}," node, then to the ",[147,6363,6328],{}," node, and finally to the ",[147,6366,6340],{}," node.",[30,6369,6370],{},"Deploy the flow and click inject node to generate the pdf.",[12,6372,6373,6374,6377],{},"Once the PDF is generated, you can find it in the ",[54,6375,6376],{},".node-red"," directory.",[12,6379,6380],{},"However, if you want to share the PDF with others, display it on the dashboard, and provide a download button, you can use the HTTP API, an iframe, and a few supporting nodes. Let's walk through how to do that next.",[74,6382,6384],{"id":6383},"step-4-serving-the-pdf-via-http-and-previewing-it-on-the-dashboard","Step 4: Serving the PDF via HTTP and Previewing It on the Dashboard",[12,6386,6387],{},"In this step, we’ll make the generated PDF accessible through a web interface. You’ll be able to preview the PDF directly in the browser and embed it in your FlowFuse dashboard for a smooth, integrated experience. We’ll also add a download button so users can easily save the report. Instead of manually retrieving the file, we’ll create an HTTP endpoint to serve the PDF and use an iframe to display it.",[6389,6390,6392],"h4",{"id":6391},"exposing-the-pdf-via-http","Exposing the PDF via HTTP",[88,6394,6395,6406,6413,6486,6492],{},[30,6396,6397,6398,6401,6402,6405],{},"Drag the ",[147,6399,6400],{},"http-in"," node onto the canvas. Set the method to 'GET' and the URL to ",[54,6403,6404],{},"\u002Freport.pdf",". This will create an HTTP endpoint for retrieving the generated PDF.",[30,6407,6355,6408,6358,6410,6412],{},[147,6409,6400],{},[147,6411,5221],{}," node. This ensures that when a request is made to this endpoint, the necessary data is fetched from the database.",[30,6414,6415,6416,6418,6419,6422,6423,6425,6426,6435],{},"After the ",[147,6417,6340],{}," node in your flow, add a ",[147,6420,6421],{},"Change"," node. Connect it to the ",[147,6424,6340],{}," node, and configure it to set the following headers for the HTTP response:",[27,6427,6428],{},[30,6429,6430,6431,6434],{},"Set ",[54,6432,6433],{},"msg.headers"," to:",[372,6436,6438],{"className":374,"code":6437,"language":376,"meta":377,"style":377},"{   \n   'Content-Type': 'application\u002Fpdf',   \n   'Content-Disposition': 'inline; filename=\"report.pdf\"' \n}\n",[54,6439,6440,6448,6462,6482],{"__ignoreMap":377},[381,6441,6442,6445],{"class":383,"line":384},[381,6443,6444],{"class":387},"{",[381,6446,6447],{"class":2465},"   \n",[381,6449,6450,6453,6455,6458,6460],{"class":383,"line":391},[381,6451,6452],{"class":2465},"   'Content-Type'",[381,6454,403],{"class":387},[381,6456,6457],{"class":2465}," 'application\u002Fpdf'",[381,6459,496],{"class":387},[381,6461,6447],{"class":2465},[381,6463,6464,6467,6469,6472,6474,6477,6479],{"class":383,"line":409},[381,6465,6466],{"class":2465},"   'Content-Disposition'",[381,6468,403],{"class":387},[381,6470,6471],{"class":2465}," 'inline; filename=",[381,6473,400],{"class":387},[381,6475,6476],{"class":432},"report.pdf",[381,6478,400],{"class":387},[381,6480,6481],{"class":2465},"' \n",[381,6483,6484],{"class":383,"line":415},[381,6485,1745],{"class":387},[30,6487,6397,6488,6491],{},[147,6489,6490],{},"HTTP-response"," node onto the canvas and connect it to the Change node.",[30,6493,6494],{},"Deploy the flow",[12,6496,6497],{},"Now, this will send the generated PDF as a response to the incoming HTTP request, allowing it to be previewed in the browser. You can check by entering the URL:",[12,6499,6500],{},[54,6501,6502],{},"https:\u002F\u002F\u003Cyour-instance-name>.flowfuse.cloud\u002Freport.pdf",[74,6504,6506],{"id":6505},"embedding-the-pdf-on-the-dashboard-and-adding-the-download-button","Embedding the PDF on the Dashboard and Adding the Download Button",[12,6508,6509],{},"Now, let's embed the PDF into the dashboard:",[88,6511,6512,6518,6542],{},[30,6513,5240,6514,6517],{},[147,6515,6516],{},"ui-event"," node onto the canvas and configure it with the appropriate UI base settings.",[30,6519,6520,6521,5216,6524,6535],{},"Next, drag an ",[147,6522,6523],{},"iframe",[27,6525,6526,6529,6532],{},[30,6527,6528],{},"Select the correct group where the PDF should be displayed.",[30,6530,6531],{},"Adjust the size according to your preferences.",[30,6533,6534],{},"In the URL field, enter:",[372,6536,6540],{"className":6537,"code":6539,"language":530},[6538],"language-text","https:\u002F\u002F\u003Cyour-instance-name>.flowfuse.cloud\u002Freport.pdf\n",[54,6541,6539],{"__ignoreMap":377},[30,6543,6544],{},"Click Done and Deploy the flow.",[12,6546,6547],{},"Once deployed, when you open the dashboard, the generated PDF will be embedded and displayed directly on the dashboard page.",[12,6549,6550],{},"Now, let's add a download button:",[88,6552,6553],{"start":415},[30,6554,5240,6555,6558],{},[147,6556,6557],{},"ui-template"," widget onto the canvas and paste the following HTML code into it:",[372,6560,6564],{"className":6561,"code":6562,"language":6563,"meta":377,"style":377},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cdiv style=\"text-align:center; margin-top: 20px;\">\n    \u003Ca href=\"https:\u002F\u002F\u003Cyour-instance-name>.flowfuse.cloud\u002Freport.pdf\" download=\"report.pdf\"\n        style=\"display: inline-block; background-color: #4f7a28; color: white; padding: 14px 20px; text-align: center; text-decoration: none; font-size: 16px; border-radius: 5px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); transition: background-color 0.3s ease;\">\n        Download Report\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n","html",[54,6565,6566,6589,6618,6634,6639,6648],{"__ignoreMap":377},[381,6567,6568,6571,6574,6577,6579,6581,6584,6586],{"class":383,"line":384},[381,6569,6570],{"class":387},"\u003C",[381,6572,6573],{"class":5407},"div",[381,6575,6576],{"class":397}," style",[381,6578,5268],{"class":387},[381,6580,400],{"class":387},[381,6582,6583],{"class":432},"text-align:center; margin-top: 20px;",[381,6585,400],{"class":387},[381,6587,6588],{"class":387},">\n",[381,6590,6591,6594,6596,6599,6601,6603,6605,6607,6610,6612,6614,6616],{"class":383,"line":391},[381,6592,6593],{"class":387},"    \u003C",[381,6595,34],{"class":5407},[381,6597,6598],{"class":397}," href",[381,6600,5268],{"class":387},[381,6602,400],{"class":387},[381,6604,6502],{"class":432},[381,6606,400],{"class":387},[381,6608,6609],{"class":397}," download",[381,6611,5268],{"class":387},[381,6613,400],{"class":387},[381,6615,6476],{"class":432},[381,6617,561],{"class":387},[381,6619,6620,6623,6625,6627,6630,6632],{"class":383,"line":409},[381,6621,6622],{"class":397},"        style",[381,6624,5268],{"class":387},[381,6626,400],{"class":387},[381,6628,6629],{"class":432},"display: inline-block; background-color: #4f7a28; color: white; padding: 14px 20px; text-align: center; text-decoration: none; font-size: 16px; border-radius: 5px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); transition: background-color 0.3s ease;",[381,6631,400],{"class":387},[381,6633,6588],{"class":387},[381,6635,6636],{"class":383,"line":415},[381,6637,6638],{"class":2465},"        Download Report\n",[381,6640,6641,6644,6646],{"class":383,"line":441},[381,6642,6643],{"class":387},"    \u003C\u002F",[381,6645,34],{"class":5407},[381,6647,6588],{"class":387},[381,6649,6650,6653,6655],{"class":383,"line":458},[381,6651,6652],{"class":387},"\u003C\u002F",[381,6654,6573],{"class":5407},[381,6656,6588],{"class":387},[88,6658,6659],{"start":441},[30,6660,6661],{},"Deploy the flow.",[12,6663,6664,6668],{},[1752,6665],{"alt":6666,"dataZoomable":377,"src":6667},"Dashboard displaying embedded PDF with a download button","\u002Fblog\u002F2025\u002F05\u002Fimages\u002Fdashboard-with-embedded-report.png",[1757,6669,6670],{},[381,6671,6666],{},[19,6673,6675],{"id":6674},"final-thought","Final thought",[12,6677,6678,6679,6683],{},"Automating PDF report generation in Node-RED is a great way to save time and effort. Using tools like the node-red-contrib-pdfmake node, you can quickly turn your data into well-designed PDFs without manual work. If you want to save time and avoid the setup process, you can directly use our ready-made ",[34,6680,6682],{"href":6681},"\u002Fblueprints\u002Fmanufacturing\u002Fpdf-report-generator\u002F","PDF generation blueprint",". It’s an easy way to get started and generate professional reports quickly.",[185,6685,6686],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":377,"searchDepth":415,"depth":415,"links":6688},[6689,6690,6699],{"id":21,"depth":391,"text":22},{"id":68,"depth":391,"text":69,"children":6691},[6692,6693,6694,6695,6698],{"id":76,"depth":409,"text":77},{"id":123,"depth":409,"text":124},{"id":1761,"depth":409,"text":1762},{"id":6383,"depth":409,"text":6384,"children":6696},[6697],{"id":6391,"depth":415,"text":6392},{"id":6505,"depth":409,"text":6506},{"id":6674,"depth":391,"text":6675},{"type":6701,"title":6702,"description":6703},"sign-up","Automate PDF Reports with Node-RED on FlowFuse","FlowFuse gives you a managed Node-RED environment with one-click deployment, secure HTTP endpoints, and Dashboard 2.0 integration, everything you need to automate and serve PDF reports in production.","2025-05-07","Discover how to create automated PDF reports in Node-RED with FlowFuse. This guide covers everything from setting up the required nodes to generating and serving PDF reports with dynamic data, making sharing and archiving important business insights easy.","md","\u002Fblog\u002F2025\u002F05\u002Fimages\u002Fhow-to-generate-pdf-with-nr-and-ff.png","2026-06-03",{"keywords":6710,"excerpt":6711},"pdf generate with node-red, node-red pdf report generation, pdf report node-red, pdfmake node-red, platmac\u002Fnode-red-pdfbuilder, automate pdf node-red, node-red pdfbuilder",{"type":9,"value":6712},[6713],[12,6714,14],{},"\u002Fblog\u002F2025\u002F05\u002Fhow-to-generate-pdf-reports-using-node-red",{"title":5,"description":6705},{"loc":6715},"blog\u002F2025\u002F05\u002Fhow-to-generate-pdf-reports-using-node-red","Learn how to automate the generation of dynamic PDF reports within Node-RED and FlowFuse.",[6721,6722],"flowfuse","how-to","This guide shows how to automate PDF report generation in Node-RED using the @platmac\u002Fnode-red-pdfbuilder node and FlowFuse. It covers installing the node, building a flow that pulls production data from SQLite and renders it as a styled PDF, serving the file via an HTTP endpoint, and embedding it with a download button in a Dashboard 2.0 iframe widget.",null,"FsbwUJ7dhYjIYfdnE5RupxjOPUCGZ1HZ5wnQxf9KwWk",[],1785868298924]