2009-07-28 4 views
6

Potrzebuję użyć przełączników wiersza poleceń, aby wykonać polecenie "Zapisz jako tekst". Idealnie chcę:Korzystanie z wiersza poleceń Przełącza, aby zapisać plik PDF jako tekst - czy można to zrobić?

  1. użyć przełącznika wiersza polecenia, aby otworzyć plik PDF
  2. użyć przełącznika wiersza polecenia do konwersji PDF do pliku tekstowego przez naśladowanie „Zapisz jako tekst” polecenia.
  3. użyj wiersza polecenia, aby zamknąć plik PDF.

Czy to możliwe? Jeśli tak, to czy ktoś wie, jak to zrobić?

+1

Fuj, zwróć szczególną uwagę na tagowanie w przyszłości. Skategoryzuj swoje pytanie. _Nie staraj się podsumować tego. Każdy tag powinien być samodzielny. –

+1

Nie wiesz, który system operacyjny jest uruchomiony, ale istnieje narzędzie o nazwie "pdftotext", które wydaje się robić to, co chcesz. Jest dostępny w systemie Linux, ale mogą istnieć porównywalne narzędzia do innych systemów operacyjnych. –

+0

Przykro mi, zapomniałem wspomnieć o systemie operacyjnym. To jest Windows. Słyszałem o tym narzędziu; niestety kupowanie rozwiązania nie jest opcją - dlatego pozostajemy z budowaniem jednego. Dzięki! –

Odpowiedz

2

Nie rozumiem, dlaczego nie chcesz używać wolnego oprogramowania (nie jest to oprogramowanie bezpłatne), dlatego idealnym rozwiązaniem jest pdftotext. Jeśli jednak chcesz po prostu otworzyć i zapisać plik PDF w sposób zautomatyzowany za pomocą interfejsu GUI systemu Windows, możesz użyć polecenia vbscript i sendkeys.

Wystarczy użyć pdftotext, ale byłoby to o wiele bardziej niezawodne i nie będzie kosztować całego pudełka.

+0

Dzięki - myślałem o zrobieniu metody "SENDKEYS", ale chciałem sprawdzić, czy jest coś szybkiego i brudnego. Tak, nasze środowisko nakłada ścisłe ograniczenia na akceptowalne oprogramowanie. Używanie Pythona (który jest zatwierdzony) może również być opcją. –

+0

znalazłeś już rozwiązanie? –

+2

+1 - należy zawsze korzystać z google "site: http: //stackoverflow.com" <>, aby zaoszczędzić około 5 minut reklam, ale sprytni goście tacy jak ty napisali już odpowiedź ... –

4

Nie należy używać CMD; użyj AutoIt. Bardzo łatwe do zrobienia i zajmuje kilka linii:

0

Myślę, że poniższy VBscript powinien załatwić sprawę. To zajmie wszystkie pliki .pdf w danym folderze i zapisze je jako pliki .txt. Jedną z nich jest to, że twój komputer nie jest zablokowany, ponieważ używa polecenia WyślijKeys. Jeśli ktoś ma rozwiązanie, które działa, gdy komputer jest zablokowany, proszę go wysłać na mój sposób!

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