Guten Morgen zusammen,
nach abermals unzähligen Versuchen, einen bestimmten Font in einem Textfeld nutzen zu können, bin ich vermutlich endlich auf die Lösung gestossen.
Folgende Abfolge von Schritten war/ist nötig, um das gewünschte Ergebnis zu erzielen.
- beliebiges PDF mit einem vorhandenen Textfield in einem PDF-Editor öffnen und im Textfield den Font auswählen, welcher euch zusagt
- PDF speichern und "pdffonts Datei.pdf" starten in einer Kommandozeile
- der gesuchte Font wird lediglich hier korrekt aufgelistet, auch wenn er noch nicht eingebunden oder setzt wurde [im Acrobat Reader wird er lediglich ersetzt und ist deswegen unter Ctrl-D / Schriften unauffindbar]
- In Latex im Textfield via Option (siehe Minimalbeispiel) den gerade herausgefundenen Fontsnamen einsetzen (ohne Leerzeichen)
\TextField
[
name = testTextfield,
format =
{
var f = this.getField('testTextfield');
f.textFont = 'Wonderbar2.0';
% ladet euch dazu testweise diesen Font von https://www.1001freefonts.com/d/27045/wonderbar-2.0.zip herunter
}
]{Labeltext}
Wenn der Font hier korrekt eingetragen wird, so wird er automatisch vollständig im PDF eingebunden und dies sogar ohne eine vorherige Verwendung von \usepackage{fontname}
[Anmerkung: natürlich muss der Font irgendwo bei euch installiert sein und es kann auch die wohl meist genutzte pdf-chain genutzt werden
]
Dies bedeutet im Umkehrschluss - die weitere Vorgehensweise dient lediglich zur vollständigen Implementierung der außerhalb dieses Textfeldes genutzten Fonts
"Feuer frei" ![Wink ;)](./images/smilies/icon_wink.gif)
- Erstellung einer .ps-Datei (z.B. via TeXStudio mittel txs:///ps-chain oder txs:///dvi-ps-pdf-chain [Optionen/TeXStudio konfigurieren/Erzeugen/Erstellen & Anzeigen] mittels F5 oder F6 im Editor)
allerdings führt in TeXStudio
ps2pdf -dEmbedAllFonts=true -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 %.ps
unter [Optionen/TeXStudio konfigurieren/Befehle/Ps2Pdf] eingetragen zum Abbruch, weil angeblich das zuvor sauber erzeugte PS-File nicht gefunden werden kann. Deswegen muss der nächste Schritt derzeit noch manuell ausgeführt werden.
- Batch-Datei mit folgendem Code starten
"Pfad1\gswin64c.exe" -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -dEmbedAllFonts=true -dSubsetFonts=false -sOutputFile="Pfad2\Datei.pdf" -f "Pfad3\Datei.ps"
wobei ihr bitte für Pfad1..3 die Pfade eintragt, wo die jeweiligen Dateien zu finden sind
- lediglich der Acrobat Reader hatte bisher den gewünschten und vollständig eingebetteten Font korrekt im Textfield dargestellt.
- freuen, dass es endlich möglich ist
Lasst mich gern wissen, ob ihr damit Erfolge erzielen konntet.
Und hier nun das Minimalbeispiel:
\documentclass{article}
\usepackage[pdfstartview=FitH]{hyperref}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage{tikz}
\usepackage{eforms}
% Ausrichtung des Textes im Textfield an die Basisline des außerhalb des Objektes befindlichen Textes
\def\LayoutTextField#1#2{% label, field
#1 \tikz[baseline={([yshift=2.25pt]baseline.base)}]{\node[] (baseline) {#2};}%
}
\begin{document}
\selectfont
\begin{Form}
\TextField
[
name = lintest,
value = Text in Linux Libertine G,
format =
{
var f = this.getField('lintest');
f.textFont = 'LinuxLibertineG';
},
]{Label in Libertine}
\end{Form}
\end{document}