Suchen und Ersetzen von Hyperlinks in einer PDF-Datei

Suchen und Ersetzen von Hyperlinks in einer PDF-Datei

Ich möchte den Prozess des Suchens und Ersetzens von hrefs (nicht des Ankertextes) in Hunderten von PDF-Dateien in einem Windows 8.1-Betriebssystem automatisieren.

Ich konvertiere gerne Dateiformate, solange diese wieder als funktionierendes PDF kompiliert werden können.

UPDATE: Ich konnte finden und ersetzennur die hrefmit PDFTK..

  1. pdftk foo.pdf Ausgabe foo.tmp dekomprimieren
  2. Suchen und Bearbeiten eines Links mit einem Texteditor
  3. pdftk foo.tmp Ausgabe foo-updated.pdf komprimieren

Jetzt brauche ich ein Befehlszeilentool, das Schritt 2 automatisieren kann, indem es foo.tmp-Werte durch eine Suchen- und Ersetzen-Liste ersetzt.

Antwort1

Ich gehe davon aus, dass wir über das Windows-Betriebssystem sprechen und mitChargeTag verweisen Sie auf die Stapelverarbeitung statt aufChargelang, jedenfalls werde ich sagen, dassChargeist eine eingeschränkte Sprache, die nur grundlegende, allgemeine systembasierte Aufgaben abdeckt. Sie ist nicht dafür gedacht, andere Textdateien als reine Textdateien wie PDF zu lesen, und das ist auch nicht möglich.

Zum Lesen eines bestimmten Formats wie PDF wird ein externer Parser/Interpreter benötigt.

Es gibt eine guteC#basierte Lösung, die zeigt, wie die Daten in einemPDFin einer für Menschen lesbaren Weise:

https://stackoverflow.com/questions/2550796/reading-pdf-content-with-itextsharp-dll-in-vb-net-or-c-sharp

Es benutztiTextSharpBibliothek, die Open Source ist:

http://sourceforge.net/projects/itextsharp/

Alternativ gibt es hier eineVBSbasierte Lösung aus dem Adobe-Benutzerhandbuch, es braucht dieCOMObjekte, die aus der Adobe-App installiert wurden.

http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/indesign/sdk/cs6/scripting/InDesign_ScriptingGuide_VB.pdf

Notieren Sie die Kapitel, die Sie für diese Aufgabe interessieren:

Bildbeschreibung hier eingeben

Um Ihnen in VBS ein wenig zu helfen, finden Sie hier eine VBS-Skriptfrage, die Ihnen helfen könnte:

Option Explicit
Dim accapp, acavdocu
Dim pdf_path, bReset, Wrd_count
pdf_path="C:\LS\Test\Invoices\02_2011_PDF\rpt_Invoice_1.pdf"
'AcroExch is acrobat application object
Set accapp=CreateObject("AcroExch.App")
accapp.Show()

'Need to create one AVDoc object par displayed document
Set acavdocu=CreateObject("AcroExch.AVDoc")

'Opening the PDF
If acavdocu.Open(pdf_path,"") Then
acavdocu.BringToFront()
bReset=1 : Wrd_count = 0
'Find Text Finds the specified text, scrolls so that it is visible, and highlights it
Do While acavdocu.FindText("Invoice#", 1, 1, bReset)
bReset=0 : Wrd_count=Wrd_count+1
'Wait 0, 200
Loop
End If

accapp.CloseAllDocs()
accapp.Exit()
msgbox "The word 'Invoice#' was found " & Wrd_count & "times"
Set accap=nothing : Set accapp=nothing

Ich möchte Sie jedoch darauf hinweisen, dass es anscheinend nicht wie erwartet funktioniert. Ich habe es von dieser Site übernommen:

http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_26834618.html

verwandte Informationen