Поиск и замена гиперссылок в PDF

Я хочу автоматизировать процесс поиска и замены hrefs (не якорный текст) в 100-х PDF-файлов в ОС Windows 8.1.

Я счастлив конвертировать форматы файлов до тех пор, пока они могут быть повторно скомпилированы в качестве рабочего PDF.

обновление: я смог найти и заменить только href С помощью PDFTK..

  1. pdftk foo.pdf вывод foo.tmp распакуйте
  2. найдите и отредактируйте ссылку в текстовом редакторе
  3. pdftk foo.tmp выход foo-обновлен.формат PDF компресса

теперь мне нужен инструмент cmdline, который может автоматизировать Шаг 2, заменив foo.значения tmp из списка поиска и замены.

12
задан darmi
22.02.2023 17:02 Количество просмотров материала 2369
Распечатать страницу

1 ответ

Я предполагаю, что мы говорим о Windows O. S. и с Batch тег вы будете предлагать для пакетной обработки вместо Batch Лэнг, в любом случае, я советую это Batch это ограниченный язык, который охватывает только основные общие задачи на основе системы, он не предназначен для чтения нешифрованного текстового файла, такого как 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/

кроме того, вот VBS на основе решения из руководства пользователя Adobe, она нуждается в COM объекты, установленные из приложения Adobe.

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

обратите внимание на Главы, где вы заинтересованы для этой задачи:

enter image description here

чтобы помочь вам немного в VBS, вот вопрос сценария VBS, который может поможет вам:

Option Explicit
Dim accapp, acavdocu
Dim pdf_path, bReset, Wrd_count
pdf_path="C:\LS\Test\Invoices_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

1
отвечен ElektroStudios 2023-02-24 00:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх