<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.commander4j.com/index.php?action=history&amp;feed=atom&amp;title=LogoRenderer</id>
	<title>LogoRenderer - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.commander4j.com/index.php?action=history&amp;feed=atom&amp;title=LogoRenderer"/>
	<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;action=history"/>
	<updated>2026-06-14T22:20:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1877&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1877&amp;oldid=prev"/>
		<updated>2026-06-13T19:43:03Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:43, 13 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l112&quot;&gt;Line 112:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# From LogoClient, &amp;#039;&amp;#039;&amp;#039;upload a layout&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;send field data&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;browse the emulated drives&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;poll the pallet log&amp;#039;&amp;#039;&amp;#039; — and watch LogoRenderer render the result and log the traffic.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# From LogoClient, &amp;#039;&amp;#039;&amp;#039;upload a layout&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;send field data&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;browse the emulated drives&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;poll the pallet log&amp;#039;&amp;#039;&amp;#039; — and watch LogoRenderer render the result and log the traffic.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this arrangement LogoRenderer stands in for the printer so you can develop and test a client, while LogoClient stands in for the driving software so you can drive the renderer&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Either tool can equally be pointed at a real Logopak labeller when one is available&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this arrangement LogoRenderer stands in for the printer so you can develop and test a client, while LogoClient stands in for the driving software so you can drive the renderer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1875:rev-1877:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1875&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1875&amp;oldid=prev"/>
		<updated>2026-06-13T19:41:07Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:41, 13 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l117&quot;&gt;Line 117:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 117:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[LogoClient]] — the client-side companion tool that sends layouts and data to a labeller (real or emulated)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[LogoClient]] — the client-side companion tool that sends layouts and data to a labeller (real or emulated)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Middleware4j]], [[LabelServer4j]], [[AutoLab4j]] — &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;production software that drives Logopak labellers&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Middleware4j]], [[LabelServer4j]], [[AutoLab4j]] — &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;other Commander4j components in the labelling workflow&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[ZPLRenderer]] — the equivalent preview tool for Zebra ZPL labels&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[ZPLRenderer]] — the equivalent preview tool for Zebra ZPL labels&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Commander4j]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Commander4j]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1873:rev-1875:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1873&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1873&amp;oldid=prev"/>
		<updated>2026-06-13T19:40:34Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:40, 13 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Source Code and Releases ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Source Code and Releases ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LogoRenderer is part of the open-source Commander4j suite and is distributed under the GNU General Public License.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LogoRenderer is part of the open-source Commander4j suite and is distributed under the GNU General Public License. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The source code and release downloads are hosted on GitHub, and native install packages for every platform are listed on the Commander4j [[Downloads]] page.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Repository:&#039;&#039;&#039; [https://github.com/C4J/LogoRenderer https://github.com/C4J/LogoRenderer]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Releases (download media):&#039;&#039;&#039; [https://github.com/C4J/LogoRenderer/releases https://github.com/C4J/LogoRenderer/releases]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;All Commander4j downloads:&#039;&#039;&#039; [[Downloads]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Installation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Installation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1869:rev-1873:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1869&amp;oldid=prev</id>
		<title>Dgarratt at 19:28, 13 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1869&amp;oldid=prev"/>
		<updated>2026-06-13T19:28:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:28, 13 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l47&quot;&gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  java -jar c4j_logorenderer.jar [file.llf]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  java -jar c4j_logorenderer.jar [file.llf]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Running the jar requires a recent Java runtime (Java &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;21 &lt;/del&gt;or later). If a layout file is supplied on the command line it is opened on start-up; otherwise the application starts with an empty canvas. Demo layouts and data files are provided in the &amp;lt;code&amp;gt;virtual_disk/c0/&amp;lt;/code&amp;gt; folder.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Running the jar requires a recent Java runtime (Java &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;25 &lt;/ins&gt;or later). If a layout file is supplied on the command line it is opened on start-up; otherwise the application starts with an empty canvas. Demo layouts and data files are provided in the &amp;lt;code&amp;gt;virtual_disk/c0/&amp;lt;/code&amp;gt; folder.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The Main Window ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The Main Window ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1868:rev-1869:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1868&amp;oldid=prev</id>
		<title>Dgarratt at 19:27, 13 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1868&amp;oldid=prev"/>
		<updated>2026-06-13T19:27:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:27, 13 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Logopak PowerLeap labeller normally lives on the factory floor and is driven over the network by software &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;such as [[Middleware4j]], [[LabelServer4j]] or [[AutoLab4j]]&lt;/del&gt;. When developing or supporting that software — or designing the label layouts themselves — it is often impractical to have a real labeller on the bench. LogoRenderer removes that dependency. It is useful when:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Logopak PowerLeap labeller normally lives on the factory floor and is driven over the network by software &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;provided by Logopak DE&lt;/ins&gt;. When developing or supporting that software — or designing the label layouts themselves — it is often impractical to have a real labeller on the bench. LogoRenderer removes that dependency. It is useful when:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* You need to &amp;#039;&amp;#039;&amp;#039;see what a label layout will look like&amp;#039;&amp;#039;&amp;#039; without printing it, by opening a &amp;lt;code&amp;gt;.llf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.lqf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ldf&amp;lt;/code&amp;gt; file and viewing a faithful preview.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* You need to &amp;#039;&amp;#039;&amp;#039;see what a label layout will look like&amp;#039;&amp;#039;&amp;#039; without printing it, by opening a &amp;lt;code&amp;gt;.llf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.lqf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ldf&amp;lt;/code&amp;gt; file and viewing a faithful preview.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1866:rev-1868:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1866&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=LogoRenderer&amp;diff=1866&amp;oldid=prev"/>
		<updated>2026-06-13T19:23:10Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;LogoRenderer&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;c4j_logorenderer&amp;#039;&amp;#039;) is a standalone desktop application that renders [[Logopak]] PowerLeap label layout files to a visual on-screen preview &amp;#039;&amp;#039;&amp;#039;and&amp;#039;&amp;#039;&amp;#039; can stand in for a physical label printer by emulating its TCP communication protocol. It exists so that label layouts and the software that drives them can be developed and tested &amp;#039;&amp;#039;&amp;#039;on an ordinary PC, in environments where no physical Logopak labeller is available&amp;#039;&amp;#039;&amp;#039; to test against.&lt;br /&gt;
