Ich habeeine PDF-Datei, deren Text in evince korrekt angezeigt wird, jedoch nicht, wenn Text außerhalb der Datei gesucht oder kopiert und eingefügt wird. Beispielsweise wird „externer Transport“ außerhalb kopiert und eingefügt als
2D/28:93 /89:4758/9/.5:
Ich habe die PDF-Datei erstellt ausdie Originalversion der PDF-Dateidie richtig funktioniert, durch
gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=example.pdf original.pdf
Der Befehl ist meine allgemeine Methode zum Beheben verschiedener Probleme in einer PDF-Datei (insbesondere Schriftartprobleme in unter Windows erstellten PDF-Dateien).
- Warum verursacht der Befehl das Problem? Wie ändere ich den Befehl, um PDF-Probleme generell zu beheben?
- Wie repariere ich die aktuelle Version der PDF-Datei, damit der richtige Text gesucht und außerhalb kopiert und eingefügt werden kann? Die Datei, die ich eigentlich reparieren möchte, wurde auf die gleiche Weise und mit zusätzlichen Änderungen erstellt. Ich möchte sie reparieren, damit ich die Änderungen beibehalten kann.
Danke.
Antwort1
Ich habe einiges gelesen und einige hilfreiche Beiträge auf Stack Overflow (1,2,3) scheinen darauf hinzudeuten, dass das Problem an den in Ihrer PDF-Datei eingebetteten Schriftarten liegt. Ihre Originaldatei verwendet diese Schriftarten:
$ pdffonts original.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KPSHBO+Wingdings TrueType Custom yes yes no 5 0
KNQZHK+Arial TrueType Custom yes yes no 9 0
YLWHHJ+TimesNewRoman TrueType Custom yes yes no 13 0
HWNDJR+ArialBlack TrueType Custom yes yes no 17 0
QQRMEC+TimesNewRoman,Bold TrueType Custom yes yes no 21 0
Ich vermute (weiß es aber nicht genau), dass das Problem höchstwahrscheinlich durch die Schriftart Wingdings verursacht wird. Vermutlich haben Sie sie nicht auf Ihrem System. Zumindest ist dies von den aufgelisteten Schriftarten die einzige, die ich auf meinem nicht finden kann:
$ fc-list | grep -f <(pdffonts original.pdf | grep -oP '\+\K[A-Z][a-z]+') | awk '{print $1}'
/usr/share/fonts/TTF/times.ttf:
/usr/share/fonts/TTF/arialbd.ttf:
/usr/share/fonts/TTF/ariblk.ttf:
/usr/share/fonts/TTF/arialbi.ttf:
/usr/share/fonts/TTF/ariali.ttf:
/usr/share/fonts/TTF/timesi.ttf:
/usr/share/fonts/TTF/timesbd.ttf:
/usr/share/fonts/TTF/timesbi.ttf:
/usr/share/fonts/TTF/arial.ttf:
Leider habe ich versucht, eine Wingdings-Schriftart herunterzuladen vonHier, dann lief:
unzip wingdings.zip
sudo cp Wingdings\ Regular.ttf /usr/share/fonts/TTF/Wingdings.ttf
fc-cache
Dadurch sollte die Schriftart installiert sein, aber der gs
Befehl funktionierte trotzdem nicht. Vielleicht kann gs
's pdfwrite
mit dieser Schriftart überhaupt nicht umgehen. Ich weiß also nicht, ob es eine Möglichkeit gibt, gs
Ihre Datei richtig zu konvertieren. Vielleicht ist die Verwendung des Originals, bei dem dieses Problem nicht auftritt, Ihre einzige Wahl.