Hier ist eine Aufgabe: Ich habe eine Excel-Datei mit einer Tabelle (z. B. Spalten sind Name, Nummer und Adresse) und einer Dimloma-Vorlage. Wie kann ich das Ausfüllen meiner Vorlage automatisieren und alle fertigen Diplome in verschiedenen Dateien speichern? Welcher Weg ist der beste, dies zu tun?
Ich arbeite derzeit in Corel Draw. Corel Draw hat Print Merge, aber es funktioniert mit dem Drucken auf Papier, aber ich brauche gespeicherte Dateien auf meinem Desktop. Ist es in Corel Draw möglich?
Die einfachste Lösung wäre wahrscheinlich, einen PDF-Drucker zu installieren (z. B. PDFCreator: http://sourceforge.net/projects/pdfcreator/ ) und die Funktion „Drucken zusammenführen“ zu verwenden, um in eine PDF-Datei zu drucken, und dann eine Anwendung wie jPDFTweak ( http://jpdftweak.sourceforge.net/ ) oder pdftk ( http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ ), um das Dokument in einzelne Seiten zu zerlegen, wenn Sie separate Dateien für jedes Diplom benötigen .
Früher habe ich das aber anders gemacht:
Sie können die Diplomvorlage als SVG speichern, was nur eine Textdatei ist, und Platzhalterzeichenfolgen anstelle von Namen verwenden. Dann können Sie mithilfe eines Skripts, das die Namensliste aus einer CSV-Datei liest (ein Textdateiformat, das Sie in Excel speichern können), die Textsuch- und Ersetzungsfunktionen verwenden, um die Platzhalterzeichenfolgen in der SVG-Datei durch tatsächliche Namen zu ersetzen. Schließlich können Sie zB Inkscape von der Kommandozeile aus verwenden, um alle Dateien in ein anderes Format zu konvertieren.
Beachten Sie, dass die PDF-Druckerlösung für Sie einfacher ist, wenn Sie keine Skriptsprache beherrschen. Diese Antwort ist hauptsächlich für andere Personen gedacht, die möglicherweise Software ohne eine spezielle Funktion zum Drucken von Seriendrucken verwenden.
Hier ist ein Beispiel-Python-Skript zum Generieren der SVG-Dateien mit ersetzten Namen. Es erwartet eine SVG-Diplomvorlage namens "template.svg", die Textobjekte mit dem Text VORNAME und NACHNAME als Platzhalter enthält, und eine CSV-Datei namens "recipients.csv" mit den Spaltennamen "Vorname" und "Nachname" und durch Kommas getrennten Feldern .
#!/usr/bin/python
# coding: utf-8
import csv
template_f = open('template.svg', 'r')
template = template_f.read()
template_f.close()
recipients = csv.DictReader(open('recipients.csv', 'rb'), delimiter=',', quotechar='"')
t = template[:]
nfiles = 0
def write_file(content, num):
output = open('diploma_%02d.svg' % num, 'w')
output.write(content)
output.close()
for recipient in recipients:
firstname = recipient['FirstName'].strip()
lastname = recipient['LastName'].strip()
t = t.replace('FIRSTNAME', firstname).replace('LASTNAME', lastname)
write_file(t, nfiles)
t = template[:]
nfiles += 1
Wie von Krzysztof erwähnt, ist die einfachste/schnellste Lösung:
Verwenden Sie die Druckzusammenführungsfunktion (wenn Sie nicht wissen, wie das geht, hinterlassen Sie einen Kommentar, und ich kann es genauer erklären)
Drucken Sie die resultierende Datei mit einem PDF-Drucker oder der nativen Funktion „Als PDF veröffentlichen“ von CorelDRAW in eine PDF-Datei
Verwenden Sie etwas wie PDFill PDF Tools, um das PDF entweder in mehrere einseitige PDF-Dateien aufzuteilen oder alle Seiten in Bilder umzuwandeln.
Ich habe dies in der Vergangenheit getan, zB um mehr als 200 Namensschilder zu generieren, und es funktioniert wunderbar.
Dies kann mit Corel Macro/VBA erfolgen. Wie auf diesen:
http://www.youtube.com/watch?v=s-wMp4xjv9A und http://www.youtube.com/watch?v=gRI-ef-xHlU
Die variablen Daten stammen aus Excel.
Das Makro wird den Text durch Daten aus einer bestimmten Excel-Spalte ersetzen/erneut eingeben, siehe Datensatznummer.
Exportieren Sie es dann (sowohl Design als auch Daten/Fülltext) als hochauflösendes Bitmap oder veröffentlichen Sie es als PDF
.
Alan Gilbertson
Andreas Leach
KMSTR