Das Ziel dieser Frage ist, den/PageLabels-Code (source) in einer PDF-Datei für eine andere zu ersetzen. Wir müssen dies tun, weil es einen Fehler im Programm gibt, das die PDF-Datei druckt (wir können das Programm nicht ändern). Von Hand braucht viel Zeit (wir haben 50 pdf-Dateien pro Stunde erstellt).komplexe Zeichenfolge Substitution
Um jedoch pragmatisch zu sein, kann das Beispiel wie folgt zusammengefasst werden.
Alte/PageLabels Code: Befindet sich in einer ursprünglichen Datei namens a.pdf.
Wir verwenden die grep-Funktion den falschen /PageLabels Code zu erhalten:
grep -aPo '/PageLabels\K[^"]*>>]>>' a.pdf
<</Nums[0<</S/r/St 1>>6<</S/r/St 7>>10<</S/r/St 11>>12<</S/r/St 13>>14<</P(1-)/S/D/St 1>>20<</P(2-)/S/D/St 1>>28<</P(3-)/S/D/St 1>>80<</P(4-)/S/D/St 1>>116<</P(A-)/S/D/St 1>>132<</P(B-)/S/D/St 1>>134<</P(C-)/S/D/St 1>>138<</P(D-)/S/D/St 1>>148<</P(E-)/S/D/St 1>>168<</P(F-)/S/D/St 1>>176<</P(G-)/S/D/St 1>>182<</P(Glossary-)/S/D/St 1>>194<</P(Comments-)/S/D/St 1>>]>>
Neu/PageLabels Code Wir wollen ersetzen den "Alt-/PageLabels Code" mit dem folgenden. Dies ist das Ergebnis eines anderen Skripts, das die PDF-Datei neu bewertet und den korrekten /PageLabel-Code der PDF-Datei erhält (manuell getestet und verifiziert).
<</Nums[0<</S/r/St 1>>12<</P(1-)/S/D/St 1>>17<</P(2-)/S/D/St 1>>32<</P(3-)/S/D/St 1>>98<</P(4-)/S/D/St 1>>130<</P(A-)/S/D/St 1>>153<</P(B-)/S/D/St 1>>154<</P(C-)/S/D/St 1>>158<</P(D-)/S/D/St 1>>187<</P(E-)/S/D/St 1>>230<</P(F-)/S/D/St 1>>242<</P(G-)/S/D/St 1>>247<</P(Glossary-)/S/D/St 1>>259<</P(Comments-)/S/D/St 1>>]>>
Es wird in einer anderen b.pdf
genannt Datei gespeichert wird, wissen wir nicht, wie es zu schreiben, mit den Funktion sed.
Alle Ideen würden sehr geschätzt werden.
Können Sie hier die Regeln für die Zuordnung vereinfachen? Fügen Sie auch einige Details hinzu. –
Vielen Dank für das Feedback! gerade gestrichen! –
Was ist "Kette" hier? Was ** speziell ** in diesem Durcheinander von PDF-Müll versuchen Sie zu finden und zu ersetzen? –