2009-07-28 15 views
6

Devo usare le opzioni della riga di comando per eseguire il comando "Salva come testo". Idealmente, voglio:Utilizzo delle opzioni della riga di comando per salvare un PDF come testo: è possibile farlo?

  1. uso di una riga di comando per aprire un file PDF
  2. utilizzare una riga di comando per convertire il PDF in un file di testo imitando il 'Salva come testo' comando.
  3. utilizzare una riga di comando per chiudere il PDF.

È possibile? Se è così, allora qualcuno sa come farlo?

+1

Ugh, si prega di prestare maggiore attenzione al tagging in futuro. Classifica la tua domanda. _ Non cercare di riassumerlo. Ogni tag dovrebbe stare su proprio. –

+1

Non sai quale sistema operativo stai usando, ma c'è uno strumento chiamato "pdftotext" che sembra fare ciò che vuoi. È disponibile in Linux, ma ci possono essere strumenti simili per altri sistemi operativi. –

+0

Mi dispiace, ho dimenticato di menzionare il sistema operativo. Questo è Windows. Ho sentito parlare di questo strumento; sfortunatamente acquistare una soluzione non è un'opzione - quindi ci rimane la costruzione di una soluzione. Grazie! –

risposta

2

Non capisco perché non vogliate usare software libero (non freeware), pdftotext è la soluzione ideale. Tuttavia, se si desidera effettivamente aprire e salvare il PDF in modo automatico utilizzando la GUI di Windows, è possibile utilizzare il comando vbscript e sendkeys.

Basta usare pdftotext però, sarebbe molto più affidabile e non ti costerà un'intera scatola.

+0

Grazie - Stavo pensando di fare il metodo 'SENDKEYS' ma volevo vedere se c'era qualcosa di veloce e sporco. Sì, il nostro ambiente pone severe restrizioni su un software accettabile. Anche l'utilizzo di Python (che è approvato) può essere un'opzione. –

+0

hai ancora una soluzione? –

+2

+1 - per uno si dovrebbe sempre usare il "sito" di google: http: //stackoverflow.com "<> per salvare circa 5 minuti di pubblicità di articoli di merda, perché ragazzi intelligenti come te hanno già postato la risposta ... –

4

Non utilizzare CMD; usa AutoIt. Molto facile da fare e prende poche righe

Run("file.pdf") 
winwait("Adobe") 
send(?);; whatever commands necessary to save as text 
send("{enter}") 
send("!{F4}") 
0

Penso che il VBscript seguente dovrebbe fare il trucco. Verranno caricati tutti i file .pdf in una determinata cartella e salvati come file .txt. Uno principale grave è che funziona solo se la macchina non è bloccata poiché utilizza il comando SendKeys. Se qualcuno ha una soluzione che funziona mentre un computer è bloccato, per favore inviala a modo mio!

Set objFSO = CreateObject("Scripting.FileSystemObject") 
objStartFolder = "PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" 
Set objFolder = objFSO.GetFolder(objStartFolder) 

Set colFiles = objFolder.Files 
For Each objFile in colFiles 
    extension = Mid(objFile.Name,len(objFile.Name)-3,4) 
    file = Mid(objFile.Name,1,len(objFile.Name)-4) 
    fullname = """PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" + objFile.Name + """" 
    fullname_txt = "PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" + file + ".txt" 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 

    if extension = ".pdf" and not objFSO.FileExists(file+".txt") then 
     set WshShell = WScript.CreateObject("WScript.Shell") 
      WshShell.Run fullname 
      WScript.Sleep 1000 
      WshShell.SendKeys "%" 
       WScript.Sleep 100 
       WshShell.SendKeys "f" 
       WScript.Sleep 100 
       WshShell.SendKeys "h" 
       WScript.Sleep 100 
       WshShell.SendKeys "x" 
       WScript.Sleep 300 
       WshShell.SendKeys "{ENTER}" 

      count = 0 
    'this little step prevents the loop from moving on to the next .pdf before the conversion to .txt is complete 
      Do While i=0 and count < 100 
      On Error Resume Next 
      Set fso = CreateObject("Scripting.FileSystemObject") 
      Set MyFile = fso.OpenTextFile(fullname_txt,8) 
      If Err.Number = 0 Then 
       i = 1  
      End If 
      count = count + 1 
      Wscript.Sleep 20000 
     Loop  
    end if 
Next 
Problemi correlati