<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>LVBPrint Homepage</title>
	<atom:link href="https://www.lvbprint.de/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.lvbprint.de</link>
	<description>Software für Druckerlösungen</description>
	<lastBuildDate>Sun, 01 Feb 2026 09:04:34 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.lvbprint.de/wp-content/uploads/2021/05/LVBCropTrans.png</url>
	<title>LVBPrint Homepage</title>
	<link>https://www.lvbprint.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>100% automatisierte EPC-QR-Code (Girocode)-Einbettung direkt im Rechnungs-Druckprozess</title>
		<link>https://www.lvbprint.de/2026/01/15/auto-girocode/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Thu, 15 Jan 2026 17:44:54 +0000</pubDate>
				<category><![CDATA[ZUGFeRD Composer]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[Einbetten]]></category>
		<category><![CDATA[EPC-QR-Code]]></category>
		<category><![CDATA[Girocode]]></category>
		<category><![CDATA[QR-Code]]></category>
		<category><![CDATA[zugferd]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1887</guid>

					<description><![CDATA[Einführung So ein Girocode auf einer Rechnung ist eigentlich sehr praktisch. Eine geeignete Banking-App übernimmt automatisch alle Daten und man spart sich die mühsame Eingabe<div class="btn btn-light btn-arrow"><a href="https://www.lvbprint.de/2026/01/15/auto-girocode/" rel="nofollow" title="Read More">Read More</a></div>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Einführung</h2>


<p>So ein Girocode auf einer Rechnung ist eigentlich sehr praktisch. Eine geeignete Banking-App übernimmt automatisch alle Daten und man spart sich die mühsame Eingabe der IBAN und der anderen Daten.</p>
<p>Mit Hilfe von PrintMulti und dessen Fähigkeiten ist es möglich</p>
<ul>
<li>die relevanten Daten aus dem gerade druckenden Job zu extrahieren</li>
<li>ein Skript aufzurufen, das den QR-Code Code erzeugt und</li>
<li>diesen beim Drucken (auch auf PDF-Drucker) in das Dokument einzubetten.</li>
</ul>
<p>Es werden zwei unterschiedliche Methoden im mitgeliefertem Beispiel angeboten um den QR-Code zu erzeugen.</p>
<ol>
<li>Mittels eines Powershell-Skripts und dem Tool <a href="https://sourceforge.net/projects/zint/" target="_blank" rel="noopener">zint</a>.</li>
<li>Mit Hilfe eines Python-Skript und dem Modul &#8217;segno&#8216;</li>
</ol>
<p>Alle <a href="https://www.lvbprint.de/wp-content/uploads/2025/12/ZUGFeRD.drawio.png" target="_blank" rel="noopener">Beispiele mit versteckten Texten</a> bieten die Möglichkeit beim Drucken auf den Drucker &#8222;XRechnung&#8220; automatisch einen Girocode in die erzeugte ZUGFeRD Rechnung einzubetten.</p>
<p>Vor- und Nachteile und Installationsanweisungen (auch für PrintMulti) finden Sie in der <a href="https://www.lvbprint.de/files/zugferd/PrintMulti_XRechnung_de.pdf" target="_blank" rel="noopener">PrintMulti_XRechnung_de.pdf</a> Datei. Dort sind auch die Schritte im Einzelnen erklärt, wie man den Girocode in der Konfigurationsdatei aktivieren kann.</p>


<h2 class="wp-block-heading">So funktioniert&#8217;s</h2>



<p>So sieht es am Ende aus. Im Beispiel ist der Girocode aber oben rechts angeordnet. Das kann leicht angepasst werden.<br>Die relevanten Texte sind rot umrahmt. Im Beispiel ist der Verwendungszweck eine Kombination der Rechnungsnummer und des Empfängers</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" width="959" height="928" src="https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodePDF.png" alt="GiroCodePDF" class="wp-image-1890" style="aspect-ratio:1.0334010275321612;width:625px;height:auto" title="100% automatisierte EPC-QR-Code (Girocode)-Einbettung direkt im Rechnungs-Druckprozess 1" srcset="https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodePDF.png 959w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodePDF-300x290.png 300w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodePDF-768x743.png 768w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodePDF-12x12.png 12w" sizes="(max-width: 959px) 100vw, 959px" /></figure>



<p>Im folgenden Bild sind die versteckten Texte sichtbar (durch Makro oder Ändern der Formatvorlage).</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="883" height="883" src="https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal.png" alt="GiroCodeOriginal" class="wp-image-1891" style="width:732px;height:auto" title="100% automatisierte EPC-QR-Code (Girocode)-Einbettung direkt im Rechnungs-Druckprozess 2" srcset="https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal.png 883w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal-300x300.png 300w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal-150x150.png 150w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal-768x768.png 768w, https://www.lvbprint.de/wp-content/uploads/2026/01/GiroCodeOriginal-12x12.png 12w" sizes="(max-width: 883px) 100vw, 883px" /></figure>



<p>Folgende Zeilen in der PrintMultiRechnung.ini sind für die Extraktion zuständig:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code><code>invoicenr=$(;rawpage;\&#91;01\](&#91;^⁞]*)⁞;1;regex)
amount=$(;rawpage;"\\&#91;115\\](&#91;^⁞]*)⁞";1;regex)
buyer=$(;rawpage;\&#91;44\](&#91;^⁞]*)⁞;1;regex)
iban=$(;rawpage;\&#91;84\](&#91;^⁞]*)⁞;1;regex)
bic=$(;rawpage;"\\&#91;86\\](&#91;^⁞]*)⁞";1;regex)
nf=$(;rawpage;"\\&#91;NF\\](&#91;^⁞]*)⁞";1;regex)
currency=$(;rawpage;"\\&#91;05\\](&#91;^⁞]*)⁞";1;regex)
owner=$(;rawpage;"\\&#91;85\\](&#91;^⁞]*)⁞";1;regex)</code></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<ul class="wp-block-list">
<li>&#8222;rawpage&#8220; ist der Textinhalt des kompletten Dokuments. Alle erkannten Texte werden ohne Trenner in einer Zeile pro Seite verwendet. Ein Ausschnitt sieht z.B: so aus:<br><pre><span style="white-space: pre-wrap;"><code>RECHNUNG [01]2025-0001⁞[03]INVOICE⁞DATUM [02]01.03.2024⁞Käuferreferenz:[10]991-33333TEST-33⁞</code></span></pre></li>



<li>Die eckigen Klammern müssen durch &#8222;\[&#8220; und &#8222;\]&#8220; escaped werden.&nbsp;</li>



<li>Auf den erkannte Text innerhalb der runden Klammern kann über den Index zugegriffen werden. Hier gibt es nur eine rundes Klammerpaar, insofern kann nur die 1 verwendet werden.</li>



<li>Das &#8222;<strong>⁞</strong>&#8220; ist einfach ein seltenes Zeichen aus dem Unicode-Zeichensatz, das als Trenner verwendet wird. Es werden also beliebig viele Zeichen außer dem Trennzeichen bis zu einem Trennzeichen an die jeweiligen Werte auf der linken Seite zugewiesen.</li>



<li>In der Kommandozeile wird mittels @&#8220;#(xxx)I&#8220; auf den Wert zugegriffen. Falls eine Variable mit einem &#8222;!&#8220; anfängt, dann wird sie als Umgebungsvariable gesetzt und man kann mittels %xxx% darauf zugreifen. Das funktioniert nur nicht mit leeren Texten.&nbsp;</li>



<li>Bei Definitionen zwischen @&#8220;&#8230;&#8220; bleiben die Anführungszeichen erhalten und Escape-Sequencen werden nicht ersetzt.&nbsp;</li>



<li>In der PrintMulti Logdatei &#8222;DbgLog.csv&#8220; sind alle Extraktionen und der Aufruf des Skripts ggf. zu sehen.</li>
</ul>



<h2 class="wp-block-heading">Mögliche Anpassungen</h2>



<p>Die Position des Girocodes muss mit Sicherheit auf das Layout Ihrer Rechnung angepasst werden. Die entsprechenden Werte X,Y, Align und Height sind selbsterklärend und finden sich im Abschnitt [QRImage].</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code><code><code><strong>&#91;QRImage]</strong>
Active=%CreateGiroCode%
Type=Image
Foreground=0
Source=%QRFile%
<strong>X=18cm
Y=1cm
Align=Left
Height=2cm</strong></code></code></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Der Verwendungszweck wird hier zusammengesetzt. In vielen Fällen reicht vermutlich die Rechnungsnummer:</p>



<pre class="wp-block-code"><code><code><code><code><strong>purpose="#(invoicenr)I,#(buyer)I"</strong></code></code></code></code></pre>



<h2 class="wp-block-heading">Auswahl des Verfahrens</h2>



<p>Sie können zwischen einem Powershell-Skript und einem Python-Skript in der Ini wählen. Andere Skriptsprachen können ggf. über die gleiche Art angebunden werden.</p>



<p>Aktivieren Sie den entsprechenden ExecuteCmd Befehl durch Kommentieren der nicht verwendeten Befehle.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code><strong>ExecuteCmd= powerShell.exe -File @"%BasePath%\PrintMulti\Girocode\CreateGiroQRCode.ps1" -FileName @"%QRFile%" …</strong>
;ExecuteCmd="%PythonPath%" @"%BasePath%\PrintMulti\Girocode\CreateGiroQRCode.py" --filename @"%QRFile%" …
;ExecuteCmd=py @"%BasePath%\PrintMulti\Girocode\CreateGiroQRCode.py" --filename @"%QRFile%" …</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Details zur Installation und Fallstricke finden Sie hier: <a href="https://www.lvbprint.de/files/zugferd/PrintMulti_XRechnung_de.pdf" target="_blank" rel="noreferrer noopener">PrintMulti_XRechnung_de.pdf</a></p>



<h2 class="wp-block-heading">Girocode ohne ZUGFeRD Rechnung</h2>



<p>Die mit dem ZUGFeRD-Composer mitgelieferten Beispiele mit versteckten Texten erlauben eine einfache Einbettung eines Girocodes, da die Extraktion der notwendigen Daten sehr einfach ist.</p>



<p>Das funktioniert auch mit anderen Rechnungen, sofern die relevanten Daten extrahiert werden können. Normalerweise sind die Kontodaten fix, sodass nur der Verwendungszweck und der Betrag aus der Rechnung extrahiert werden müssen.</p>



<p>Im Beispiel &#8222;<a href="http://www.lvbprint.de/files/girocode/invoice_two_vat_girocode_only.odt" target="_blank" data-type="link" data-id="www.lvbprint.de/files/girocode/invoice_two_vat_girocode_only.odt" rel="noreferrer noopener">invoice_two_vat_girocode_only.odt</a>&#8220; wurden alle versteckten Texte entfernt. Wenn Sie einen Blick in die extrahierten Texte im <em>&#8222;C:\ZUGFeRD\Temp&#8220;</em> Verzeichnis werfen, stellen Sie fest, dass die Rechnungsnummer (=Verwendungszweck) und der Betrag extrahiert werden können.</p>



<pre class="wp-block-code"><code>Die relevanten Stellen sind (Leerstellen am Anfang und Ende werden von den Girocode Skripten entfernt)
<code>...RECHNUNG: <strong>2025-0001</strong>DATUM:...0,00€FÄLLIGER BETRAG<strong>1004,66</strong>€Zahlung...</code></code></pre>



<p>Es gibt auch eine &#8222;<a href="http://www.lvbprint.de/files/girocode/PrintMulti_Girocode.ini" target="_blank" data-type="link" data-id="http://www.lvbprint.de/files/girocode/PrintMulti_Girocode.ini" rel="noreferrer noopener">PrintMulti_Girocode.ini</a>&#8222;, die entsprechend vorbereitet ist. Sie verlangt einen PrintMulti Drucker <em>&#8222;Girocode&#8220;</em>.</p>



<p>Der wichtige Abschnitt ist hier (&#8222;purpose&#8220;, &#8222;amount&#8220; aus dem Rechnungstext; der Rest ist fix)</p>



<pre class="wp-block-code"><code><code>purpose=$(;rawpage;RECHNUNG:(&#91;^DATUM])DATUM;1;regex) 
amount=$(;rawpage;FÄLLIGER BETRAG"(&#91;^€])€;1;regex)
owner="Gustav Gansöäü"
iban="DE75 5121 0800 1245 1261 99"
bic="GENOKDKSJFG"
nf="DE-de"
currency="EUR"</code></code></pre>



<p>Der Kontoinhaber kann auch Umlaute enthalten. Die Girocode Definition erlaubt aber nicht die Verwendung aller Unicode Zeichen aus dem Zeichensatz. Die PDF Rechnung enthält einen anderen Kontoinhaber.<br></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatische ZUGFeRD Validierung mit dem Kosit Validator</title>
		<link>https://www.lvbprint.de/2025/11/13/zugferd-validierung/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Thu, 13 Nov 2025 19:27:59 +0000</pubDate>
				<category><![CDATA[ZUGFeRD Composer]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[kosit]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[zugferd]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1849</guid>

					<description><![CDATA[Der Artikel beschreibt, wie mit dem ZUGFeRD-Composer, der die offizielle KoSIT-Validierung nutzt, eine automatische ZUGFeRD Validierung durchgeführt werden kann mit optionalem Html Report]]></description>
										<content:encoded><![CDATA[<h3>Neu! Automatische ZUGFeRD Validierung von digitalen Rechnungen mit dem freien Kosit Validator</h3>
<p>Es gibt eine neue Version des ZUGFeRD Composers 1.0.0.4 mit folgenden Neuerungen:</p>
<p><a href="https://www.lvbprint.de/files/zugferd/History.pdf" target="_blank" rel="noopener">ZUGFeRD-Composer History </a></p>
<p>Außer ein paar neuen BT Feldern unterstützt der Composer jetzt eine <strong>automatische </strong><strong>Validierung</strong> der erzeugten XRechnung  mit dem <a href="https://github.com/itplr-kosit/validator/" target="_blank" rel="noopener">Kosit Validierer.</a></p>
<p>Die KoSIT-Validierung ist ein Prüfverfahren der Koordinierungsstelle für IT-Standards (<a href="https://www.xoev.de/" target="_blank" rel="noopener">KoSIT</a>).</p>
<p>Einfach die Option <strong>/v</strong> nutzen und ggf. noch <strong>/vH</strong> anhängen für einen Report im Html Format.</p>
<p>In allen Beispielen mit Macros ist ein automatischer Aufruf enthalten. Sollte der Validator einen Fehler melden, dann erzeugt auch der Composer einen entsprechenden Fehler.</p>
<p>Bitte beachten Sie, dass der Aufruf etwas Zeit in Anspruch nimmt.</p>
<h3>Zur Erinnerung</h3>
<p>Der ZUGFeRD-Composer ist ein Kommandozeilentool, mit dem sich aus Textdateien gültige digitale Rechnungen im XRechnungs- oder ZUGFeRD-Format erstellen lassen.</p>
<p>Das kann u.A. verwendet werden:</p>
<ul>
<li>In Word-, Excel-, LibreOffice Macros um den enthaltenen Text zu extrahieren und den Composer aufzurufen</li>
<li>Die Dokumente (hier auch gemischte Word/Exceldokumente) auf einen PrintMulti Drucker (XRechnung im Beispiel) drucken. Dieser kann in den meisten Fällen den Text extrahieren und dazu noch eine PDF im ZUGFeRD Format erstellen.</li>
</ul>
<ul>
<li>Falls eine Anwendung den Rechnungstext sinnvoll in die Zwischenablage kopieren kann, ist es ebenfalls möglich den Composer zu nutzen.</li>
</ul>
<h3 style="text-align: left;">Hier ein Auschnitt aus einem erzeugenHtml Report</h3>
<p><a href="https://www.lvbprint.de/2025/04/05/zugferd-rechnungen-aus-excel-erzeugen/"><img decoding="async" class="size-full wp-image-1851 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/11/ValidationExample.png" alt="Kosit Validator Example" width="905" height="941" title="Automatische ZUGFeRD Validierung mit dem Kosit Validator 3" srcset="https://www.lvbprint.de/wp-content/uploads/2025/11/ValidationExample.png 905w, https://www.lvbprint.de/wp-content/uploads/2025/11/ValidationExample-289x300.png 289w, https://www.lvbprint.de/wp-content/uploads/2025/11/ValidationExample-768x799.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/11/ValidationExample-12x12.png 12w" sizes="(max-width: 905px) 100vw, 905px" /></a></p>
<p>Hier noch eine Übersicht über die Möglichkeiten der digitalen Rechnungserstellung:</p>
<p><figure id="attachment_1840" aria-describedby="caption-attachment-1840" style="width: 978px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1840" src="https://www.lvbprint.de/wp-content/uploads/2025/08/zugferd_transparent_light_shadow.png" alt="Übersicht ZUGFeRD Beispiele" width="978" height="776" title="Automatische ZUGFeRD Validierung mit dem Kosit Validator 4" srcset="https://www.lvbprint.de/wp-content/uploads/2025/08/zugferd_transparent_light_shadow.png 978w, https://www.lvbprint.de/wp-content/uploads/2025/08/zugferd_transparent_light_shadow-300x238.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/08/zugferd_transparent_light_shadow-768x609.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/08/zugferd_transparent_light_shadow-15x12.png 15w" sizes="auto, (max-width: 978px) 100vw, 978px" /><figcaption id="caption-attachment-1840" class="wp-caption-text">ZUGFeRD Beispiele</figcaption></figure></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gültige ZUGFeRD Rechnungen aus Excel Dateien erzeugen</title>
		<link>https://www.lvbprint.de/2025/04/05/zugferd-rechnungen-aus-excel-erzeugen/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Sat, 05 Apr 2025 13:49:42 +0000</pubDate>
				<category><![CDATA[ZUGFeRD Composer]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[factur-x]]></category>
		<category><![CDATA[XRechnung]]></category>
		<category><![CDATA[zugferd]]></category>
		<category><![CDATA[zugferd aus excel]]></category>
		<category><![CDATA[zugferd aus excel erstellen]]></category>
		<category><![CDATA[ZUGFeRD excel]]></category>
		<category><![CDATA[zugferd mit excel]]></category>
		<category><![CDATA[ZUGFeRD Rechnung]]></category>
		<category><![CDATA[ZUGFeRD Rechnung aus Excel]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1767</guid>

					<description><![CDATA[Einführung Hier erfahren Sie im Detail, wie ZUGFeRD Rechnungen aus Excel Dateien erstellen können. Alle verwendeten Tools sind kostenlos. Die verschiedenen Möglichkeiten Bitte lesen Sie<div class="btn btn-light btn-arrow"><a href="https://www.lvbprint.de/2025/04/05/zugferd-rechnungen-aus-excel-erzeugen/" rel="nofollow" title="Read More">Read More</a></div>]]></description>
										<content:encoded><![CDATA[<h2>Einführung</h2>
<p>Hier erfahren Sie im Detail, wie ZUGFeRD Rechnungen aus Excel Dateien erstellen können. Alle verwendeten Tools sind kostenlos.</p>
<h2>Die verschiedenen Möglichkeiten</h2>
<p>Bitte lesen Sie zunächst den Einführungsteil aus diesem <a href="https://www.lvbprint.de/2025/04/03/zugferd-xrechnung-aus-word-erzeugen/" target="_blank" rel="noopener">Artikel</a> über die Rechnungserstellung mit Word.</p>
<h4>Die „Versteckte-Text Methode mit eingebettetem Excel Objekt“</h4>
<p>Das ist eine Mischung aus Word und eingebettetem Excel-Sheet mit den tatsächlichen Berechnungen.<br />Diese Möglichkeit ist in dem <a href="https://www.lvbprint.de/2025/04/03/zugferd-xrechnung-aus-word-erzeugen/" target="_blank" rel="noopener">Artikel</a> mit Word beschrieben.</p>
<h4><strong>Die &#8222;Kommentar Methode&#8220;</strong></h4>
<p>Jede Zelle mit Rechnungsinformationen erhält einen Kommentar in einem bestimmten Format, welches ein Makro ausliest und wie beim Word Beispiel mit <em>&#8222;benannten Verweisen&#8220;</em> eine Konfigurationsdatei für den Composer mit den extrahierten Daten erzeugt.</p>
<p>Das Makro kann dann auch gleich eine PDF/A3 erzeugen, so dass auch ZUGFeRD Rechnungen möglich sind.</p>
<p>Sie können jederzeit das Makro verändern und auf Ihre Bedürfnisse anpassen. In dem Beispiel <em>&#8222;invoice_using_comments.xlsm&#8220;</em> enthält das erste Sheet eine ausführlichere Beschreibung über die mögliche Formatierung der Kommentare.</p>
<p>Hier ein kurzer Ausflug in die Syntax der verwendeten Kommentare:</p>
<ul>
<li>Es gibt einfache Kommentare bei denen ein einzelnes Rechnungspattern mit Unterstrich verwendet wird. Alle möglichen Pattern sind in der Composer Konfigurationsdatei &#8222;DefaultExtractConfiguration.txt&#8220; (die wird hier nicht verwendet, aber die Namen der Pattern sind alle aufgeführt) enthalten. Die meisten Einträge erfolgen auf diese Art: z.B. &#8222;_seller_contact_name&#8220;</li>
<li>Um die Definition für kombinierte Teile einfacher zu machen, kann man auch mehrere Pattern in einem Kommentar verarbeiten. Die Patternteile sind immer durch Strichpunkt getrennt. Man kann einen Trenner für den aufzuteilenden  Text mit &#8222;sep=&#8220; festlegen. Ohne Angabe ist das ein Leerzeichen.
<ul>
<li style="list-style-type: none;">
<ul>
<li>Ein Beispiel für eine Auftrennung mit Leerzeichen ist bei &#8222;Land Plz Ort&#8220; zu sehen. Um diese nicht in drei getrennte Zellen definieren zu müssen, wird hier einfach &#8222;_seller_country;_seller_postcode;_seller_city&#8220; angegeben.<br />Zeilenumbrüche werden ignoriert und nur die Teile mit Unterstrich finden Beachtung.  Falls durch die Spaltung des Textes mehr Einzelteile als Definitionen gibt, dann enthält der letzte Teil den kompletten Rest des Textes.<br />Das ist hier ja auch sinnvoll, da das Land und die Postleitzahl keine Leerzeichen enthalten, der Ort u.U. aber schon.</li>
<li>Es gibt auch Kommentare mit mehreren Teilen und anderem Trennzeichen wie bei der Umsatzsteuer. Dort ist als Kommentar hinterlegt: <em>&#8222;sep=:;egal;_seller_vat&#8220;.</em>Bei dem Text &#8222;USt-IdNr: DE987654321&#8220; würde also am Doppelpunkt getrennt und der erste Teil ignoriert (da nicht mit Unterstrich anfängt). Der zweite wird als &#8222;seller_vat&#8220; dem Composer übergeben. Leerzeichen vor und nach dem Text werden entfernt.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Das geschieht alles im Makro und kann ggf. angepasst werden.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-1777 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments_parts-300x181.png" alt="Zusammengesetzte Kommentare" width="452" height="273" title="Gültige ZUGFeRD Rechnungen aus Excel Dateien erzeugen 7" srcset="https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments_parts-300x181.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments_parts-18x12.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments_parts.png 428w" sizes="auto, (max-width: 452px) 100vw, 452px" /></p>
<p>Hier sieht man fast alle Kommentare (fettgeschriebene Kommentare haben keine besondere Bedeutung; &#8222;Rabatt/Zuschlag&#8220; dient hier als Verkäufername)</p>
<p><img loading="lazy" decoding="async" class=" wp-image-1778" src="https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments-300x212.png" alt="Alle Kommentare" width="1100" height="777" title="Gültige ZUGFeRD Rechnungen aus Excel Dateien erzeugen 8" srcset="https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments-300x212.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments-18x12.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/04/invoice_using_comments.png 1170w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /></p>
<p>Das Beispiel funktioniert nur mit dem enthaltenen Makro. Wichtige Konstanten (wie den Pfad zum Composer) finden Sie ganz oben in der Datei:</p>
<p>Const debugOutput As Boolean = True</p>
<pre>' Create a job log output file 
Const JobLogOutput As Boolean = True
 
' Default path were all files are 
Const basePath As String = "C:\ZUGFeRDComposer\"
 
' Options for ZUGFeRDComposer 
Const additionalOptions As String = " /mE /fL /fO"</pre>
<p>Das Excel-Beispiel enthält mehrere Sheets mit unterschiedlicher Konfiguration von Zuschlägen und Rabatten. Das Makro erzeugt immer aus dem aktuellen Sheet die Rechnung.</p>
<p><a href="https://www.lvbprint.de/files/zugferd/examples/excel_comments.pdf" target="_blank" rel="noopener">Hier</a> eine erzeugte ZUGFeRD Rechnung vom ersten Sheet:</p>
<p>Die Jobdatei vom Composer enthält eine Liste aller Ergebnisse, erfolgreich oder mit Fehlern, dem Kunden, Fälliger Betrag, &#8230;, falls die Option &#8222;/OJ&#8220; festgelegt wurde (im Makro über <em>&#8222;JobLogOutput&#8220;</em> Konstante)</p>
<pre>Date;Result;Message;Invoice Nr; Invoice Date;Buyer name;Invoice sum; Invoice to pay
2025-04-05_15-15-13;OK;Successful;DC-4711;05.04.2025;Kundenname;;49.59
</pre>
<p>Bei der Verwendung der Standardpfade finden Sie im Verzeichnis <em>&#8222;C:\ZUGFeRDComposer\Temp&#8220;</em> einige Logdateien und die temporäre PDF, die zum Einbetten des XML verwendet wurde.</p>
<p><a href="https://www.portinvoice.com/" target="_blank" rel="noopener">Bei &#8222;portinvoice&#8220;</a> können Sie Online dann das Ergebnis genauestens verifizieren und sich eine <a href="https://www.lvbprint.de/files/zugferd/examples/sichtkopie710333002.pdf" target="_blank" rel="noopener">Sichtkopie</a> anzeigen lassen:</p>
<p>Importieren der XRechnung geht auch über das sehr hilfreiche Rechnungs-Tool von <a href="https://tools.pdf24.org/de/elektronische-rechnung-erstellen" target="_blank" rel="noopener">pdf24</a> (kann man auch lokal installieren), das sehr zu empfehlen ist (auch für die Rechnungserstellung selber, falls Sie die Daten selber eingeben möchten). Hier ein <a href="https://www.lvbprint.de/2025/04/03/zugferd-xrechnung-aus-word-erzeugen/" target="_blank" rel="noopener">Beispiel</a> für die dort erstellte <a href="https://www.lvbprint.de/files/zugferd/examples/pdf24-Rechnung-DC-4711.pdf" target="_blank" rel="noopener">ZUGFeRD Rechnung</a>.</p>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ZUGFeRD Rechnungen aus Word Dateien erzeugen</title>
		<link>https://www.lvbprint.de/2025/04/03/zugferd-rechnungen-aus-word-erzeugen/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Thu, 03 Apr 2025 16:50:20 +0000</pubDate>
				<category><![CDATA[ZUGFeRD Composer]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[factur-x]]></category>
		<category><![CDATA[XRechnung]]></category>
		<category><![CDATA[zugferd]]></category>
		<category><![CDATA[zugferd mit word]]></category>
		<category><![CDATA[ZUGFeRD Rechnungen aus word]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1669</guid>

					<description><![CDATA[Inhalt Dieser Artikel zeigt verschiedene Möglichkeiten auf, wie man gültige ZUGFeRD Rechnungen aus Word Dokumenten frei erstellen kann. Einführung für die Erstellung von ZUGFeRD Rechnungen<div class="btn btn-light btn-arrow"><a href="https://www.lvbprint.de/2025/04/03/zugferd-rechnungen-aus-word-erzeugen/" rel="nofollow" title="Read More">Read More</a></div>]]></description>
										<content:encoded><![CDATA[<h2>Inhalt</h2>
<p>Dieser Artikel zeigt verschiedene Möglichkeiten auf, wie man gültige ZUGFeRD Rechnungen aus Word Dokumenten frei erstellen kann.</p>
<h2>Einführung für die Erstellung von ZUGFeRD Rechnungen aus Word</h2>
<p>Zum Ausprobieren laden Sie am besten dieses <a href="https://www.lvbprint.de/files/zugferd/latest/ZUGFeRDComposer.zip" target="_blank" rel="noopener">Archiv</a> herunter und entpacken es in ein Verzeichnis <em>&#8222;C:\ZUGFeRDComposer&#8220;</em>, so dass Verzeichnisse wie <em>&#8222;C:\ZUGFeRDComposer\Bin&#8220;</em> entstehen.</p>
<p>Im Unterverzeichnis <em>&#8222;Examples&#8220;</em>  befinden sich die hier referenzierten Beispiele sowie diverse Hilfedateien.<br />
Weitere Details zum Composer finden Sie <a href="https://www.lvbprint.de/zugferd_xrechnung_factur-x/" target="_blank" rel="noopener">hier</a>:</p>
<p>Im Internet gibt es inzwischen eine Vielzahl von Angeboten zur Erstellung digitaler Rechnungen. Meistens sind dafür jedoch spezielle Dokumente erforderlich oder Sie müssen die Daten online eingeben und die Rechnung herunterladen. Dabei vertrauen Sie dem Anbieter Ihre Daten an. In diesem Artikel erfahren Sie, wie Sie mit dem <a href="https://www.lvbprint.de/zugferd_xrechnung_factur-x/" target="_blank" rel="noopener">ZUGFeRD-Composer</a> und ggf. <a href="https://www.lvbprint.de/printmulti-gleichzeitig-drucken/" target="_blank" rel="noopener">PrintMulti</a> aus Ihren Lieblingsdokumenten rechtskonforme digitale Rechnungen erstellen. Was mit Word/Excel funktioniert, klappt vermutlich auch mit Libre-Office Anwendungen.</p>
<p>Dieser Artikel konzentriert sich auf die Microsoft Anwendungen. Es ist ein Libre-Writer Beispiel enthalten, das mit PrintMulti oder über die Zwischenablagemöglich verwendet werden kann.</p>
<p>Um die dauernde Wiederholung der Begriffe ZUGFeRD, XRechnung und Factur-X zu verhindern, verwendet dieser Artikel folgende Abkürzungen in der angezeigten Farbe.</p>
<ul>
<li><em>PDF</em> : Allgemein das PDF Format</li>
<li><span style="color: #0000ff;"><em>_pdf_</em></span> : Das ist die Basis PDF/A3 Datei die zur Einbettung von digitalen Rechnungen verwendet wird.
<ul>
<li>Sie können diese durch Speichern des Dokuments in Word oder Libre-Writer erzeugen</li>
<li>Durch Drucken auf einen geeigneten PDF Drucker wie den im PrintMulti Beispiel verwendeten PDF-Architect (da genügt die freie Version)</li>
<li>Oder ggf. aus Ihrer Anwendung durch eine der vielen Bibliotheken.</li>
</ul>
</li>
<li><span style="color: #0000ff;"><em>_PDF_</em></span> : Das entspricht dem ZUGFeRD Format also ein PDF/A3 mit eingebetteter digitialer Rechnung</li>
<li>XML : Allgemein das XML Format</li>
<li><span style="color: #0000ff;">_XML_</span> : Digitale Rechnung im XML Format. Dafür gibt es verschiedene Normen und Formate wie z.B. <a href="https://www.treuz.de/2024/12/31/10-zugferd-oder-xrechnung-ubl-oder-cii/" target="_blank" rel="noopener">CII und UBL</a>. Der Composer kann über Kommandozeile oder eine Konfigurationsdatei alle möglichen Formate erzeugen sofern die zugrundeliegende Bibliothek <a href="https://github.com/stephanstapel/ZUGFeRD-csharp" target="_blank" rel="noopener">ZUGFeRD-csharp</a> sie unterstützt (Denken Sie ggf. auch daran, den Autor dieser Bibliothek zu unterstützen).</li>
</ul>
<h2>Die verschiedenen Möglichkeiten</h2>
<h3>Das braucht der Composers</h3>
<ul>
<li>Eine <em>&#8222;Textdatei&#8220;</em> mit dem Inhalt der Rechnung oder die entsprechenden Daten in der Zwischenablage.</li>
<li>Eine <em>&#8222;Konfigurationsdatei&#8220;</em>, die festlegt, wie die Rechnungsdaten aus der Textdatei extrahiert werden. Diese Datei kann auch Konstanten wie z.B. wiederkehrende Daten enthalten. Falls alle notwendigen Rechungsdaten als Konstanten enthalten sind, wird die Textdatei nicht benötigt (z.B.: Serienbriefbeispiele)</li>
<li>Falls eine <span style="color: #0000ff;"><em>_PDF_</em></span> erstellt werden soll (bei <span style="color: #0000ff;">_XML_</span> nicht notwendig), wird die Originalrechnung in einer PDF/A-3-Datei (<span style="color: #0000ff;"><em>_pdf_</em></span>) benötigt.</li>
</ul>
<h3>Diese Möglichkeiten gibt es</h3>
<h4><strong><strong>Die &#8222;Versteckte-Text Methode&#8220;</strong></strong></h4>
<p>Mit Hilfe von Formatvorlagen werden Steueranweisungen in kleiner weißer Schrift vor und hinter die Rechnungsteile geschrieben. Durch Makros oder Modifikation der Formatvorlagen können diese für Testzwecke leicht sichtbar gemacht werden. Um den Text der so angepassten Rechnung dem Composer zur Verfügung zu stellen, gibt es mehrere Möglichkeiten:</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><em>Über die Zwischenablage mittels Strg+A / Strg+C oder über ein Makro den Text markieren</em>. Der Composer kann den Text aus der Zwischenablage mit der Option ‚/iC‘ übernehmen. Dies funktioniert bei allen Rechnungen, die versteckten Text enthalten und bei denen die Anwendung den Text korrekt formatiert in die Zwischenablage kopiert. Bei Verwendung eines Makros könnte das aktuelle Dokument als PDF gespeichert werden und somit <span style="color: #0000ff;">_PDF_</span> erzeugt werden. Ein Beispiel für ein Kommandozeilen-Skript <em>„RunFromClipboard.cmd“</em> ist enthalten. <span style="color: #0000ff;">_XML_</span> können dann einfach durch Kopieren der Rechnung aus Word, Libre-Writer, Browser, &#8230; in die Zwischenablage und Aufruf des Skripts erstellt werden
<pre>Beispiel:Alle mit versteckten Texten z.B. invoice_two_novat_no_eu.docx, invoice_two_vat.docx, invoice_two_vat.odt</pre>
</li>
<li><em>Mittels IFilter Technik</em> Diese Technik wird von Windows verwendet, um Text aus Dokumenten zu extrahieren und für die Volltextsuche zu verwenden. Für die Verwendung im Composer muss der Text, den der entsprechende IFilter aus dem Dokument erzeugt, entsprechend formatiert sein. Dies funktioniert nicht für alle Dokumenttypen, scheint aber für Word zu funktionieren. Es wird ein eigenständiges Tool „Ifiltercmd.exe“ mitgeliefert, mit dem die Technik unabhängig ausprobiert werden kann. Der Composer kann auch eine Log-Datei mit dem extrahierten Text erzeugen.
<pre>Beispiel: invoice_two_vat.docm mit dem Smiley Makro</pre>
</li>
<li><em>Durch Drucken auf einen PrintMulti-Drucker</em> Die Konfiguration eines entsprechenden PrintMulti Druckers ist mit Hilfe der Beispieldateien und der Hilfe sehr einfach. Auf diesem Drucker wird dann automatisch eine PDF/A-3-Datei erzeugt und der Composer mit dem aus dem Druckdatenstrom extrahierten Text aufgerufen. Das funktioniert mit allen Dokumenten, die versteckten Text enthalten und die Anwendung dieser auch tatsächlich druckt. Bei Bedarf können Sie den Drucker im Netzwerk freigeben und so von mehreren Arbeitsplätzen aus digitale Rechnungen erzeugen. Der Composer und die Konfigurationsdateien werden dann nur auf dem Rechner benötigt, der den PrintMulti Drucker freigibt.</li>
</ul>
</li>
</ul>
<h4>Die &#8222;Serienbrief-Methode mit versteckten Texten</h4>
<p>Nicht jede Rechnung sieht gleich aus und es kann mühsam sein, die Beträge, Summen usw. jedes Mal neu in Word einzugeben. Man kann diese variablen Daten auch aus einer Datenquelle holen und dort die Berechnungen durchführen. Im Prinzip handelt es sich immer noch um ein einfaches Word-Dokument und für die Rechnungserstellung selbst können alle Möglichkeiten wie bei der &#8222;Versteckte-Text Methode&#8220; ohne Serienbriefunterstützung genutzt werden.</p>
<pre>Beispiele MailMerge.docx oder MailMerge.docm mit Mailmerge.xlsx</pre>
<h4>Die &#8222;Serienbrief-Methode mit benannten Verweisen&#8220;</h4>
<p>Der Inhalt ist nahezu identisch mit der vorherigen Methode. Die Rechnungserstellung unterscheidet sich jedoch grundlegend. Alle Rechnungselemente werden über Referenzen mit eindeutigen Namen definiert. Die veränderbaren Elemente werden wieder über Seriendruckfelder eingefügt. Die fixen Elemente über Dokumenteigenschaften. Die Namen müssen den in der Composer-Konfigurationsdatei definierten Namen entsprechen und mit einem Unterstrich beginnen. Für die Rechnungserstellung ist ein Makro erforderlich, das die Referenznamen und Inhalte extrahiert und eine Composer-Konfigurationsdatei mit konstanten Werten erzeugt. Sie können das Makro bei Bedarf anpassen, wenn Ihnen die Namenssyntax nicht gefällt, oder konstante Daten fest einfügen. Bei dieser Methode ist die Verwendung von <a href="https://www.lvbprint.de/printmulti-gleichzeitig-drucken/" target="_blank" rel="noopener">PrintMulti</a> nicht möglich (die Rechnungselemente werden nicht gedruckt).</p>
<pre>Beispiel: MailMergeNoPattern.docm mit MailMergeNoPattern.xlsx</pre>
<h4>Die &#8222;Versteckte-Text Methode mit eingebettetem Excel Objekt&#8220;</h4>
<p>Wenn die Berechnungen kompliziert werden, bietet sich vielleicht diese Möglichkeit an. Sowohl die Rechnungsgrunddaten in Word als auch die Werte aus dem eingebetteten Excel Sheet enthalten versteckte Texte, die jeweils über Formatvorlagen in Word- oder Excel sichtbar gemacht werden können. Der Nachteil hier ist, dass weder die Zwischenablage noch die IFilter-Technik funktionieren. Nur durch das Drucken auf einen <a href="https://www.lvbprint.de/printmulti-gleichzeitig-drucken/" target="_blank" rel="noopener">PrintMulti</a> Drucker kann eine digitale Rechnung erzeugt werden.</p>
<pre>Beispiel (Excel Verzeichnis): invoice_excel.docx und alle embed*.xlsx Dateien.</pre>
<p><span id="more-1669"></span></p>
<h3>Details zu den Möglichkeiten</h3>
<p>Es folgenden noch einige Bilder und Anmerkungen zu den verschiedenen Methoden</p>
<h4>Versteckte Texte Methode</h4>
<p><img loading="lazy" decoding="async" class="wp-image-1719 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod-300x137.png" alt="HiddenTextMethod" width="999" height="456" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 15" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod-300x137.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod-1024x466.png 1024w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod-18x8.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod.png 1200w" sizes="auto, (max-width: 999px) 100vw, 999px" /></p>
<p>Die zu verwenden Pattern sind in der Konfigurationsdatei des Composers hinterlegt und können ggf. angepasst werden. Das Trennzeichen &#8218;⁞&#8216; ist einfach ein selten verwendetes Zeichen aus dem Unicode-Zeichensatz. Es darf nicht innerhalb des extrahierten Textes vorkommen. Das &#8222;#&#8220; in &#8222;Q#3&#8220; dient hier als Platzhalter für Rechnungspositionen. Beim Ausführen des Makros mit dem grünen Button oder durch manuelles Ändern der Formatvorlage, verschwinden die Steuertexte.<img loading="lazy" decoding="async" class="wp-image-1722 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod_Hidden-300x224.png" alt="HiddenTextMethod Hidden" width="910" height="680" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 16" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod_Hidden-300x224.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod_Hidden-768x574.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod_Hidden-16x12.png 16w, https://www.lvbprint.de/wp-content/uploads/2025/03/HiddenTextMethod_Hidden.png 825w" sizes="auto, (max-width: 910px) 100vw, 910px" /></p>
<p>Beim Kopieren in die Zwischenablage oder beim Ausführen der IFilter Methode, sind sie aber als Text vorhanden:</p>
<pre>...
MENGE UNIT BESCHREIBUNG MWST. PREIS PRO EINHEIT GESAMT
[Q_1] 2⁞ [U_1]m^3⁞ [N_1]Ohne Position⁞ [R_1]19%⁞ [P_1]523,00€⁞ [A_1]1.046,00€⁞
[I_2]2⁞[Q_2] 4⁞ [U_2]m³⁞ [N_2]Irgendwas mit 7% MwSt.⁞ [R_2]7%⁞ [P_2]14,00€⁞ [A_2]56,00€⁞
[I_3]3⁞[Q_3] 3⁞ [N_3]Ohne Einheit⁞ [R_3]7%⁞ [P_3]11,00€⁞ [A_3]33,00€⁞
[I_4]4⁞[Q_4] 2⁞ [U_4]m³⁞ [N_4]Default MwSt.19% (aus (R_) oben) ⁞ 19% [P_4]7,50€⁞ [A_4]15,00€⁞
[I_5]XX⁞[Q_5] 4⁞ [U_5]Stk.⁞ [N_5]Zeit für Guinness im Scruffies⁞ 19% [P_5]6,50€⁞ [A_5]26,00€⁞
...</pre>
<h4>Die &#8222;Serienbrief-Methode mit versteckten Texten</h4>
<p>Im Gegensatz zur vorigen Methode werden hier einfach Rechnungsteile über Seriendruckfelder eingefügt.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-1732 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_ShowFields-300x116.png" alt="MailMerge ShowFields" width="776" height="300" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 17" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_ShowFields-300x116.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_ShowFields-768x298.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_ShowFields-18x7.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_ShowFields.png 791w" sizes="auto, (max-width: 776px) 100vw, 776px" /></p>
<p>Hier ein Ausschnitt der Daten aus Excel (funktioniert natürlich auch mit anderen Datenquellen). Die Namen der Überschriften sind hier nicht festgelegt</p>
<table width="780">
<tbody>
<tr>
<td width="151"><strong>_NAME_</strong></td>
<td width="110"><strong>_ADDRNAME_</strong></td>
<td width="125"><strong>_ADDR1_</strong></td>
<td width="80"><strong>_CO_</strong></td>
<td width="80"><strong>_PLZ_</strong></td>
<td width="98"><strong>_TOWN_</strong></td>
<td width="136"><strong>_EMAIL_</strong></td>
</tr>
<tr>
<td>Gans GmbH</td>
<td>Gustav Gans</td>
<td>Entengasse 1</td>
<td>DE</td>
<td>54321</td>
<td>Entenhausen</td>
<td>gustav.gans@gans.de</td>
</tr>
<tr>
<td>Gans GmbH</td>
<td>Donald Duck</td>
<td>Entengasse 1</td>
<td>DE</td>
<td>54321</td>
<td>Entenhausen</td>
<td>gustav.gans@gans.de</td>
</tr>
<tr>
<td>Gans GmbH</td>
<td>Daisy Duck</td>
<td>Entengasse 1</td>
<td>DE</td>
<td>54321</td>
<td>Entenhausen</td>
<td>gustav.gans@gans.de</td>
</tr>
</tbody>
</table>
<p>Die drei Rechnungen enthalten verschiedene Mehrwertsteuersätze &#8222;19%&#8220;, &#8222;Befreit außerhalb EU&#8220;, &#8222;Befreit Reverse Charge&#8220;</p>
<h4>Die &#8222;Serienbrief-Methode mit benannten Verweisen&#8220;</h4>
<p>Hier sind keine versteckten Texte nötig. Die Rechnungsteile werden wie im letzten Beispiel über Seriendruckfelder (diesmal aber mit genau definiertem Namen) und Dokumentenfelder eingefügt.</p>
<blockquote><p>Die Erzeugung der <span style="color: #0000ff;">_XML_</span> oder <span style="color: #0000ff;">_PDF_ <span style="color: #000000;">kann nur über ein Makro erfolgen, da die Referenzen programmatisch extrahiert werden müssen. Drucken mit einem Rechnungsdrucker über PrintMulti ist nicht möglich.</span></span></p></blockquote>
<p><img loading="lazy" decoding="async" class=" wp-image-1736 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_NoPattern-300x150.png" alt="MailMerge NoPattern" width="828" height="414" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 18" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_NoPattern-300x150.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_NoPattern-768x384.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_NoPattern-18x9.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_NoPattern.png 873w" sizes="auto, (max-width: 828px) 100vw, 828px" /></p>
<p>Die Dokumenteninformationen findet man je nach Version an unterschiedlicher Stelle.  In meiner Word-Version sieht es so aus:</p>
<p><img loading="lazy" decoding="async" class=" wp-image-1737 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information-300x155.png" alt="MailMerge Information" width="835" height="431" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 19" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information-300x155.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information-1024x527.png 1024w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information-768x396.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information-18x9.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/03/MailMerge_Information.png 1157w" sizes="auto, (max-width: 835px) 100vw, 835px" /></p>
<p>Die Datenquellen Überschriften müssen feste Titel haben, damit diese auf die erwarteten Konfigurationseinträge abgebildet werden können. Das enthaltene Makro erwartet einen führenden Unterstrich.</p>
<table width="686">
<tbody>
<tr>
<td width="107"><strong>_invoice_nr</strong></td>
<td width="107"><strong>_invoice_type</strong></td>
<td width="107"><strong>_invoice_currency</strong></td>
<td width="107"><strong>_invoice_date</strong></td>
<td width="107"><strong>_invoice_payment_due_date</strong></td>
<td width="151"><strong>_buyer_name</strong></td>
</tr>
<tr>
<td>123</td>
<td>facture</td>
<td>EUR</td>
<td>02.04.2025</td>
<td>12.04.2025</td>
<td>Gans GmbH</td>
</tr>
<tr>
<td>124</td>
<td>invoice</td>
<td>€</td>
<td>02.04.2025</td>
<td>12.04.2025</td>
<td>Gans GmbH</td>
</tr>
<tr>
<td>125</td>
<td>Rechnung</td>
<td>$</td>
<td>02.04.2025</td>
<td>12.04.2025</td>
<td>Gans GmbH</td>
</tr>
</tbody>
</table>
<h4></h4>
<p><!--more--></p>
<h4>Die &#8222;Versteckte-Text Methode mit eingebettetem Excel Objekt&#8220;</h4>
<p>Die Beispiele enthalten keine Makros zum Ausblenden der Steuertexte. Sie müssen die Formatvorlagen in Word und Excel anpassen.<br />
Am besten öffnen Sie das Word-Dokument und fügen das Excel-Objekt als Referenz ein.</p>
<blockquote><p>Digitale Rechnungen können in diesem Format nur über PrintMulti erstellt werden, da das eingebettete Objekt weder als Text in der Zwischenablage landet noch mit der Erzeugung mit IFilter funktioniert.</p></blockquote>
<p><img loading="lazy" decoding="async" class=" wp-image-1745 alignnone" src="https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-300x139.png" alt="WordEmbedExcelAuswahl" width="1008" height="467" title="ZUGFeRD Rechnungen aus Word Dateien erzeugen 20" srcset="https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-300x139.png 300w, https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-1024x473.png 1024w, https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-768x355.png 768w, https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-1536x710.png 1536w, https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl-18x8.png 18w, https://www.lvbprint.de/wp-content/uploads/2025/03/WordEmbedExcelAuswahl.png 1638w" sizes="auto, (max-width: 1008px) 100vw, 1008px" /></p>
<p>Das Ergebnis sieht jetzt in Word nicht so toll aus, aber wenn Sie die Rechnung auf den Drucker &#8222;XRechnung&#8220; (siehe Hilfe zur Einrichtung im Unterverzeichnis &#8222;PrintMulti&#8220;) ausgeben, dann erhalten Sie eine <span style="color: #0000ff;">_PDF_</span> und eine <span style="color: #0000ff;">_XML_ <span style="color: #000000;">im Unterverzeichnis mit der Rechnungsnummer im Namen.</span></span></p>
<p>Hier können Sie die vollständige <a href="https://www.lvbprint.de/files/zugferd/examples/2025-0002.pdf" target="_blank" rel="noopener">_PDF_</a> betrachten (Der rechte Rahmen ist im nächsten Release in den Beispielen dann richtig)</p>
<p>In der jobs.csv können Sie auf Wunsch einen Eintrag für jede gedruckte Rechnung (erfolgreich oder nicht) eintragen lassen.</p>
<pre>2025-03-30_18-27-15;OK;Successful;2025-0002;01.03.2024;[Käuf. Firmenname];1.330,19 €;1.030,19 €</pre>
<h3>Digitale Rechnungen mit PrintMulti</h3>
<p>Mit PrintMulti als Druckprozessor kann ein virtueller Drucker erzeugt werden, der in der Lage ist gedruckten Text aus dem Datenstrom zu extrahieren und so die notwendige Textdatei für den Composer zur Verfügung zu stellen.</p>
<p>Eigentlich ist es dazu gedacht Druckjobs zu vervielfältigen und auf mehreren Druckern mit vielen Veränderungen auszugeben. In diesem Fall wird der<br />
&#8222;PDF Architect 9&#8220; PDF Dateidrucker verwendet um direkt ohne Postscript Umwege eine geeignete PDF/A3 zu erhalten. Der &#8222;Microsoft Print to PDF&#8220; ist nicht in der Lage PDFs in diesem Format zu erzeugen (zumindest zum aktuellen Zeitpunkt).</p>
<p>Die digitale Rechnungserzeugung mit PrintMulti ist nur möglich wenn die zu druckenden Rechnung die versteckten Zeichen enthält.</p>
<p>Die Vorteile sind</p>
<ul>
<li>Für Benutzer ein gewohnter Arbeitsschritte &#8222;Drucken auf einen Drucker&#8220;</li>
<li>Eine Freigabe des Druckers von einem Server (kostenpflichtig) oder einem Clientcomputer ist machbar und ermöglicht eine zentrale Verwaltung</li>
<li>Es können noch weitere PrintMulti typischen Aktionen gleichzeitig konfiguriert werden, wie das Drucken auf einen weiteren Drucker, eine Archivierung, &#8230;</li>
</ul>
<p><a href="https://www.lvbprint.de/files/zugferd/PrintMulti_de.pdf" target="_blank" rel="noopener">Hier</a> finden Sie ein Dokument das die Installation beschreibt. Es ist auch im Download Archiv enthalten.</p>
<p>Ich will hier noch etwas auf die spezielle Konfiguration für den XRechnungsdrucker eingehen. Der wichtigste Teil sieht so aus:</p>
<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong>[XRechnung]</strong>
<span style="color: #ff6600;">Active</span>=1
ActionXRechnung=Print;XRechnungAction

<span style="color: #999999;">; for all actions</span>
<span style="color: #0000ff;">!BasePath=C:\ZUGFeRDComposer</span>

<span style="color: #999999;">; Virtual Printer - need PrintMulti as Print Processor</span>
<strong>[XRechnungAction]</strong>
<span style="color: #ff6600;">Active</span>=1

<span style="color: #999999;">; xml invoice (/OX)</span>
<span style="color: #0000ff;">!XRechnungFile=%BasePath%\<span style="color: #339966;">{invoice_nr}</span>\<span style="color: #339966;">{invoice_nr}</span>_<span style="color: #339966;">{Date}</span>_<span style="color: #339966;">{Time}</span>_pm.xml</span>
<span style="color: #999999;">; PDF with embedded xml (/OP)</span>
<span style="color: #0000ff;">!DstPDFFile=%BasePath%\<span style="color: #339966;">{invoice_nr}</span>\<span style="color: #339966;">{invoice_nr}</span>_<span style="color: #339966;">{Date}</span>_<span style="color: #339966;">{Time}</span>_pm.pdf</span>

<span style="color: #999999;">; Temp PDF</span>
<span style="color: #0000ff;">!SavedDFFile=%BasePath%\Temp\<span style="color: #ff0000;">#K</span>_<span style="color: #ff0000;">#J</span>.pdf</span>

<span style="color: #999999;">; Text file saved with WriteText2File option later</span>
<span style="color: #0000ff;">!TextFile=%BasePath%\Temp\<span style="color: #ff0000;">#K</span>_<span style="color: #ff0000;">#J</span>.txt</span>

<span style="color: #999999;">; Debug file containing detected patterns and values</span>
<span style="color: #0000ff;">!ExtractFile=%BasePath%\Temp\<span style="color: #339966;">{invoice_nr}</span>_<span style="color: #339966;">{Date}</span>_<span style="color: #339966;">{Time}</span>_pm_e.txt</span>

<span style="color: #999999;">; csv file containing one entry for each call containing result(OK,ERROR), Date, Invoice date, Invoice nr, some amounts (currently fixed layout)</span>
<span style="color: #0000ff;">!JobsFile=%BasePath%\Jobs\jobs.csv</span>

<span style="color: #999999;">; Maybe you want different configuration files for different printers</span>
<span style="color: #0000ff;">!ToolsConfiguration=%ZUGFerdToolsPath%\Defaults\ExtractConfiguration.txt</span>

<span style="color: #ff6600;">Printer</span>=PDF Architect 9
<span style="color: #999999;">; contains the PDF</span>
<span style="color: #ff6600;">Save2File</span>=%SavedDFFile%
<span style="color: #999999;">; Contains all text output directly in out line</span>
<span style="color: #ff6600;">WriteText2File</span>=%TextFile%
<span style="color: #999999;">; If you want to force PDF/A with the pdf architect, save a devmode with the tool devmode2file and use it here</span>
<span style="color: #999999;">;<span style="color: #ff6600;">Devmode1</span>=%BasePath%\ArchitextPDFA.dev</span>

<span style="color: #ff6600;">Execute</span>=yes
<span style="color: #999999;">; Hide console</span>
<span style="color: #ff6600;">ExecuteFlags</span>=0x08000000
<span style="color: #ff6600;">ExecuteTimeout</span>=INF
<span style="color: #ff6600;">ExecuteCmd</span>=@"%BasePath%\bin\ZugFerdComposer.exe" /IT @"<span style="color: #0000ff;">%TextFile%</span>" /IP @"<span style="color: #0000ff;">%SavedDFFile%</span>" /OX @"<span style="color: #0000ff;">%XRechnungFile%</span>" /OP @"<span style="color: #0000ff;">%DstPDFFile%</span>" /OJ @"<span style="color: #0000ff;">%JobsFile%</span>" /OE @"<span style="color: #0000ff;">%ExtractFile%</span>"</pre>
<p><strong>Bedeutung der Farben:</strong><br />
<span style="color: #ff6600;"><strong>orange</strong></span> sind PrintMulti Keywords<br />
<span style="color: #ff0000;"><strong>rot</strong></span> sind PrintMulti Makros, die durch Daten vom Drucken ersetzt werden<br />
<strong><span style="color: #0000ff;">blau</span></strong> sind gesetzte Umgebungsvariable (alle Variablen, die mit &#8218;!&#8216; anfängt, sind als Umgebungsvariablen verfügbar)<br />
<strong><span style="color: #339966;">grüne Pattern</span></strong> werden von Composer durch entsprechende Rechnungsteile ersetzt</p>
<p>Hier ein kurzer Überblick über die verwendeten Optionen. Details finden Sie im <a href="https://www.lvbprint.de/files/printmulti/PrintMulti_2.0_Manual_de.pdf" target="_blank" rel="noopener">PrintMulti Handbuch</a></p>
<ul>
<li>Der Drucker mit <em>&#8222;PrintMulti&#8220;</em> als Druckprozessor (hier <em>&#8222;XRechnung&#8220;</em>) muss als Text in eckigen Klammern mit <em>&#8222;Active=1&#8220;</em> angegeben werden.<br />
Hier werden verschiedene Aktionen wie Drucken oder als Bild speichern definiert. Der Name auf der linken Seite muss mit <em>&#8222;Action&#8220;</em> beginnen und sich von anderen <em>&#8222;Action&#8220;-</em>Einträgen unterscheiden.<br />
Auf der rechten Seite steht dann die auszuführende Aktion (hier <em>&#8222;Print&#8220;</em>) und ein Verweis auf den Abschnitt mit den spezifischen Einstellungen für die Aktion(hier &#8222;XRechnungAction&#8220;)<br />
Jeder PrintMulti Drucker kann in einer eigenen Konfigurationsdatei stehen. Der Ort wird ggf. in der Registry hinterlegt (siehe reg-Datei im PrintMulti Verzeichnis). Falls nicht angegeben wird immer die <em>&#8222;PrintMulti.ini&#8220;</em> im <em>&#8222;C:\Program Files\PrintMulti&#8220;</em> Verzeichnis verwendet. In einer Konfigurationsdatei können mehrere <em>&#8222;PrintMulti&#8220;</em> Drucker definiert sein.</li>
<li>Die Konfigurationsdatei fängt normalerweise mit einem allgemeinen Teil an,  der Einstellungen zur Protokollierung enthält. Dieser ist im obigen Beispiel nicht enthalten.</li>
<li>Im Abschnitt zum Drucken (hier <em>&#8222;XRechnungAction&#8220;</em>) selbst wird der Zieldrucker mittels <em>&#8222;Printer=&#8220;</em> definiert. Es wird noch festgelegt, dass nicht physikalisch gedruckt, sondern in eine Datei mit <em>&#8222;Save2File&#8220;</em> gespeichert werden soll.</li>
<li>Der für den Composer wichtige Inhalt des Dokuments wird mittels <em>&#8222;WriteText2File&#8220;</em> in eine Datei gespeichert und diese dann übergeben.</li>
<li>Am Ende sind mehrere Definitionen für das Ausführen eines Befehls (<em>&#8222;Execute*&#8220;</em>) . Es können auch mehrere Befehle ausgeführt werden, die dann aber in eigenen Sektionen definiert werden müssen (z.B. für eine folgende Archivierung).<br />
Die Konsole wird versteckt (ist bei modernen Windows-Versionen eh nicht zu sehen) und der unendlicher Timeout gewählt. Das wäre wichtig, wenn ein weiterer Abschnitt auf das Ergebnis des Befehls warten sollte.</li>
<li>Der eigentliche Aufruf des Composers mit den Parametern, jeweils in Anführungszeichen für Pfade, ist in der letzten Zeile zu finden. Die Bedeutung der Parameter finden Sie im <a href="https://www.lvbprint.de/files/zugferd/Manual_de.pdf" target="_blank" rel="noopener">Composer Handbuch</a>. Der letzte Parameter mit &#8222;/OE&#8220; übergeben ist optional und enthält die erkannten Rechnungsteile (Debugausgabe).</li>
</ul>
<blockquote><p>Wenn Sie den Composer und die PrintMulti Konfigurationsdatei woanders haben wollen, dann müssen Sie den <em>&#8222;<span style="color: #0000ff;">!BasePath</span>&#8222;</em> und auch den Pfad zur Konfigurationsdatei in der reg-Datei im PrintMulti Verzeichnis anpassen.</p>
<p>Wenn Sie den Namen des Rechnungsdrucker von <em>&#8222;XRechnung&#8220;</em> ändern wollen, dann müssen Sie ihn in der PrintMulti Konfigurationsdatei anpassen</p></blockquote>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Beispiel für eine automatische PDF Erzeugung beim Drucken mit der Auswahl des Dateinamens</title>
		<link>https://www.lvbprint.de/2024/08/20/pdf-erzeugung-datei-auswahl/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Tue, 20 Aug 2024 15:41:31 +0000</pubDate>
				<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[Choose file name]]></category>
		<category><![CDATA[PDF Drucken speichern]]></category>
		<category><![CDATA[PDF print save]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1537</guid>

					<description><![CDATA[Ermöglicht die Auswahl eines Dateinames für die PDF Datei]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Einleitung</h2>



<p class="has-medium-font-size">Die automatische PDF Erzeugung ist in PrintMulti leicht möglich, wie <a href="https://www.lvbprint.de/2023/10/16/pdf-erstellung/" data-type="link" data-id="https://www.lvbprint.de/2023/10/16/pdf-erstellung/">hier</a> beschrieben. Ein Wunsch war nun, dass der Benutzer beim Drucken den Namen der zu erzeugenden PDF wählen kann.</p>



<h2 class="wp-block-heading">Lösung über &#8222;File:&#8220; Port</h2>



<p class="has-medium-font-size">PrintMulti selber bietet keine Möglichkeit einen Dialog zu zeigen, aber mit einem kleinen Trick funktioniert es dennoch. </p>



<p class="has-medium-font-size">Sie wählen beim PrintMulti Drucker als Port einfach &#8222;FILE:&#8220; aus und die Anwendung bzw. Windows zeigt beim Drucken einen Dateispeichern Dialog um eine prn Datei auszuwählen.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="463" height="528" src="https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileD.png" alt="ChoosePrnFileD" class="wp-image-1538" title="Beispiel für eine automatische PDF Erzeugung beim Drucken mit der Auswahl des Dateinamens 21" srcset="https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileD.png 463w, https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileD-263x300.png 263w, https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileD-11x12.png 11w" sizes="auto, (max-width: 463px) 100vw, 463px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="822" height="445" src="https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileDialogD.png" alt="ChoosePrnFileDialogD" class="wp-image-1541" title="Beispiel für eine automatische PDF Erzeugung beim Drucken mit der Auswahl des Dateinamens 22" srcset="https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileDialogD.png 822w, https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileDialogD-300x162.png 300w, https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileDialogD-768x416.png 768w, https://www.lvbprint.de/wp-content/uploads/2024/08/ChoosePrnFileDialogD-18x10.png 18w" sizes="auto, (max-width: 822px) 100vw, 822px" /></figure>



<p class="has-medium-font-size">Der Trick ist jetzt, den Benutzer eine prn Datei auswählen zu lassen, deren Name mit dem neuen Makro <em>&#8222;#O&#8220;</em> innerhalb PrintMulti zur Verfügung steht. Dort wird dann einfach <em>&#8222;.prn&#8220;</em> durch <em>&#8222;.pdf&#8220;</em> ersetzt und die PDF wie im anderen Beispiel erzeugt..</p>



<p class="has-medium-font-size">So könnte die PrintMulti.ini aussehen, falls der PrintMulti Drucker <em>&#8222;PrintMulti Color File&#8220;</em> genannt wird.</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-medium-font-size"><em>[MicrosoftPrintToPDF]</em><br>Printer=Microsoft Print To PDF<br>Save2File=$(#O;.prn;.pdf;replace)<br>Color=1<br>Execute=yes<br>ExecuteAsUser=true<br>ExecuteFlags=0x08000000<br>ExecuteTimeout=INF<br>ExecuteCmd=cmd /c del @"#O"<br><br><em>[TestPrinter]</em><br>Printer=Testprinter<br><br><em>[PrintMulti Color File]</em><br>Active=1<br>ActionCreatePDF=Print;MicrosoftPrintToPDF<br>ActionPrint=Print;TestPrinter<br>PrintSelf=0<br></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatische PDF Erstellung beim Drucken</title>
		<link>https://www.lvbprint.de/2023/10/16/pdf-erstellung/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Mon, 16 Oct 2023 18:43:25 +0000</pubDate>
				<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[PDF Drucken speichern]]></category>
		<category><![CDATA[PDF print save]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1444</guid>

					<description><![CDATA[Einleitung Eine häufige Anwendung von PrintMulti ist die automatische PDF Erstellung beim Drucken. Dieser Artikel zeigt, wie man PrintMulti so konfiguriert, dass dies auf einfache<div class="btn btn-light btn-arrow"><a href="https://www.lvbprint.de/2023/10/16/pdf-erstellung/" rel="nofollow" title="Read More">Read More</a></div>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Einleitung</h2>



<p class="has-medium-font-size">Eine häufige Anwendung von PrintMulti ist die automatische PDF Erstellung beim Drucken. Dieser Artikel zeigt, wie man PrintMulti so konfiguriert, dass dies auf einfache Weise möglich ist. Er geht davon aus, dass der aktuell verwendete Drucker verwendet werden kann.</p>



<p class="has-medium-font-size">Die Voraussetzungen dafür sind bereits im Artikel &#8222;<a href="https://www.lvbprint.de/2023/09/28/kopien-drucken/">Kopien drucken mit PrintMulti</a>&#8220; beschrieben, daher beginnen wir hier mit der Konfiguration eines geeigneten PDF-Druckers.</p>



<p></p>



<h2 class="wp-block-heading">Auswahl eines PDF Druckers</h2>



<p class="has-medium-font-size">Am besten Sie wählen einen Druckertreiber, der direkt in eine PDF Datei <em>&#8222;druckt&#8220;</em> und keinen Zweistufigen wie z.B. den <em><a href="https://www.pdfforge.org/de/pdfcreator" rel="noopener">&#8222;PDF Creator&#8220;</a></em> und viele andere, die technisch einen Postscript Treiber nutzen und die erhaltene Postscript Datei später in PDF wandeln, oft mit Hilfe von <em><a href="https://www.ghostscript.com/" rel="noopener">&#8222;Ghostscript&#8220;</a></em>. Das funktioniert auch mit PrintMulti, wie im Handbuch in Kapitel 8 beschrieben, ist nicht trivial zu konfigurieren.</p>



<p class="has-medium-font-size">In diesem Artikel beschränken wir uns deshalb auf PDF Drucker, die direkt eine PDF ohne Umwege erzeugen.</p>



<p class="has-medium-font-size">Am einfachsten ist die Verwendung des bei Windows mitgeliefertem <em>&#8222;Microsoft Print To PDF&#8220;</em>  Druckers. Den muss man ggf. bei den <em>&#8222;Windows Features&#8220;</em> aktiveren, damit er erscheint. Dieser erledigt anstandslos seinen Dienst, hat aber nicht viele Einstellmöglichkeiten.</p>



<p class="has-medium-font-size">Ein weiterer freier PDF Drucker ist beim <em><a href="https://www.pdfforge.org/de/pdfarchitect" rel="noopener">&#8222;PDF Architect&#8220;</a></em> enthalten, selbst in der freien Version. Dieser bietet viele Einstellmöglichkeiten wie z.B. PDF/A, Ränder, Fonteinbettung, Verschlüsselung und vieles mehr. Mit Hilfe von gespeicherten Druckereinstellungen und der <em>&#8222;Devmode1&#8220;</em> Option kann man da ggf. auch verschiedene Einstellungen verwenden. Beispiele dazu finden Sie wieder im Artikel &#8222;<a href="https://www.lvbprint.de/2023/09/28/kopien-drucken/">Kopien drucken mit PrintMulti</a>&#8220; oder im Handbuch. </p>



<p class="has-medium-font-size">Es gibt bestimmt noch etliche PDF Drucker welche die Anforderungen genügen. Falls Sie schon einen im Einsatz haben, probieren Sie in einfach aus und schauen, ob die erhaltene PDF Datei tatsächlich PDF oder Postscript ist.</p>



<h2 class="wp-block-heading">Einfaches Beispiel zur PDF Erstellung</h2>



<p class="has-medium-font-size">Installieren Sie den <em>&#8222;Microsoft Print To PDF&#8220;</em> oder den <em>&#8222;PDF Architect&#8220;</em> oder beide und kopieren Sie den unteren Abschnitt in die PrintMulti.ini. Den Drucker <em>&#8222;Samsung&#8220;</em> müssen Sie wie im anderen Artikel ersetzen durch einen geeigneten installieren Drucker.</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-medium-font-size"><em>[MicrosoftPrintToPDF]</em>
Printer=Microsoft Print To PDF
Save2File=C:\PDFOutput\#(%Y-%m)T\#(%d)T\#J_#K_MS.pdf
Color=1

<em>[PDFArchitect9]</em>
Printer=PDF Architect 9
Save2File=C:\PDFOutput\#(%Y-%m)T\#(%d)T\#J_#K_Arch.pdf
Devmode1=c:\temp\pdfa.dev
Color=1

<em>[Samsung]</em>
Active=1
PrintSelf=1
ActionPDF9=Print;<em>PDFArchitect9</em>
ActionPDFMS=Print;<em>MicrosoftPrintToPDF</em></pre>



<p class="has-medium-font-size">Wenn Sie jetzt eine Testseite auf den Samsung Drucker ausgeben, sollten im Verzeichnis <em>&#8222;C:\PDFOutput&#8220;</em> ein Unterverzeichnis mit dem Jahr und dem Monat und ein weiteres mit dem aktuellen Tag erzeugt werden und darin die PDF Dateien.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="262" height="147" src="https://www.lvbprint.de/wp-content/uploads/2023/10/Created-PDF.png" alt="PDF Erstellung" class="wp-image-1462" title="Automatische PDF Erstellung beim Drucken 23" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/Created-PDF.png 262w, https://www.lvbprint.de/wp-content/uploads/2023/10/Created-PDF-18x10.png 18w" sizes="auto, (max-width: 262px) 100vw, 262px" /></figure>



<p class="has-medium-font-size">Der Treiber <em>&#8222;Microsoft Print To PDF&#8220;</em> bietet kaum Einstellmöglichkeiten, der <em>&#8222;PDF Architect&#8220;</em> dagegen schon. Mit Hilfe des Tools <em>&#8222;Devmode2File&#8220;</em> können Druckereinstellungen konfiguriert und in eine Datei gespeichert werden (hier <em>&#8222;C:\temp\pdfa.dev&#8220;</em>). Das ermöglicht z.B. eine PDF/A Erzeugung, eine Verschlüsselung oder was immer der Treiber sonst noch bietet. Der Vorteil von gespeicherten Devicemodi ist, dass es immer noch identisch funktioniert, auch wenn jemand an den Druckereinstellungen herumspielt. Abgesehen davon gibt es etliche Orte für gespeicherte Devicemodi in der Registry und man kann sich nie sicher sein welcher verwendet wird, insbesondere wenn wie bei einem PrintProzessor verschiedene Benutzer und Impersonation im Einsatz sind.<br><br>&#8222;#K&#8220;, &#8222;#J&#8220;, &#8222;#T&#8220; sind Makros, die definierte Werte enthalten. Teilweise ist eine Formatierung möglich wie bei &#8222;#T&#8220;. &#8222;#K&#8220; ist der Dokumentenname mit der Ersetzung von Zeichen, die für Dateinamen ungültig sind. </p>



<h2 class="wp-block-heading">Wasserzeichen in der PDF mit PrintMulti Möglichkeiten</h2>



<p class="has-medium-font-size">Nun soll noch ein Wasserzeichen oder ein Hintergrundbild in das PDF eingefügt werden. Dies kann einerseits mit den in PrintMulti eingebauten Möglichkeiten wie der Ausgabe von Texten, Bildern, Rechtecken und Linien geschehen, andererseits mit Hilfe von leistungsfähigen Tools wie <a href="https://pdftk.de.softonic.com/" rel="noopener">&#8222;pdftk&#8220;</a>, das mit den ExecuteCmd-Möglichkeiten von PrintMulti aufgerufen werden kann.</p>



<p class="has-medium-font-size">Mit den folgenden Einstellungen gibt PrintMulti mehrere Texte aus. Dies funktioniert auch mit dem PDFArchitect Drucker mit den entsprechenden Einstellungen.</p>



<pre class="wp-block-preformatted has-background has-medium-font-size" style="background:linear-gradient(90deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)"><em>[WatermarkDocumentCenter]</em>
Active=1
Type=Text
Text=#D
Attrib=BI
Font=Arial
Foreground=0
Color=0xFF2600
X=$(#w;2;/)
; unit is twips. (1 inch = 1440 Twips; 1 inch = 2.54cm; 1cm=567 Twips)
Y=$(#h;567;-)
Height=5mm
Align=Center
VertAlign=Center

<em>[WatermarkDate]</em>
Type=Text
Text="#(%Y-%m-%d %H:%M)T"
Attrib=BI
Font=Courier New
Foreground=0
Color=0xE0E0E0
X=$(#w;2;/)
Y=$(#h;2;/)
Height=20mm
Align=Center
VertAlign=Center
dx=#w
dy=#h

<em>[WatermarkSideRight]</em>
Active=1
Type=Text
Text="#n/#Z "
Font=Courier New
Foreground=0
Color=0xFF2600
X=$(#w;#t;-)
Y=$(#h;567;-)
Height=5mm
Align=Right
VertAlign=Center

<em>[MicrosoftPrintToPDF]</em>
Printer=Microsoft Print To PDF
Save2File=C:\PDFOutput\#(%Y-%m)T\#(%d)T\#J_#K_MS.pdf
ObjectBottomRight=<em>WatermarkSideRight</em>
ObjectBottomCenter=<em>WatermarkDocumentCenter</em>
ObjectCenter=<em>WatermarkDate</em>
Transparent=1
Color=1

</pre>



<p class="has-medium-font-size">Ein gedruckter Ausschnitt aus dem PrintMulti Handbuch würde dann so aussehen:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="591" height="837" src="https://www.lvbprint.de/wp-content/uploads/2023/11/PrintMultiObjects.png" alt="Beispiel PDF mit PrintMulti Objekten" class="wp-image-1482" title="Automatische PDF Erstellung beim Drucken 24" srcset="https://www.lvbprint.de/wp-content/uploads/2023/11/PrintMultiObjects.png 591w, https://www.lvbprint.de/wp-content/uploads/2023/11/PrintMultiObjects-212x300.png 212w, https://www.lvbprint.de/wp-content/uploads/2023/11/PrintMultiObjects-8x12.png 8w" sizes="auto, (max-width: 591px) 100vw, 591px" /></figure>



<p class="has-medium-font-size">Der Vorteil bei der PrintMulti Methode liegt darin, dass einfach dynamische Objekte wie das Datum, der Dokumentenname, die aktuelle Seite und viele andere Informationen eingefügt werden können.</p>



<h2 class="wp-block-heading">Benutzung von pdftk zur Veränderung der erzeugten PDF</h2>



<p class="has-medium-font-size">Es gibt Kommandozeilenprogramme, um PDF-Dateien zu bearbeiten. Das bekannteste ist wohl <a href="https://pdftk.de.softonic.com/" rel="noopener">&#8222;pdftk&#8220;</a>. Damit kann man auch Hintergrundbilder oder Wasserzeichen einfügen. Es scheint aber nicht in der Lage zu sein, das aktuelle PDF zu verändern, so dass man mit Zwischendateien arbeiten muss.</p>



<p class="has-medium-font-size">Eine PrintMulti Konfiguration mit einer Verwendung von <a href="https://pdftk.de.softonic.com/" rel="noopener">&#8222;pdftk&#8220;</a> könnte so aussehen:</p>



<pre class="wp-block-preformatted has-background has-medium-font-size" style="background:linear-gradient(90deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)"><em>[ExecuteMove]</em>
Order=5
Execute=yes
ExecuteAsUser=true
ExecuteFlags=0x08000000
ExecuteTimeout=INF
ExecuteCmd=cmd /c move @"#G" %tempFile%

<em>[ExecutePDFtk]</em>
Order=5
Execute=yes
ExecuteAsUser=true
ExecuteFlags=0x08000000
ExecuteTimeout=INF
ExecuteCmd=c:\tools\pdftk %tempFile% background %background% output @"#G"

<em>[ExecuteDelete]</em>
Order=5
Execute=yes
ExecuteAsUser=true
ExecuteFlags=0x08000000
ExecuteTimeout=INF
ExecuteCmd=cmd /c del %tempFile%

<em>[pdftk]</em>
!tempFile=@"C:\PDFOutput\temp_#J.pdf"
!background=@"c:\temp\background.pdf"

Printer=PDF Architect 9
Save2File=C:\PDFOutput\#(%Y-%m)T\#(%d)T\#J_#K_9_pdftk.pdf
Devmode1=c:\temp\pdfa.dev
Color=1
ExecuteSection1=ExecuteMove
ExecuteSection2=Executepdftk
ExecuteSection3=ExecuteDelete
Transparent=1

<em>[Samsung]</em>
Active=1
PrintSelf=1
ActionPDFTK=Print;pdftk</pre>



<p class="has-medium-font-size">In PrintMulti gibt es keine Variablen im engeren Sinn. Die beiden Zuweisungen, die mit  &#8222;!&#8220; anfangen werden als Umgebungsvariablen gesetzt und bleiben über Sektionsgrenzen erhalten. Wie in Windows üblich, kann auf sie mit <em>&#8222;%&#8230;%&#8220;</em> zugegriffen werden. <br>Der Hintergrund wurde schnell mit WinWord erzeugt und als PDF in <em>&#8222;C:\temp\background.pdf&#8220;</em> gespeichert.<br>Das Ergebnis einer Testseite sehen Sie hier:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="548" height="780" src="https://www.lvbprint.de/wp-content/uploads/2023/11/pdftkExample.png" alt="pdftk Beispiel" class="wp-image-1488" title="Automatische PDF Erstellung beim Drucken 25" srcset="https://www.lvbprint.de/wp-content/uploads/2023/11/pdftkExample.png 548w, https://www.lvbprint.de/wp-content/uploads/2023/11/pdftkExample-211x300.png 211w, https://www.lvbprint.de/wp-content/uploads/2023/11/pdftkExample-8x12.png 8w" sizes="auto, (max-width: 548px) 100vw, 548px" /></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kopien drucken mit PrintMulti</title>
		<link>https://www.lvbprint.de/2023/09/28/kopien-drucken/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Thu, 28 Sep 2023 16:47:21 +0000</pubDate>
				<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[Carbon Copy]]></category>
		<category><![CDATA[Drucken von Kopien]]></category>
		<category><![CDATA[printing copies]]></category>
		<category><![CDATA[Wasserzeichen]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1317</guid>

					<description><![CDATA[Mit PrintMulti lassen sich leicht Durchschläge erzeugen. Diese können auch Wasserzeichen enthalten oder von verschiedenen Eingabeschächten kommen.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Einleitung &#8222;Kopien Drucken mit PrintMulti&#8220;</h2>



<p class="has-medium-font-size">In Zeiten von Nadeldruckern war das Drucken von Kopien/Durchschlägen einfach durch spezielles Papier zu erreichen. Mit dem Einzug von Laserdruckern entfiel diese Möglichkeit.</p>



<p class="has-medium-font-size">Eine der Hauptanwendungen von PrintMulti ist das erneute Drucken des Jobs oft aus einem anderen Papierfach mit farbigem Papier oder einem Wasserzeichen. </p>



<p class="has-medium-font-size">Diese Möglichkeit kann das Drucken von Durchschlägen und Kopien teilweise ersetzen. Derzeit ist es nicht möglich, Kopien aus einem anderen Fach in der gleichen Form wie Durchschläge abzulegen, da es sich um einen separaten Druckauftrag handelt, der anschließend ausgeführt wird.</p>



<p class="has-medium-font-size">Viele Druckertreiber bieten bereits die Möglichkeit Wasserzeichen zu integrieren. <br>PrintMulti kann diese Möglichkeit nutzen oder auch selbst definierte Objekte wie Texte, Linien/Rechtecke oder Bilder beisteuern.</p>



<p class="has-medium-font-size">Mit PrintMulti ist es relativ einfach, das Aussehen von Kopien/Durchschlägen zu beeinflussen, unabhängig davon, ob sie vom gleichen Drucker aus dem gleichen Fach, aus einem anderen Fach oder sogar von einem ganz anderen Drucker kommen.</p>



<p class="has-medium-font-size">Dieser Beitrag soll helfen, einen aktuell verwendeten Druckertreiber mit Hilfe von PrintMulti dazu zu bewegen Kopien aus einem anderen Fach mit einem Wasserzeichen auszugeben. Dies sollte dann mit nahezu allen Anwendungen gehen. </p>



<h2 class="wp-block-heading">Wahl eines geeigneten Druckertreibers</h2>



<p class="has-medium-font-size">Am einfachsten ist es natürlich, wenn der verwendete Treiber auch für den Durchschlagdruck verwendet werden kann. Dazu ist es notwendig, dass er im EMF Format spoolt.</p>



<p class="has-medium-font-size">Das Spoolformat können Sie mit dem kostenfreien SPLViewer rausfinden. </p>



<p class="has-medium-font-size">Stellen Sie dafür sicher, dass bei den erweiterten Einstellungen die Optionen <em>&#8222;Druckaufträge nach dem Drucken nicht löschen&#8220;</em> und <em>&#8222;Erweiterte Druckfeatures aktiveren&#8220;</em> ausgewählt sind.</p>



<p class="has-medium-font-size">In den Beispielen verwenden wir einen Drucker mit Namen <em>&#8222;Samsung&#8220;</em>. Diesen müssen Sie entsprechend ersetzen durch den Namen Ihres verwendeten Druckers.</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="618" height="602" src="https://www.lvbprint.de/wp-content/uploads/2023/10/Ssmsung_Keep_Jobs.png" alt="&quot;Druckaufträge nach dem Drucken nicht Löschen&quot; konfigurieren bei den erweiterten Druckereinstellungen" class="wp-image-1331" title="Kopien drucken mit PrintMulti 26" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/Ssmsung_Keep_Jobs.png 618w, https://www.lvbprint.de/wp-content/uploads/2023/10/Ssmsung_Keep_Jobs-300x292.png 300w, https://www.lvbprint.de/wp-content/uploads/2023/10/Ssmsung_Keep_Jobs-12x12.png 12w" sizes="auto, (max-width: 618px) 100vw, 618px" /><figcaption class="wp-element-caption">Erweiterte Einstellungen</figcaption></figure>



<p class="has-medium-font-size">Jetzt drucken Sie eine Testseite (wenn Sie Papier sparen wollen, können Sie den Drucker auch anhalten).</p>



<p class="has-medium-font-size">Nachdem Sie den SPLViewer von <a href="https://www.lvbprint.de/files/splviewer/SPLView64.zip">hier</a> heruntergeladen und die Zip Datei entpackt haben, erhalten Sie eine einzelne ausführbare Datei. Zum Zugriff auf die Spooldatei müssen Sie den SPLViewer als Administrator starten. Entscheidend ist, dass bei der Testseite etwas von <em>&#8222;NT EMF&#8220;</em> erscheint (Die Liste erhalten Sie mit dem zweiten Toolbar Button &#8222;J&#8220; von links).<br>In dem Fall können Sie den Druckauftrag auch grafisch betrachten.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="824" height="487" src="https://www.lvbprint.de/wp-content/uploads/2023/10/splviewer_ntemf.png" alt="Datentyp des Druckjobs mit dem SPLViewer herausfinden" class="wp-image-1332" title="Kopien drucken mit PrintMulti 27" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/splviewer_ntemf.png 824w, https://www.lvbprint.de/wp-content/uploads/2023/10/splviewer_ntemf-300x177.png 300w, https://www.lvbprint.de/wp-content/uploads/2023/10/splviewer_ntemf-768x454.png 768w, https://www.lvbprint.de/wp-content/uploads/2023/10/splviewer_ntemf-18x12.png 18w" sizes="auto, (max-width: 824px) 100vw, 824px" /><figcaption class="wp-element-caption">SPLViewer NT EMF Format</figcaption></figure>



<p class="has-medium-font-size">Sollte stattdessen hier <em>&#8222;RAW&#8220;</em> stehen, wie bei früher gedruckten Testseiten, dann schauen Sie, ob der Druckertreiber eine Einstellung bzgl. des Spoolformats bietet.</p>



<p class="has-medium-font-size">Hier sind zwei Beispiele von verschiedenen Treibern. Es kann aber auch sein, dass es keine Einstellung dafür gibt.</p>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-center"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="617" height="285" src="https://www.lvbprint.de/wp-content/uploads/2023/10/samsung_EMF.png" alt="EMF-Datentype konfigurieren bei einem Samsung Treiber" class="wp-image-1333 size-full" title="Kopien drucken mit PrintMulti 28" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/samsung_EMF.png 617w, https://www.lvbprint.de/wp-content/uploads/2023/10/samsung_EMF-300x139.png 300w, https://www.lvbprint.de/wp-content/uploads/2023/10/samsung_EMF-18x8.png 18w" sizes="auto, (max-width: 617px) 100vw, 617px" /></figure><div class="wp-block-media-text__content">
<p>EMF bei einem <a href="https://www.samsung.com/de/support/category/computing/printer/" rel="noopener">Samsung</a> Treiber</p>
</div></div>



<p></p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="463" height="542" src="https://www.lvbprint.de/wp-content/uploads/2023/10/ZDesigner_EMF.png" alt="EMF-Datentype konfigurieren bei einem ZDesigner Treiber" class="wp-image-1334 size-full" title="Kopien drucken mit PrintMulti 29" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/ZDesigner_EMF.png 463w, https://www.lvbprint.de/wp-content/uploads/2023/10/ZDesigner_EMF-256x300.png 256w, https://www.lvbprint.de/wp-content/uploads/2023/10/ZDesigner_EMF-10x12.png 10w" sizes="auto, (max-width: 463px) 100vw, 463px" /></figure><div class="wp-block-media-text__content">
<p>und bei einem Labeldrucker von <a href="https://www.zebra.com/de/de/products/printers.html" rel="noopener">Zebra</a></p>
</div></div>



<p class="has-medium-font-size">Falls Sie es nicht schaffen den Job im EMF Format auszugeben, können Sie noch versuchen, einen alternativen Treiber für den verwendeten Drucker zu finden. </p>



<p class="has-medium-font-size">Dazu fügen Sie den Drucker manuell hinzu und wählen dann <em>&#8222;Windows Update&#8220;</em>.<br>Die daraufhin angebotenen Treiber sind in der Regel ältere Treiber der Version 3, die mit Windows ausgeliefert wurden (aktuell sind Version 4 Treiber).</p>



<p class="has-medium-font-size">Sollten Sie auch hier nicht fündig werden, müssten Sie einen virtuellen Drucker verwenden, was aber nicht Teil dieses Artikels ist.</p>



<h2 class="wp-block-heading">PrintMulti aktivieren</h2>



<p class="has-medium-font-size">Als nächstes wählen Sie bei den erweiterten Druckereinstellungen <em>&#8222;PrintMulti&#8220;</em> als Druckprozessor aus und auf der rechten Seite <em>&#8222;NT EMF&#8220;</em>, am besten in der höchsten Version. Diese Einstellung scheint direkt keinen Einfluss zu haben, aber es kann sicher nicht schaden hier EMF zu wählen (am besten den alten Druckprozessor notieren oder auf einer Kopie des Druckers arbeiten).</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="567" height="481" src="https://www.lvbprint.de/wp-content/uploads/2023/10/AssignPrintMulti.png" alt="PrintMulti als Druckprozessor zuweisen" class="wp-image-1343" title="Kopien drucken mit PrintMulti 30" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/AssignPrintMulti.png 567w, https://www.lvbprint.de/wp-content/uploads/2023/10/AssignPrintMulti-300x254.png 300w, https://www.lvbprint.de/wp-content/uploads/2023/10/AssignPrintMulti-14x12.png 14w" sizes="auto, (max-width: 567px) 100vw, 567px" /><figcaption class="wp-element-caption">PrintMulti als Druckprozessor zuweisen</figcaption></figure>



<p class="has-medium-font-size">Falls hier etwas anderes als <em>&#8222;winprint&#8220;</em> ausgewählt war, fehlen Ihnen womöglich danach einige Einstellmöglichkeiten wie <em>&#8222;mehrere Seiten pro Druckseite&#8220;</em> oder Wasserzeichen. Das ist z.B. bei Canon Treibern der Fall.</p>



<p class="has-medium-font-size">Wenn Sie diese Optionen benötigen, können Sie die entsprechenden PrintMulti Einstellungen verwenden oder einen zweiten identischen Drucker für den physischen Druck ohne PrintMulti verwenden. </p>



<p class="has-medium-font-size">Nach dieser Änderung wird Ihr Drucker nichts mehr drucken, bis Sie die <em>&#8222;PrintMulti.ini&#8220;</em> angepasst haben. Diese befindet sich in <em>&#8222;C:\Program Files\PrintMulti&#8220;</em> und muss normalerweise als Administrator editiert werden.</p>



<p class="has-medium-font-size">Fügen Sie die folgenden Zeilen nach dem <em>&#8222;[COMMON]&#8220;</em> Abschnitt ein und wählen den Namen Ihres Druckers anstatt <em>&#8222;Samsung&#8220;</em></p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-medium-font-size"><em>[Samsung]</em>
Active=1
PrintSelf=1</pre>



<p class="has-medium-font-size">Jetzt sollte der Drucker wieder normal funktionieren. Es sollten sich auch Logdateien im Verzeichnis <em>&#8222;%ALLUSERSPROFILE%\PrintMulti\Log&#8220;</em> befinden.</p>



<h2 class="wp-block-heading">Kopien drucken</h2>



<p class="has-medium-font-size">Wir wollen jetzt einfach zusätzlich eine Kopie aus einem anderen Schacht ausgeben. Um bei dem Samsung Drucker eine Kopie aus dem manuellen Schacht zu drucken, erweitern Sie die PrintMulti.ini um einige Zeilen</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-medium-font-size"><em>[<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Samsung_Manuell</mark></strong>]</em>
Printer=Samsung
PaperSource1=4

<em>[Samsung]</em>
Active=1
PrintSelf=1
ActionCopy=Print;<strong><em><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Samsung_Manuell</mark></em></strong></pre>



<p class="has-medium-font-size">Einige Bemerkungen hierzu:</p>



<ul class="wp-block-list">
<li class="has-medium-font-size">Sie können mehrere Aktionen hinzufügen. Diese beginnen immer mit <em>&#8222;Action&#8220;</em> und müssen sich im Text danach unterscheiden. In der Printaktion verweist der Name auf den Namen eines Abschnitts.<br></li>



<li class="has-medium-font-size">Es gibt mehrere Einstellungen für die Papierquelle. Mit <em>&#8222;PaperSource1&#8220;</em> wählen Sie eine für die erste und alle Folgeseiten. <br>Sie können hier einen Code oder den Namen des Schachten eintragen <br>(<em>&#8222;PaperSource1=Manueller Einzug&#8220;</em> wäre auch möglich gewesen).<br>Diese können Sie sich mit dem mitgelieferten Tool <em>&#8222;ShowPrinterInformation&#8220;</em> ausgeben lassen (Die Verwendung eines Codes empfiehlt sich auf jeden Fall, falls sich die Windows Sprache ändern sollte).<br>Wenn eine PaperSource Einstellung gefunden wird, dann werden auch alle möglichen Schächte in der Logdatei <em>&#8222;DbgLog.csv&#8220;</em> geloggt.&nbsp;<br></li>



<li class="has-medium-font-size">Wenn die Druckjobs erhalten bleiben, können Sie die gewählten Einstellungen auch kontrollieren beim Auswählen des Jobs in der Druckerwarteschlange (das <em>&#8222;!PM&#8220;</em> im Dokumentennamen wird von PrintMulti automatisch angehängt um eine Rekursion zu erkennen; <em>&#8222;Samsung&#8220;</em> ist schließlich ein PrintMulti Drucker).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="has-medium-font-size">Hier ein Ausschnitt von der Ausgabe mit &#8222;ShowPrinterInformation&#8220;</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-small-font-size">Bin names and codes: [DC_BINNAMES][DC_BINS]
                   :       7 Automatisch
<strong>                   :       4 Manueller Einzug</strong>
                   :       1 Fach 1

</pre>



<p class="has-medium-font-size">Und die Anzeige der Eigenschaften des zweiten Druckjobs</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="657" height="534" src="https://www.lvbprint.de/wp-content/uploads/2023/10/Manuell_Devmode-1.png" alt="Manuell Devmode 1" class="wp-image-1355" title="Kopien drucken mit PrintMulti 31" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/Manuell_Devmode-1.png 657w, https://www.lvbprint.de/wp-content/uploads/2023/10/Manuell_Devmode-1-300x244.png 300w, https://www.lvbprint.de/wp-content/uploads/2023/10/Manuell_Devmode-1-15x12.png 15w" sizes="auto, (max-width: 657px) 100vw, 657px" /></figure>



<h2 class="wp-block-heading">Wasserzeichen mit dem Druckertreiber hinzufügen</h2>



<p class="has-medium-font-size">Viele Druckertreiber bieten die Möglichkeit Wasserzeichen zu konfigurieren. In PrintMulti nutzen Sie diese Möglichkeit in dem mit dem mitgeliefertem Tool <em>&#8222;Devmode2File&#8220;</em> Druckereinstellungen in eine Datei gespeichert werden und beim Drucken darauf verwiesen wird. <br>Das ist auch eine Möglichkeit Ausgabeschächte zu konfigurieren. Windows liefert, im Gegensatz zu Eingabeschächten, keine programmatische Schnittstelle für Ausgabeschächte. Sie können natürlich als Workaround auch verschiedene Drucker mit unterschiedlichen Einstellungen anlegen, aber das Verwenden von gespeicherten Einstellungen ist da sicher komfortabler.</p>



<p class="has-medium-font-size">In Devmode2File erzeugen Sie eine neue Datei, wählen den Drucker aus und konfigurieren alles was Sie möchten. Einige Einstellungen werden von PrintMulti überschrieben. Diese sind entsprechend gekennzeichnet. Im Beispiel wird ein Wasserzeichen &#8222;Top Secret&#8220; definiert und in die Datei &#8222;C:\temp\TopSecret.dev&#8220; gespeichert.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="758" height="818" src="https://www.lvbprint.de/wp-content/uploads/2023/10/Devmode2File-1.png" alt="Devmode2File 1" class="wp-image-1379" title="Kopien drucken mit PrintMulti 32" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/Devmode2File-1.png 758w, https://www.lvbprint.de/wp-content/uploads/2023/10/Devmode2File-1-278x300.png 278w, https://www.lvbprint.de/wp-content/uploads/2023/10/Devmode2File-1-11x12.png 11w" sizes="auto, (max-width: 758px) 100vw, 758px" /><figcaption class="wp-element-caption">Speichern eines Devicemodes</figcaption></figure>



<p class="has-medium-font-size">In die PrintMulti.ini wird dann eine Zeile mit &#8222;Devmode1=&#8220; eingefügt.</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-medium-font-size"><em>[Samsung_Manuell]</em>
Printer=Samsung
PaperSource1=4
<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Devmode1=c:\temp\topsecret.dev</mark></strong></pre>



<p class="has-medium-font-size">Die Ausgabe können Sie normalerweise nicht im SPLViewer sehen, da der Treiber diese später beisteuert aber bei den Eigenschaften bei den Druckaufträgen sollte die Einstellung zu sehen sein.</p>



<h2 class="wp-block-heading">Wasserzeichen mit PrintMulti hinzufügen</h2>



<p class="has-medium-font-size">Wie im <a href="https://www.lvbprint.de/files/printmulti/PrintMulti_2.0_Manual_de.pdf">Handbuch</a> auf Seite 50 beschrieben, können Sie auch Wasserzeichen mit flexiblem Inhalt hinzufügen. </p>



<p class="has-medium-font-size">Hier ein Beispiel: <br>(Text quer mit Datum / Name des Druckjobs zentiert / aktuelle Seite und Anzahl Seiten rechtsbündig)</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong>[WatermarkDate]</strong>
Type=Text
Text="#(%Y-%m-%d %H:%M)T"
Attrib=BI
Font=Courier New
Foreground=0
Color=0xE0E0E0
X=$(#w;2;/)
Y=$(#h;2;/)
Height=20mm
Align=Center
VertAlign=Center
dx=#w
dy=#h

<strong>[WatermarkDocumentCenter]</strong>
Type=Text
Text=#D
Attrib=BI
Font=Arial
Foreground=0
Color=0xFF2600
X=$(#w;2;/)
; unit is twips. (1 inch = 1440 Twips; 1 inch = 2.54cm; 1cm=567 Twips)
Y=$(#h;567;-)
Height=5mm
Align=Center
VertAlign=Center

<strong>[WatermarkSideRight]</strong>
Type=Text
Text="#n/#Z "
Font=Courier New
Foreground=0
Color=0xFF2600
X=$(#w;#t;-)
Y=$(#h;567;-)
Height=5mm
Align=Right
VertAlign=Center

<strong>[Samsung_Manuell]</strong>
Printer=Samsung
PaperSource1=4
ObjectSecret=WatermarkDate
ObjectDocumentCentere=WatermarkDocumentCenter
ObjectSideRight=WatermarkSideRight
Transparent=1
</pre>



<p class="has-medium-font-size">Der untere Teil des Ausdrucks sieht dann im SPLViewer z.B. so aus</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="715" height="1024" src="https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-715x1024.jpg" alt="Wasserzeichen und Texte mit PrintMulti" class="wp-image-1404" style="width:600px" title="Kopien drucken mit PrintMulti 33" srcset="https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-715x1024.jpg 715w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-210x300.jpg 210w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-768x1099.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-1073x1536.jpg 1073w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-1431x2048.jpg 1431w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-8x12.jpg 8w, https://www.lvbprint.de/wp-content/uploads/2023/10/PrintWatermark-3-scaled.jpg 1788w" sizes="auto, (max-width: 715px) 100vw, 715px" /><figcaption class="wp-element-caption">Wasserzeichen und Texte mit PrintMulti</figcaption></figure>



<h2 class="wp-block-heading">Weitere sinnvolle Einstellungen</h2>



<p class="has-medium-font-size">Folgende Probleme konnten auch schon gelöst werden, die mit Kopien zu tun haben:</p>



<ul class="wp-block-list">
<li class="has-medium-font-size"><em>Die Kopie immer in Schwarz/Weiß drucken</em><br><code>Color=0</code><br>Der Ausdruck wird pro Seite berechnet und kann dann auch verschiedene Werte pro Seite annehmen (z.B. &#8222;Color=$(#n;1;==)&#8220; erste Seite farbig; der Rest S/W<br></li>



<li class="has-medium-font-size"><em>Kopie immer in Duplex drucken</em> <br><code>Duplex=V</code><br></li>



<li class="has-medium-font-size"><em>Seitenbereich einschränken</em> (z.B. letzte Seite mit Kleingedrucktem weglassen)<br><code>LastPage=$(#Z;1;-)</code><br>#Z ist die Gesamtzahl der Seiten<br></li>
</ul>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lizenzänderung für PrintMulti</title>
		<link>https://www.lvbprint.de/2022/10/09/license-change-for-printmulti/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Sun, 09 Oct 2022 15:03:37 +0000</pubDate>
				<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[license change]]></category>
		<category><![CDATA[Lizenzänderung]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1111</guid>

					<description><![CDATA[Wir haben uns entschieden künftig auf Client Lizenzen zu verzichten. Somit sind auch die erweiterten Funktionen (Rawdruck; Einbetten von Bildern, Texten, Rechtecken; Speichern als Grafik;<div class="btn btn-light btn-arrow"><a href="https://www.lvbprint.de/2022/10/09/license-change-for-printmulti/" rel="nofollow" title="Read More">Read More</a></div>]]></description>
										<content:encoded><![CDATA[
<p>Wir haben uns entschieden künftig auf Client Lizenzen zu verzichten. </p>



<p>Somit sind auch die erweiterten Funktionen (Rawdruck; Einbetten von Bildern, Texten, Rechtecken; Speichern als Grafik; Hintergrundformulare, Trennseiten) für alle Benutzer frei, unabhängig davon ob der Benutzer an einer einer Windowsdomaine angemeldet ist.</p>



<p>Auf Server Betriebssystemen brauchen Sie weiterhin eine Serverlizenz</p>



<p>Die Änderungen sind ab der Version 2.0.0.5 verfügbar.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatischer E-Mail Versand beim Ausdruck</title>
		<link>https://www.lvbprint.de/2022/04/24/e-mail-versand/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Sun, 24 Apr 2022 15:48:35 +0000</pubDate>
				<category><![CDATA[PrintMulti Examples]]></category>
		<category><![CDATA[automatic]]></category>
		<category><![CDATA[automatisch]]></category>
		<category><![CDATA[beispiel]]></category>
		<category><![CDATA[dispatch]]></category>
		<category><![CDATA[Drucken]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Print]]></category>
		<category><![CDATA[Printing]]></category>
		<category><![CDATA[PrintMulti]]></category>
		<category><![CDATA[serial mail]]></category>
		<category><![CDATA[serienmail]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=1021</guid>

					<description><![CDATA[Automatischer E-Mail Versand oder Ausdruck abhängig von Daten im Dokument]]></description>
										<content:encoded><![CDATA[
<p>Dieses Beispiel basiert auf einer Konfiguration von Herrn Tomaschko von der Firma ces aus Passau (<a href="https://www.ces-passau.de/" rel="noopener">https://www.ces-passau.de/</a>).</p>



<p>Es ging darum Druckjobs als E-Mail zu versenden oder alternativ auszudrucken, gesteuert durch Ausgaben im Dokument.</p>



<p>Als E-Mail Programm wird das Tool SwithMail verwendet. Es ermöglicht Zugangsdaten in einer Konfigurationsdatei zu speichern und diese per GUI zu editieren.</p>



<h4 class="wp-block-heading"><strong>Folgende Schritte sind nötig um das Beispiel zu testen</strong></h4>



<ul class="wp-block-list">
<li>Installieren Sie PrintMulti wie im Handbuch beschrieben und einen PrintMulti-Drucker mit Namen <em>&#8222;PrintMulti EMail&#8220;</em><br></li>



<li>Laden Sie folgendes Archiv <em>&#8222;<a href="https://www.lvbprint.de/files/examples/ExampleMail.zip">ExampleMail.zip</a>&#8222;</em> runter, kopieren es ins <em>&#8222;PrintMulti\Examples&#8220;</em> Programmverzeichnis und entpacken es. Die Dateien sollten dann in einem Unterverzeichnis <em>&#8222;PrintMulti\Examples\ExampleMail&#8220;</em> landen. Das Tool <em>&#8222;SwithMail&#8220;</em> in der aktuellen Version befindet sich in einem weiteren Unterverzeichnis.<br></li>



<li>In dem <em>&#8222;ExampleMail&#8220;</em> Ordner finden Sie eine Datei <em>&#8222;UseExampleMailConfiguration.reg&#8220;</em>. Führen Sie diese aus. Sie steuert, dass Ausdrucke auf den Drucker <em>&#8222;PrintMulti EMail&#8220;</em> die Konfigurationsdatei <em>&#8222;ExampleMail.ini&#8220;</em> in dem Verzeichnis nutzen.<br></li>



<li>Für physikalischen Ausdruck wird der Drucker <em>&#8222;TestPrinter&#8220;</em> verwendet. Den müssen Sie ggf. anpassen.<br></li>



<li>Starten Sie das Programm <em>&#8222;SwithMail&#8220;</em>; wählen <em>&#8222;Configure Settings with GUI&#8220;</em> und öffnen die <em>&#8222;SwithMailSettings.xml&#8220;</em> im <em>&#8222;ExampleMail&#8220;</em> Ordner.<br>Sie müssen auf jeden Fall Mailserver, Username und Passwort anpassen. Von dort können Sie auch gleich die Konfiguration testen.<br></li>



<li>Öffnen Sie die <em>&#8222;DummyAddresses.xlsx&#8220;</em> und konfigurieren die EMail Spalte in allen Reihen an denen <em>&#8222;SendMail=1&#8220;</em> definiert ist mit einer gültige Zieladdresse ein. Hier steht aktuell <em>&#8222;mail@pleasefill.de&#8220;</em>. Bei einer ungültigen Addresse sollte in der SwithMail Logdatei dann ein entsprechender Eintrag zu finden sein (z.B. bei gotthard.dobmeier@ultramail.none).<br>Alle Daten sind generisch erzeugte Zufallsdaten.<br></li>



<li>Jetzt öffnen Sie die <em>&#8222;TestMail.docx&#8220;</em> und stimmen der Verknüpfung mit dem Excel Dokument zu oder verbinden es ggf.<br></li>



<li>Der Serienbrief Ausdruck würde leider einen einzelnen Druckjob mit allen Dokumenten erzeugen. Im Beispiel <a href="https://www.lvbprint.de/2021/09/14/serienbrief-aufteilen/" data-type="post" data-id="922">SPLViewer: Serienbrief beim Drucken in einzelne Druckjobs aufteilen</a> steht beschrieben, wie Sie das umgehen können.<br>Hier ganz kurz: <em>&#8222;PrintMulti EMail&#8220;</em> Drucker anhalten; Serienbrief auf <em>&#8222;PrintMulti EMail&#8220;</em> drucken; SPLViewer ggf. runterladen und als Administrator starten; Beim Drucken eine Druckjobaufteilung von 1 wählen (unten links) und erneut auf dem <em>&#8222;PrintMulti EMail&#8220;</em> ausgeben. Den Originaljob mit den 7 Seiten löschen und den Drucker fortsetzen.<br>Vorher sollte man in Word vielleicht ein einzelnes Dokument zum Testen drucken.<br></li>
</ul>



<h4 class="wp-block-heading"><strong><strong><strong>Hier noch ein paar Eindrücke und Erläuterungen</strong></strong></strong></h4>



<p>Unten ein Ausschnitt aus der Excel Datei <em>&#8222;DummyAddresses.xlsx&#8220;</em></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="179" src="https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall-1024x179.jpg" alt="Tabelle mit Beispieldaten" class="wp-image-1072" title="Tabelle mit Beispieldaten" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall-1024x179.jpg 1024w, https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall-300x52.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall-768x134.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall-18x3.jpg 18w, https://www.lvbprint.de/wp-content/uploads/2022/04/DummyAddressesSmall.jpg 1076w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Die roten Felden sollten korrekte E-Mail Addressen enthalten. Die 4 Zeile enthält absichtlich eine falsche E-Mail um die SwithMail Logdatei zu untersuchen.</p>



<p>Der vierte Datensatz im verbundenen Seriendruckdokument TestMail.docx würde dann so aussehen:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1011" height="746" src="https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMerge.jpg" alt="Serienbrief in Word" class="wp-image-1033" title="Serienbrief in Word" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMerge.jpg 1011w, https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMerge-300x221.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMerge-768x567.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMerge-16x12.jpg 16w" sizes="auto, (max-width: 1011px) 100vw, 1011px" /></figure>



<p>Die blauen Textstellen sind mit der Formatvorlage &#8222;Hidden&#8220; formatiert. Wenn Sie die Farbe dort auf &#8222;weiß&#8220; setzen und den Font verkleinern, sind die Stellen nicht mehr sichtbar. Das wurde im Dokument &#8222;TestMailHidden.docx&#8220; so gemacht.</p>



<p>Dann sieht die Druckvorschau z.B. so aus:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="641" height="273" src="https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMergeHidden.jpg" alt="Druckvorschau" class="wp-image-1036" title="Druckvorschau" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMergeHidden.jpg 641w, https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMergeHidden-300x128.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/WordMailMergeHidden-18x8.jpg 18w" sizes="auto, (max-width: 641px) 100vw, 641px" /></figure>



<hr class="wp-block-separator has-css-opacity"/>


<h5><span style="color: #000000;"><strong>Die Hauptteile der Konfigurationsdatei</strong></span></h5>
<p><span style="color: #ff0000;"><strong><br />[SendMail]</strong></span><br /><span style="color: #ff0000;">Active=1</span><br /><span style="color: #ff0000;">Execute=yes</span><br /><span style="color: #ff9900;">; if not executed as user, log files are owned by system account</span><br /><span style="color: #ff0000;">ExecuteAsUser=yes</span><br /><span style="color: #ff0000;">ExecuteTimeout=INF</span></p>
<p><span style="color: #ff9900;">; dependent on the language a body text file is chosen using SwithMail parameter replacement options</span><br /><span style="color: #ff0000;">ExecuteCmd=@&#8220;%PM_INSTALLPATH%\Examples\ExampleMail\SwithMail\SwithMail.exe&#8220; /s /x @&#8220;%PM_INSTALLPATH%\Examples\ExampleMail\SwithMailSettings.xml&#8220; /p1 @&#8220;%@FirstName%&#8220; /to %@Receiver% /bodytxt @&#8220;%PM_INSTALLPATH%\Examples\ExampleMail\Body_%@Lang%.txt&#8220; /subject @&#8220;%@Subject%&#8220; /attachment @&#8220;%@PDFFile%&#8220; /Log @&#8220;%@MailLogFile%&#8220;</span></p>
<p><span style="color: #339966;"><strong>[CreatePDFAndMail]</strong></span><br /><span style="color: #339966;">Printer=Microsoft Print To PDF</span></p>
<p><span style="color: #99cc00;">; Extract data from the document</span><br /><span style="color: #339966;">!@Receiver=$(1;rawpage;&#8220;&lt;2&gt;(.*)&lt;2&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@Id=$(1;rawpage;&#8220;&lt;3&gt;(.*)&lt;3&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@Lang=$(1;rawpage;&#8220;&lt;4&gt;(.*)&lt;4&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@FirstName=$(1;rawpage;&#8220;&lt;5&gt;(.*)&lt;5&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@Subject=$(1;rawpage;&#8220;&lt;6&gt;(.*)&lt;6&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@attachmentname=$(1;rawpage;&#8220;&lt;7&gt;(.*)&lt;7&gt;&#8220;;1;regex)</span><br /><span style="color: #339966;">!@PDFFile=%allusersProfile%\PrintMulti\#(%Y_%m_%d)T\%@attachmentname%_%@id%.pdf</span><br /><span style="color: #339966;">!@MailLogFile=%allusersProfile%\PrintMulti\#(%Y_%m_%d)T\LogMail.txt</span></p>
<p><span style="color: #339966;">Save2File=%@PDFFile%</span><br /><span style="color: #339966;">ExecuteSectionMail=<strong><span style="color: #ff0000;">SendMail</span></strong>;%@SendMail%</span></p>
<p><span style="color: #ff00ff;"><strong>[PrintDocument]</strong></span><br /><span style="color: #ff00ff;">Printer=TestPrinter</span></p>
<p><span style="color: #99ccff;">; Virtual Printer &#8211; need PrintMulti as Print Processor</span><br /><span style="color: #0000ff;"><strong>[PrintMulti EMail]</strong></span><br /><span style="color: #0000ff;">Active=1</span></p>
<p><span style="color: #0000ff;">!@SendMail=$(1;rawpage;&#8220;&lt;1&gt;(.*)&lt;1&gt;&#8220;;1;regex;1;==)</span><br /><span style="color: #0000ff;">!@Print=$(%@SendMail%;1;!=)</span></p>
<p><span style="color: #99ccff;">; action is not called if calucalted to false</span><br /><span style="color: #0000ff;">ActionCreatePDF=Print;<strong><span style="color: #339966;">CreatePDFAndMail</span></strong>;%@SendMail%</span><br /><span style="color: #0000ff;">ActionPostversand=Print;<strong><span style="color: #ff00ff;">PrintDocument</span></strong>;%@Print%<br /></span></p>
<hr />
<ul>
<li>Variable, die mit &#8222;!&#8220; beginnen werden als Umgebungsvariable gesetzt und behalten Ihre Gültigkeit in allen Unterabschnitten. Der Zugriff erfolgt, wie bei allen Umgebungsvariablen durch Einschließen in &#8222;%&#8220; Ausdrücke. Das &#8222;@&#8220; ist Teil des Names.<br />Bei Verwendung von @&#8220;&#8230;&#8220; bleiben die Anführungszeichen erhalten und Escape Sequenzen werden nicht ersetzt (Siehe Kapitel 6.1 im Handbuch).</li>
<li>Der reguläre Ausdruck z.B. bei &#8222;@SendMail&#8220; gibt den Text zwischen &#8222;&lt;1&gt;.. &lt;1&gt;&#8220; zurück und vergleicht diesen mit &#8222;1&#8220;. Das Ergebnis ist ein boolscher Wert der als &#8222;1&#8220; oder &#8222;0&#8220; gespeichert wird. &#8222;@Print&#8220; wird dann also NOT &#8222;@SendMail&#8220; und nur eine der beiden Aktionen wird ausgeführt.</li>
<li>In der Aktion &#8222;<span style="color: #339966;">CreatePDFAndMail</span>&#8220; wird auf der Job auf den Microsoft PDF Printer ausgegeben und in @PDFFile gespeichert. Der Name der PDF Datei setzt sich aus einem festen Pfad, einem Datumsverzeichnis und Teilen aus dem Dokument zusammen. Nach dem Speichern der PDF wird noch der Abschnitt &#8222;<span style="color: #ff0000;">SendMail</span>&#8220; ausgeführt. Alle Umgebungsvariablen behalten ihren Wert.</li>
<li>In dem Abschnitt wird dann SwithMail aufgerufen mit einer langen Kommandozeile. Interessant sind hier:<br />&#8211; Übergabe eines Parameters (/p1) den SwithMail dann im BodyText ersetzt.<br />&#8211; Der Bodytext wird anhand der Sprache gewählt<br />&#8211; Der Name der Logdatei wird hier übergeben. Das hat in der SwithMail Konfiguration nicht geklappt &#8211; warum auch immer.</li>
</ul>
<h5><span style="color: #000000;"><strong>Die SwithMail Logdatei enthält dann z.B.</strong></span></h5>
<pre>10.04.2022 12:00:42 - Success - SendTo: "xxx" - CC: "" - BCC: "" - Subject: "Newsletter 1/2022 " - Attachments: "Information_2022_04_2.pdf"<br /><span style="color: #ff0000;">10.04.2022 12:00:45 - Failure - SendTo: "gotthard.dobmeier@ultramail.none" - CC: "" - BCC: "" - Subject: "Newsletter 1/2022 " - Attachments: "Information_2022_04_4.pdf" - Postfach nicht verfügbar. Die Serverantwort war: Requested action not taken: mailbox unavailable</span><br />10.04.2022 12:00:49 - Success - SendTo: "xxx" - CC: "" - BCC: "" - Subject: "Newsletter 1/2022 " - Attachments: "Information_2022_04_7.pdf"</pre>


<p>Als nächsten kann mehr jetzt den Seriendruckbrief auf den &#8222;PrintMulti EMail&#8220; drucken. <strong>Halten Sie dafür den Drucker</strong> an und drucken alle Dokumente aus. Anschließend öffnen Sie den SPLViewer als Administrator. Sie sollten dann einen Druckjob mit 7 Seiten sehen. Die 4. von 7 Seiten sieht z.B. so aus, falls der Text nicht &#8222;hidden&#8220; ist.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="858" height="877" src="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewer-Documents.jpg" alt="Gedrucktes Dokument im SPL-Viewer" class="wp-image-1044" title="Gedrucktes Dokument im SPL-Viewer" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewer-Documents.jpg 858w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewer-Documents-294x300.jpg 294w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewer-Documents-768x785.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewer-Documents-12x12.jpg 12w" sizes="auto, (max-width: 858px) 100vw, 858px" /></figure>



<p>Anschließend drucken Sie das Dokument vom SPLViewer erneut auf den &#8222;PrintMulti EMail&#8220; aus und wählen dafür einen neuen Job nach jeder Seite (das funktioniert scheinbar nicht in der Jobansicht; Sie müssen das Dokument öffnen)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="523" height="428" src="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrint.jpg" alt="Druckerauswahl im SPL-Viewer" class="wp-image-1045" title="Druckerauswahl im SPL-Viewer" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrint.jpg 523w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrint-300x246.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrint-15x12.jpg 15w" sizes="auto, (max-width: 523px) 100vw, 523px" /></figure>



<p>Den Orginaljob mit 7 Seiten können Sie jetzt löschen und den &#8222;PrintMulti EMail&#8220; Drucker fortsetzen.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="322" src="https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob-1024x322.jpg" alt="Liste der Druckjobs" class="wp-image-1046" title="Liste der Druckjobs" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob-1024x322.jpg 1024w, https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob-300x94.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob-768x242.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob-18x6.jpg 18w, https://www.lvbprint.de/wp-content/uploads/2022/04/DeleteMainJob.jpg 1045w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Das Ergebnis beim Mailempfänger könnte dann so aussehen:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="684" height="338" src="https://www.lvbprint.de/wp-content/uploads/2022/04/EMailReceive.jpg" alt="E-Mail Empfang" class="wp-image-1047" title="E-Mail Empfang" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/EMailReceive.jpg 684w, https://www.lvbprint.de/wp-content/uploads/2022/04/EMailReceive-300x148.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/EMailReceive-18x9.jpg 18w" sizes="auto, (max-width: 684px) 100vw, 684px" /></figure>



<p>Bei mir ist der &#8222;Testdrucker&#8220; ein lokaler Dateidrucker bei dem die Jobs erhalten bleiben (ebenso wie beim &#8222;PrintMulti EMail&#8220;).</p>



<p>Das sieht dann im SPLViewer z.B. so aus. Man sieht gut die gedruckten Dokumente. Die restlichen wurden per E-Mail verschickt.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="278" src="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted-1024x278.jpg" alt="Druckjobs im SPL-VIewer" class="wp-image-1050" title="Druckjobs im SPL-VIewer" srcset="https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted-1024x278.jpg 1024w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted-300x81.jpg 300w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted-768x208.jpg 768w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted-18x5.jpg 18w, https://www.lvbprint.de/wp-content/uploads/2022/04/SPLViewerPrinted.jpg 1044w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dieses Beispiel verwendet das leistungsfähige Tool: <a href="https://sourceforge.net/projects/swithmail/" rel="noopener">SwithMail</a></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SPLViewer: Serienbrief beim Drucken in einzelne Druckjobs aufteilen</title>
		<link>https://www.lvbprint.de/2021/09/14/serienbrief-aufteilen/</link>
		
		<dc:creator><![CDATA[dieter]]></dc:creator>
		<pubDate>Tue, 14 Sep 2021 17:36:12 +0000</pubDate>
				<category><![CDATA[SPLViewer Beispiele]]></category>
		<category><![CDATA[Aufteilung]]></category>
		<category><![CDATA[Drucken]]></category>
		<category><![CDATA[Druckjob]]></category>
		<category><![CDATA[Printing]]></category>
		<category><![CDATA[Serienbrief]]></category>
		<category><![CDATA[SPLViewer]]></category>
		<guid isPermaLink="false">https://www.lvbprint.de/?p=922</guid>

					<description><![CDATA[Aufteilung eines Serienbriefes beim Drucken in einzelne Druckjobs]]></description>
										<content:encoded><![CDATA[<p>Ich konnte kaum glauben, dass Word keine Möglichkeit bietet (zumindest habe ich nichts gefunden bis auf diverse Makros) um einen Serienbrief beim Drucken in einzelne Druckjobs aufzuteilen.</p>
<p>Bei OpenOffice gibt es dafür wohl eine Möglichkeit (in der Version 4.1.10 scheint diese aber deaktiviert zu sein).<br><a href="http://www.ooowiki.de/SerienDruck.html" rel="noopener">SerienDruck &#8211; Archiv des LibreOffice- und OpenOffice.org-Wiki (ooowiki.de)</a></p>
<p>So eine Funktion ist sinnvoll, wenn die Briefe einzeln archiviert oder vielleicht PDFs daraus erzeugt werden sollen.</p>
<p>Es gibt eine ziemlich einfache Möglichkeit die Funktionalität mit dem SPLViewer zu erreichen.</p>
<p>Die einzige Voraussetzung ist, dass der betreffende Drucker im EMF Format spoolt, also Version 3 Treiber verwendet.</p>
<p>Folgendes Dokument bietet auf Seite 5 Hilfestellung einen geeigneten Treiber zu finden:<br><a href="https://www.lvbprint.de/files/printmulti/PrintMulti_Quick_Guide_Troubleshooting_de.pdf">PrintMulti_Quick_Guide_Troubleshooting_de.pdf (lvbprint.de)</a></p>
<p>Jetzt gehen Sie folgendermaßen vor:</p>
<ul>
<li>Halten Sie den Drucker an.</li>
<li>Aktivieren Sie &#8222;Druckaufträge nach dem Drucken nicht löschen&#8220; bei den erweiterten Druckeinstellungen (sonst wählt Windows für den Druckjob einen Namen, den der SPLViewer nicht erkennt). <br>Alternativ können Sie auch einen anderen Spoolverzeichnis für den Drucker festlegen (wie das geht steht hier: <a href="https://www.lvbprint.de/splviewer/">SPLViewer)</a></li>
<li>Drucken Sie Ihr Seriendokument wie gewohnt auf dem angehaltenen Drucker aus.</li>
<li>Öffnen Sie den SPLViewer. Das Dokument sollte Sie jetzt in der Jobliste erscheinen und beim Betrachten müssen Sie die Ausgabe grafisch sehen (Sonst war es kein EMF Job).</li>
</ul>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="890" height="374" src="https://www.lvbprint.de/wp-content/uploads/2021/09/Serienbrief-1.png" alt="Mail merge document on the stopped printer.
Seriendruck auf dem angehaltenem Drucker." class="wp-image-924" title="SPLViewer: Serienbrief beim Drucken in einzelne Druckjobs aufteilen 34" srcset="https://www.lvbprint.de/wp-content/uploads/2021/09/Serienbrief-1.png 890w, https://www.lvbprint.de/wp-content/uploads/2021/09/Serienbrief-1-300x126.png 300w, https://www.lvbprint.de/wp-content/uploads/2021/09/Serienbrief-1-768x323.png 768w, https://www.lvbprint.de/wp-content/uploads/2021/09/Serienbrief-1-18x8.png 18w" sizes="auto, (max-width: 890px) 100vw, 890px" /><figcaption>Original Seriendruck auf dem angehaltenen Drucker</figcaption></figure>


<ul>
<li>Jetzt drucken Sie vom SPLViewer das Dokument erneut aus und wählen die Anzahl von Seiten pro Brief bei der Druckjobaufteilung.&nbsp;</li>
</ul>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="528" height="429" src="https://www.lvbprint.de/wp-content/uploads/2021/09/SplViewerPrint.png" alt="Split file into page ranges when printing.
Datei beim Drucken in Seitenbereiche aufteilen." class="wp-image-925" title="SPLViewer: Serienbrief beim Drucken in einzelne Druckjobs aufteilen 35" srcset="https://www.lvbprint.de/wp-content/uploads/2021/09/SplViewerPrint.png 528w, https://www.lvbprint.de/wp-content/uploads/2021/09/SplViewerPrint-300x244.png 300w, https://www.lvbprint.de/wp-content/uploads/2021/09/SplViewerPrint-15x12.png 15w" sizes="auto, (max-width: 528px) 100vw, 528px" /><figcaption>Datei beim Drucken in Seitenbereiche aufteilen</figcaption></figure>


<ul>
<li>Danach sollten in der Jobliste die entsprechende Anzahl von Einzeljobs erscheinen. Diese haben dann einen sinnvollen Namen.</li>
</ul>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="886" height="432" src="https://www.lvbprint.de/wp-content/uploads/2021/09/ListOfPrintJobsD.png" alt="List of print jobs after split printing.
Liste der Druckjobs nach dem aufgeteiltem Drucken." class="wp-image-927" title="SPLViewer: Serienbrief beim Drucken in einzelne Druckjobs aufteilen 36" srcset="https://www.lvbprint.de/wp-content/uploads/2021/09/ListOfPrintJobsD.png 886w, https://www.lvbprint.de/wp-content/uploads/2021/09/ListOfPrintJobsD-300x146.png 300w, https://www.lvbprint.de/wp-content/uploads/2021/09/ListOfPrintJobsD-768x374.png 768w, https://www.lvbprint.de/wp-content/uploads/2021/09/ListOfPrintJobsD-18x9.png 18w" sizes="auto, (max-width: 886px) 100vw, 886px" /><figcaption>Liste der Druckjobs nach dem aufgeteilten Drucken</figcaption></figure>


<ul>
<li>Nachdem Sie kontrolliert haben, dass die Jobs richtig aufgeteilt wurden, können Sie den ursprünglichen Job löschen (im Bild den mit der JobId 1115).</li>
<li>Dann einfach den angehaltenen Drucker fortsetzen und die einzelnen Druckjobs werden aus dem Drucker purzeln.</li>
</ul>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
