Seite 1 von 1
Personalisiertes Pdf-Dokument erzeugen
Verfasst: So 22. Sep 2019, 12:05
von lenherrg
Liebe Experten,
ich habe etwas eine eigenartige Frage. Gerne möchte ich meine Unterlagen personalisieren. D.h. ich möchte, dass auf jedem Seitenrand meines Skriptes eine Personalisierung etwa in der Form "Diese Unterlagen gehören Peter Ohm der Klasse EIN 1b", "Diese Unterlagen gehören Rita Einstein der Klasse EIN 1b" usw. steht.
Ich stelle mir vor, dass ich die Daten (Vorname, Name, Klasse) aus einer Excel-Tabelle oder per CSV einlese. Dann daraus quasi automatisch verschiedene pdf's mit den Entsprechenden Personalisierungen erzeugt werden.
\documentclass[a4paper,12pt]{article}
\usepackage{pdfpages} % zum Einbinden des pdf-Dokumentes
\begin{document}
\includepdf[pages=-]{Testseiten}
\end{document}
Da das Kompilieren des Grunddokumentes (oben als Testseiten bezeichnet) recht lange dauert, könnte ich mir eine Lösung über das Paket pdfpages vorstellen, wo dann quasi dem Grunddokument die Personalisierung pro Lernender darübergelegt wird.
Lässt sich dies per LaTex realisieren? Wenn ja - wie.
Oder gibt es allenfalls andere geeignete Tools?
Vielen herzlichen Dank für eure Beiträge
lenherrg
Verfasst: So 22. Sep 2019, 12:25
von Gast
Kein Problem:
\documentclass{article}
\usepackage{eso-pic,picture}
\usepackage{csvsimple}
\usepackage{pdfpages}
\begin{filecontents*}{schueler.csv}
Name,Vorname,Klasse
Mustermann,Frauke,1a
Masterfrau,Sven,1b
Musteres,Hanuk,1a
\end{filecontents*}
\newcommand*{\Vorname}{}
\newcommand*{\Name}{}
\newcommand*{\Klasse}{}
\AddToShipoutPictureFG{%
\AtTextLowerLeft{%
\put(-1cm,0){\rotatebox{90}{Diese Unterlagen gehören \Vorname~\Name{} der \Klasse.}}%
}%
}
\begin{document}
\csvreader[head to column names]{schueler.csv}{}{%
\includepdf[pages=-]{example-image-a4-numbered}%
}
\end{document}
Wobei auf diesem Weg ein einziges großes Dokument entsteht, das dann alle personalisierten Dokumente enthält. Will man einzelne Dokumente, so wäre zu empfehlen, die Datenbankauswertung in einem externen Skript durchzuführen. Ob man dann jeweils ein (temporäres) LaTeX-Dokument erzeugt, das wieder per
pdflatex das Urdokument einliest und per
eso-pic oder Seitenstildefinition (beispielsweise mit
scrlayer oder
fancyhdr) den Namen hineinimpft oder man gleich etwas wie pdftk für ein
Wasserzeichen verwendet, ist letztlich Jacke wie Hose.
Nachteil der Verwendung von
pdfpages ist übrigens, dass Links innerhalb des Dokuments verloren gehen.
Verfasst: So 22. Sep 2019, 13:03
von lenherrg
Lieber Gast,
du hast mir schonmal ganz tüchtig weitergeholfen und ein erstes Problem ist schonmal gelöst. Danke!!
Nun wäre es natürlich perfekt, wenn ich statt ein grosses, personalisiertes Dokument direkt einzelne kleine, personalisierte Dokumente erzeugen könnte.
Du hast bereits auch schon einen Lösungsansatz angedeutet.
Leider bin ich zu wenig beflissen, als dass mir deine Infos bereits zum Erfolg verhelfen. Kannst du mich bitte nochmals weitergehend unterstützen?
Was meinst du z.B. mit Datenbankauswertung in einem externen Skript?
Den Nachteil vom Linkverlust kann ich in Kauf nehmen.
Vielen Dank und schöna Sunntig
lenherrg
Verfasst: So 22. Sep 2019, 13:55
von Gast
lenherrg hat geschrieben:Was meinst du z.B. mit Datenbankauswertung in einem externen Skript?
Je nach OS, beispielsweise ein bash-Script, PowerShell-Script, python, Lua (bietet sich mit TeXLua natürlich an) o. ä. Mit aktiviertem shell-escape kann man natürlich auch aus einem LaTeX-Dokument heraus, die einzelnen LaTeX-Dokumente erzeugen und für diese dann per
shellesc den
pdflatex-Lauf dafür durchführen. Für das Aufräumen (löschen der temporären Dateien) muss man dann aber doch wieder auf systemabhängige Funktionen oder eben doch auf eine Script-Engine zurückgreifen. Das kann natürlich auch beispielsweise
arara sein.
Merke: Je mehr Komfort du haben willst, desto mehr lohnt es sich, ein wenig mit Programmierung zu beschäftigen. Script-Sprachen wie Lua, Perl, Python sind dafür bestens geeignet. Echte TeX-Fragen sind das dann aber schnell nicht mehr. Programme wie
arara helfen ggf. den Schritt weiter hinaus zu schieben.
Verfasst: So 22. Sep 2019, 17:06
von lenherrg
Super - schon mal vielen Dank!
Bin gespannt, ob jemand noch eine andere Lösung bringt, deren Umsetzung für mich einfacher ist...
Verfasst: So 22. Sep 2019, 17:21
von Gast
Du kannst auch das große Dokument von oben nachträglich mit dem bereits erwähnten
pdftk oder einem anderen PDF-Tool in einzelne Dateien zerlegen. Das sollte ebenfalls nicht allzu schwer sein.
Ansonsten: Schau dir die genannten Pakete/Programme wie
shellesc und
arara an. Wenn es damit konkrete Probleme gibt, frag konkret nach. Nachdem dir bereits Schritte gezeigt und weitere erklärt wurden, solltest du jetzt auch etwas Eigeninitiative zeigen. Wir wissen bis jetzt ja noch nicht einmal, unter welchen Betriebssystemen die Lösung laufen muss.
Verfasst: So 22. Sep 2019, 21:27
von lenherrg
Ich arbeite mit Windows 10.
Danke für all deine Tipps. Ich habe mich bereits ein wenig in die Dokumentation von arara eingelesen.
Ich werde mich jetzt reinhängen und hoffentlich eine entsprechende Lösung finden.
Danke auch für deine Hilfsbereitschaft in Zusammenhang mit arara.