Formular aus Libre Office Calc aus bedrucken - Wie ?

serie300

Well-Known Member
Hallo

ich möchte aus Libre Office Calc einzelne Feldeinträge aus einer Tabelle in die Felder eines Formularträger (kein A4) drucken ( also nicht das Formular selber drucken, sondern in ein Vorhandenes, das in den Drucker gelegt / eingespannt wird in die entsprechenden Felder drucken). Vielleicht hat hier jemand schon damit Erfahrung. Wie mache ich das am geschicktesten ?
Rechner ist ein Linux Rechner mit Cups, nicht meine FreeBSD Maschine mit lpr.
Was mir einfällt:
1. Den 9-Nadler rausholen und das Farbband frisch machen (gibt anscheinend keine mehr neu) und ein kleines Shell Script schreiben, das direkt auf unlpt0 (oder wie das bei Linux heißt) an Cups vorbei (wüßte nicht, wie ich unter Cups auf einen Raw Kanal drucken kann, hab mich mit Cups aber auch nicht sehr beschäftigt), mit den geeigneten Drucker Steuerbefehlen die übergebenen Argumente an die entsprechende Positionen druckt. (Druck wird dann durch eine eigene Schaltfläche aufgerufen, die das Shellscript startet).
2. In LibreOffice ein zweites Sheet für die Ausgabe basteln, bei dem Zellen (Zellgrößen) durch Probieren via Zeilen- / Spalten größen an die geometrisch korrekten Stellen gesetzt werden und dann dieses Sheet drucken. Hoffen daß die Toleranzen beim Einzug durch den Laser so klein sind, daß das gut geht.
 
Ich sag dir wie ichs machen würde, nicht dass das der einzige oder gar beste Weg wäre. Gemacht hab ich sowas auch erst 2-3 mal.

1. In Writer eine Seite Basteln, die mit dem Formular im Drucker übereinstimmt. Writer geht hier mE deutlich einfacher als in Calc selbst.
2. Das Calc-Dokument wird dann als Datenquelle in das WriterDoc eingebunden und die einzelnen Datenfelder richtig plaziert.

Ob das Sinnvoll ist, kann natürlich stark von der Art des Forms und der zu bedruckenden Stellen abhängig sein :)
 
Ich habs mit Methode 2 gemacht, genauer gesagt, die entsprechender Felder der Tabelle mit einem Writer-Dokument verknüpft. 2 -3 Millimeter Toleranz musst Du allerdings einplanen.
Kann Dir aber leider nicht mehr sagen wie ichs genau gemacht habe, ist schon fast 20 Jahre her, dass ichs angelegt habe (noch unter Star- oder OpenOffic). Wird aber heute noch unverändert genutzt.
 
Ich habe unlängst Klebe-Labels bedruckt, millimetergenau und das auf einem GDI-Drucker. Perfektes, optisches Ergebnis. Es gab aber Fallstricke, die je nach Drucker und Treiber variieren.

Du erstellst deine Vorlage im Office (bei mir war das New->Labels) exakt so wie du mittels Lineal abmisst und trägst diese ein. Gegenprüfen bei vorhandener Vorlage: Format->Page Style->Page
Das kann etwas anders zu gestalten sein, weil du ja dynamisch calc-Daten (und kein sich wiederholendes Label) fütterst, aber solange die Abmessungen da korrekt sind, ist alles tutti.

Spielt jetzt der Drucker noch exakt mit, wärst du damit fertig.

Zur ungefähren Vorstellung des Problems, mein "Blatt"/Labelträger war einspaltig, etwas länger als eine DINA4-Seite, weniger als halb so breit und 7 Labels untereinander.
Was ich bis dato nicht wusste war, dass dieser Drucker generell nicht über die Maße eines DINA4-Blatts drucken kann. Lies: alles was über die 297mm (wahrscheinlich sind es harte 300mm, weil er Randlosdruck kann) herausgeht, wird rigoros abgeschnitten. Kann der nicht, will der nicht, macht der nicht. Ich habe den Treiber editiert und die Papiervorlage reingebastelt, es geht nicht. ;)
Das nächste Problem war, dass die Labels nur zur Hälfte bedruckt waren. Die rechte Labelseite war links gedruckt, rechts war weiß. Hier hatte ich das Blatt in die Schublade gesteckt und obwohl er mittig hätte drucken sollen, hat er linksbündig begonnen. Das lag daran, dass im Treiber die Schublade als Feed bei der Papiervorlage generell DINA4 forciert, egal was man in der Druckansicht für eine Vorlage einstellt.
Es funktionierte dann bei der manuellen Zuführung, durch die Schieber bei der Einzugshilfe kann man da kleine Sachen nur mittig reinschieben. Dort konnte ich dann auch das größte treiberinterne Labelprofil wählen (300mm Limit!) und es klappte. Die ersten 6 Labels kamen perfekt, das 7te war abgeschnitten wegen des Limits. War mir dann aber egal, etwas Ausschuss ist immer. :D

Müsste ich das nochmal machen, dann würde ich die Labelvorlage nicht auf 7 Labels machen, sondern auf eine und dann gucken, ob ich das trickreich irgendwie als Endlosfeed "rausbekomme".
 
wegen eines Nervenleidens geht es bei mir kaum noch, dass ich überhaupt von Hand schreibe, also auch Formulare fallen zum größten Teil der Beschriftung mittels PC und LibreOffice anheim.

Bisher hatte ich das so gemacht, dass ich die Formulare nachgebaut hatte, wie oben von @medV2 beschrieben. Wichtig ist, dass man die Seitengröße zuvor korrekt einstellt. Dies hat sich von Version zu Version in LibreOffice geändert und aktuell kann ich nicht sagen, wie man das macht.
Innerhalb der Seite platziere ich dann Rahmen, denen ich einen Abstand zum (unsichtbaren) Rand lasse, damit die Schrift deutlich innerhalb der gewünschten Fläche landet.
Wie gut das dann ausgedruckt wird, hängt am Drucker, bzw am Treiber. Von meinen beiden PS-Laser-Druckern kann es einer sehr gut, der andere nur mäßig.

Seit einiger Zeit scanne ich die Formulare in recht hoch aufgelöstem PNG (300 dpi) und verwende diese dann als Hintergrund in meinem Dokument. Das erspart das Ausmessen der Positionen. Jenachdem drucke ich dann dies komplett aus oder entferne halt vorher den Hintergrund.
Bei meinen letzten Versuchen habe ich dazu LibreOffice Draw benutzt. Ich kann nicht sagen, dass es wirkliche Vorteile hat gegenüber dem Writer, aber es geht damit ganz gut.
Die Hintergrundbilder müssen natürlich passend skaliert und ausgerichtet sein, aber die optische Kontrolle ist hierzu ja einfach.

Diese Methoden sind stark an der Grafik orientiert und für einzelne Auflagen erträglich.
Wie man gezielt Felder eines Formulars (in meinem Beispiel also Rahmen) aus einer Datenbank oder aus Calc automatisiert befüllen kann, habe ich keine Ahnung.
Formulare in Calc nach zu bauen, ist jedenfalls viel schwieriger, als im Writer oder im Draw.
 
Zurück
Oben