2009-07-28 7 views
6

Tôi cần sử dụng các công tắc dòng lệnh để thực hiện lệnh 'Lưu dưới dạng Văn bản'. Lý tưởng nhất, tôi muốn:Sử dụng công tắc dòng lệnh để lưu tệp PDF dưới dạng văn bản - Có thể thực hiện được không?

  1. sử dụng một bộ chuyển mạch dòng lệnh để mở một PDF
  2. sử dụng một bộ chuyển mạch dòng lệnh để chuyển đổi PDF sang một file văn bản bằng cách bắt chước 'Save as Text' lệnh.
  3. sử dụng dòng lệnh để đóng tệp PDF.

Điều này có khả thi không? Nếu vậy, thì có ai biết làm thế nào để làm điều này?

+1

Rất tiếc, hãy chú ý hơn đến việc gắn thẻ của bạn trong tương lai. Phân loại câu hỏi của bạn. _Không cố gắng tóm tắt nó. Mỗi thẻ phải tự đứng trên đó. –

+1

Không chắc chắn bạn đang chạy hệ điều hành nào, nhưng có một công cụ gọi là "pdftotext" có vẻ như bạn muốn làm những gì bạn muốn. Nó có sẵn trong Linux, nhưng có thể có các công cụ tương đương cho các hệ điều hành khác. –

+0

Tôi xin lỗi, tôi đã bỏ qua đề cập đến hệ điều hành. Đây là Windows. Tôi đã nghe về công cụ này; tiếc là mua một giải pháp không phải là một lựa chọn - do đó chúng tôi còn lại với việc xây dựng một giải pháp. Cảm ơn! –

Trả lời

2

Tôi không hiểu tại sao bạn không muốn sử dụng phần mềm miễn phí (không phải phần mềm miễn phí), pdftotext là giải pháp lý tưởng. Tuy nhiên, nếu bạn chỉ muốn thực sự mở và lưu tệp PDF theo kiểu tự động bằng GUI của Windows, bạn có thể sử dụng lệnh vbscript và lệnh sendkeys.

Chỉ cần sử dụng pdftotext mặc dù, nó sẽ đáng tin cậy hơn nhiều và sẽ không chi phí cho bạn một hộp toàn bộ.

+0

Cảm ơn - Tôi đang nghĩ đến việc thực hiện phương pháp 'SENDKEYS' nhưng muốn xem liệu có điều gì đó nhanh chóng và bẩn thỉu không. Có, môi trường của chúng tôi đặt những hạn chế chặt chẽ đối với phần mềm được chấp nhận. Sử dụng Python (được phê duyệt) cũng có thể là một tùy chọn. –

+0

bạn có nhận được giải pháp chưa? –

+2

+1 - vì người dùng phải luôn sử dụng google "site: http: //stackoverflow.com" <> để tiết kiệm khoảng 5 phút quảng cáo crap ware, bởi vì những người thông minh như bạn đã đăng câu trả lời ... –

4

Không sử dụng CMD; sử dụng AutoIt. Rất dễ thực hiện và có một vài dòng

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

Tôi nghĩ VBScript dưới đây nên thực hiện thủ thuật. Nó sẽ lấy tất cả các tệp .pdf ở một vị trí thư mục nhất định và lưu chúng dưới dạng tệp .txt. Một chính phím tắt là nó chỉ hoạt động nếu máy của bạn không bị khóa vì nó sử dụng lệnh SendKeys. Nếu bất cứ ai có một giải pháp hoạt động trong khi máy tính bị khóa, hãy gửi nó theo cách của tôi!

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