&lt;br /&gt;
It is the rendering and printer-emulation half of a pair: [[LogoClient]] is the client that sends layouts and data to a printer, and LogoRenderer can play the part of that printer. Together they let you exercise the whole label-printing workflow with no hardware at all.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Disclaimer: LogoRenderer is an independent open-source tool and is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; a Logopak product. It is not affiliated with, endorsed by, or supported by Logopak. Logopak, PowerLeap and related names are trademarks of their respective owners and are used solely to describe interoperability. The software is intended for local test and development use only — it must not be relied upon for production label printing.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
A Logopak PowerLeap labeller normally lives on the factory floor and is driven over the network by software such as [[Middleware4j]], [[LabelServer4j]] or [[AutoLab4j]]. When developing or supporting that software — or designing the label layouts themselves — it is often impractical to have a real labeller on the bench. LogoRenderer removes that dependency. It is useful when:&lt;br /&gt;
&lt;br /&gt;
* You need to &amp;#039;&amp;#039;&amp;#039;see what a label layout will look like&amp;#039;&amp;#039;&amp;#039; without printing it, by opening a &amp;lt;code&amp;gt;.llf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.lqf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ldf&amp;lt;/code&amp;gt; file and viewing a faithful preview.&lt;br /&gt;
* You are &amp;#039;&amp;#039;&amp;#039;writing or debugging software that talks to a labeller&amp;#039;&amp;#039;&amp;#039; and need something on the network that answers the same protocol — without owning the hardware.&lt;br /&gt;
* You want to &amp;#039;&amp;#039;&amp;#039;develop without a physical Logopak&amp;#039;&amp;#039;&amp;#039; altogether: render layouts, emulate the printer, and feed it from [[LogoClient]] or your own client code.&lt;br /&gt;
* You need to &amp;#039;&amp;#039;&amp;#039;check field data and operator prompts&amp;#039;&amp;#039;&amp;#039; (LQF query fields) by typing values and watching the rendered label update.&lt;br /&gt;
* You are &amp;#039;&amp;#039;&amp;#039;tuning fonts&amp;#039;&amp;#039;&amp;#039; so the on-screen rendering matches a real printed label.&lt;br /&gt;
&lt;br /&gt;
== Label and Data File Types ==&lt;br /&gt;
&lt;br /&gt;
LogoRenderer understands the PowerLeap LEAP layout family:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Extension !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.llf&amp;lt;/code&amp;gt; || Layout File — a complete label layout with all field data embedded. Opening one renders the label immediately.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.lqf&amp;lt;/code&amp;gt; || Query Layout File — a base layout containing &amp;lt;code&amp;gt;QUE&amp;lt;/code&amp;gt; operator prompts for fields that are filled in at print time. Opening one also populates the &amp;#039;&amp;#039;&amp;#039;QUE Input&amp;#039;&amp;#039;&amp;#039; tab so values can be typed in.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.ldf&amp;lt;/code&amp;gt; || Data File — a data-only file that references a master layout. Opening one runs its &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; commands to load the referenced layout and populate its fields.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Layouts may reference &amp;lt;code&amp;gt;.pcx&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.bmp&amp;lt;/code&amp;gt; images (logotypes) and a range of barcode types. A reference list of the wider Logopak file-type ecosystem is maintained alongside the project.&lt;br /&gt;
&lt;br /&gt;
== Source Code and Releases ==&lt;br /&gt;
&lt;br /&gt;
LogoRenderer is part of the open-source Commander4j suite and is distributed under the GNU General Public License.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Native install packages for &amp;#039;&amp;#039;&amp;#039;Windows, macOS and Linux&amp;#039;&amp;#039;&amp;#039; are available from the [[Downloads]] page and are the preferred installation method. Each installer bundles its own Java runtime, so &amp;#039;&amp;#039;&amp;#039;no separate Java installation is required&amp;#039;&amp;#039;&amp;#039;. Installing creates a native &amp;#039;&amp;#039;&amp;#039;LogoRenderer&amp;#039;&amp;#039;&amp;#039; launcher that can be started like any other desktop application.&lt;br /&gt;
&lt;br /&gt;
=== Running from the jar ===&lt;br /&gt;
&lt;br /&gt;
Alternatively the tool can be run directly as an ordinary Java (Swing) application. It is built with Maven:&lt;br /&gt;
&lt;br /&gt;
 mvn package&lt;br /&gt;
 java -jar c4j_logorenderer.jar [file.llf]&lt;br /&gt;
