尋找並取代 PDF 中的超鏈接

尋找並取代 PDF 中的超鏈接

我想在 Windows 8.1 作業系統中自動執行在 100 個 PDF 檔案中尋找和取代 href(不是錨文本)的過程。

我很樂意轉換文件格式,只要它們可以重新編譯為可用的 PDF。

更新:我已經能夠找到並替換只有href使用PDFTK..

  1. pdftk foo.pdf 輸出 foo.tmp 解壓縮
  2. 使用文字編輯器尋找並編輯鏈接
  3. pdftk foo.tmp 輸出 foo-updated.pdf 壓縮

現在我需要一個 cmdline 工具,它可以透過取代尋找和取代清單中的 foo.tmp 值來自動執行步驟 2。

答案1

我假設我們正在談論 Windows 作業系統批次標記您將參考批次而不是批次lang,無論如何我會建議批次是一種有限的語言,僅涵蓋基於基本常見系統的任務,它並不是為了讀取 PDF 等非純文字文件,它不能。

要讀取 PDF 等特定格式,需要外部解析器/解釋器。

有一個好的C#基於解決方案,演示如何讀取包含在PDF以人類可讀的方式:

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

它用iTextSharp庫,它是開源的:

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

或者,這裡有一個虛擬BS基於 Adob​​e 使用者指南的解決方案,它需要通訊從 Adob​​e 應用程式安裝的物件。

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

請注意您對此任務感興趣的章節:

在此輸入影像描述

為了在 VBS 方面為您提供一些幫助,這裡有一個 VBS 腳本問題可以幫助您:

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

但我會建議顯然它似乎沒有按預期工作,我從這個網站上獲取它:

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

相關內容