&lt;br /&gt;
Running the jar requires a recent Java runtime (Java 21 or later). If a layout file is supplied on the command line it is opened on start-up; otherwise the application starts with an empty canvas. Demo layouts and data files are provided in the &amp;lt;code&amp;gt;virtual_disk/c0/&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
== The Main Window ==&lt;br /&gt;
&lt;br /&gt;
The window is divided into a &amp;#039;&amp;#039;&amp;#039;label preview canvas&amp;#039;&amp;#039;&amp;#039; on the left and a &amp;#039;&amp;#039;&amp;#039;tabbed working area&amp;#039;&amp;#039;&amp;#039; on the right, with a menu bar and toolbars around them and a status bar along the bottom. The title bar shows the program name, version and the name of the open file.&lt;br /&gt;
&lt;br /&gt;
The status bar reports the current file, the layout dimensions in printer dots and millimetres, the zoom level, and the number of fields in the layout.&lt;br /&gt;
&lt;br /&gt;
=== Preview Canvas ===&lt;br /&gt;
&lt;br /&gt;
The canvas shows the rendered label exactly as the layout describes it — text, scalable text, barcodes, graphic lines and boxes, and embedded logotype images. The rendering engine replicates the coordinate system and geometry of a PowerLeap III print head, including the upside-down (180°) print orientation. Clicking a rendered element highlights the source lines that produce it.&lt;br /&gt;
&lt;br /&gt;
=== Source / QUE Input / Log Tabs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tab !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; || Lists the raw layout commands, one per line, each with a checkbox and a plain-language description. Un-checking a line excludes it from the render, so individual elements can be toggled on and off. Selecting a line shows its properties for editing.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;QUE Input&amp;#039;&amp;#039;&amp;#039; || For LQF layouts, presents one input box per operator prompt. Type values and apply them to see the populated label. This mirrors what an operator would be asked for at the machine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Log&amp;#039;&amp;#039;&amp;#039; || A colour-coded activity log showing file loads, parser messages, and all traffic to and from the printer emulator.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Viewing Controls ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu opens and reloads layout files and exports the rendered label as a PNG image. The &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039; menu provides zoom (preset levels, zoom in/out, and fit-to-window) and a &amp;#039;&amp;#039;&amp;#039;Rotate 180°&amp;#039;&amp;#039;&amp;#039; toggle that flips the preview to match the printer&amp;#039;s print orientation.&lt;br /&gt;
&lt;br /&gt;
== Font Mapping ==&lt;br /&gt;
&lt;br /&gt;
Because Logopak fonts are not present on a development PC, LogoRenderer maps each Logopak font name to a Java font for rendering. The &amp;#039;&amp;#039;&amp;#039;Settings → Font Mappings&amp;#039;&amp;#039;&amp;#039; dialog lists every mapping and lets you set the Java font family (or a bundled TrueType file), style, reference cell size and calibration factors so that the on-screen text closely matches a real printed label. The mappings are stored in &amp;lt;code&amp;gt;xml/config/fonts.xml&amp;lt;/code&amp;gt;; fonts found in a layout but not yet mapped are added automatically with sensible defaults, ready to be fine-tuned.&lt;br /&gt;
&lt;br /&gt;
== The Printer Emulator ==&lt;br /&gt;
&lt;br /&gt;
This is the feature that makes hardware-free development possible. LogoRenderer can open a TCP server that emulates a Logopak PowerLeap III labeller, answering the same &amp;#039;&amp;#039;&amp;#039;LEAP / LAMA&amp;#039;&amp;#039;&amp;#039; protocol commands a real machine would.&lt;br /&gt;
&lt;br /&gt;
=== Starting the emulator ===&lt;br /&gt;
&lt;br /&gt;
The connection bar at the top of the window selects the &amp;#039;&amp;#039;&amp;#039;IP address&amp;#039;&amp;#039;&amp;#039; (default &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; for the local machine) and &amp;#039;&amp;#039;&amp;#039;port&amp;#039;&amp;#039;&amp;#039; (default &amp;#039;&amp;#039;&amp;#039;8000&amp;#039;&amp;#039;&amp;#039;, the PowerLeap III primary data port; &amp;lt;code&amp;gt;8100&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;8300&amp;lt;/code&amp;gt; are also offered). Pressing &amp;#039;&amp;#039;&amp;#039;Start Server&amp;#039;&amp;#039;&amp;#039; begins listening; the Log tab shows when a client connects. Pressing the button again stops the server.&lt;br /&gt;
&lt;br /&gt;
=== What it emulates ===&lt;br /&gt;
&lt;br /&gt;
A connected client can do, against the emulator, the things it would do against a real labeller:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Browse and transfer files&amp;#039;&amp;#039;&amp;#039; on an emulated drive — the &amp;lt;code&amp;gt;virtual_disk/&amp;lt;/code&amp;gt; folder provides the labeller&amp;#039;s storage areas (&amp;lt;code&amp;gt;c0/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;c9/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;d0/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;f0/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r0/&amp;lt;/code&amp;gt;), so directory listings, downloads, uploads and deletes all behave realistically.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Load a layout and send field data&amp;#039;&amp;#039;&amp;#039; — when the client issues a &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; command the emulator loads that layout into the preview, and as &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; field-data commands arrive the on-screen label updates. The PC screen therefore shows what the real printer would be putting on a label.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Retrieve logs&amp;#039;&amp;#039;&amp;#039; — the emulator can serve pallet/label log files back to the client, so software that polls a labeller for &amp;quot;what was printed&amp;quot; can be tested end to end.&lt;br /&gt;
&lt;br /&gt;
=== Pallet print simulation ===&lt;br /&gt;
&lt;br /&gt;
When a loaded layout contains the pallet SSCC field, a &amp;#039;&amp;#039;&amp;#039;Print Label&amp;#039;&amp;#039;&amp;#039; control appears. Each press simulates a pallet print — two labels per pallet sharing one [https://en.wikipedia.org/wiki/Serial_Shipping_Container_Code SSCC] — increments the SSCC counter (persisted in &amp;lt;code&amp;gt;sscc.dat&amp;lt;/code&amp;gt;), and queues a log entry that a client can later retrieve. This lets log-polling and pallet-tracking logic be exercised without a real production run.&lt;br /&gt;
&lt;br /&gt;
== Using LogoRenderer and LogoClient Together ==&lt;br /&gt;
&lt;br /&gt;
The two tools form a complete bench setup for label development with no Logopak hardware:&lt;br /&gt;
&lt;br /&gt;
# In &amp;#039;&amp;#039;&amp;#039;LogoRenderer&amp;#039;&amp;#039;&amp;#039;, start the &amp;#039;&amp;#039;&amp;#039;printer emulator&amp;#039;&amp;#039;&amp;#039; on a port (default 8000).&lt;br /&gt;
# In &amp;#039;&amp;#039;&amp;#039;[[LogoClient]]&amp;#039;&amp;#039;&amp;#039;, connect in &amp;#039;&amp;#039;&amp;#039;PL3 (TCP)&amp;#039;&amp;#039;&amp;#039; mode to &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; on the same port.&lt;br /&gt;
# From LogoClient, &amp;#039;&amp;#039;&amp;#039;upload a layout&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;send field data&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;browse the emulated drives&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;poll the pallet log&amp;#039;&amp;#039;&amp;#039; — and watch LogoRenderer render the result and log the traffic.&lt;br /&gt;
&lt;br /&gt;
In this arrangement LogoRenderer stands in for the printer so you can develop and test a client, while LogoClient stands in for the driving software so you can drive the renderer. Either tool can equally be pointed at a real Logopak labeller when one is available.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[LogoClient]] — the client-side companion tool that sends layouts and data to a labeller (real or emulated)&lt;br /&gt;
* [[Middleware4j]], [[LabelServer4j]], [[AutoLab4j]] — production software that drives Logopak labellers&lt;br /&gt;
* [[ZPLRenderer]] — the equivalent preview tool for Zebra ZPL labels&lt;br /&gt;
&lt;br /&gt;
[[Category:Commander4j]]&lt;/div&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
</feed>