Batch chuyển đổi tài liệu Word thành PDF


Câu trả lời:


24

Đây là cách tôi sẽ làm điều đó:

  1. Tải về nhà văn CutePDF
  2. Đặt người viết làm máy in mặc định của bạn (bạn có thể thay đổi lại sau)
  3. Đặt tất cả các tệp .doc của bạn vào cùng một thư mục
  4. Đánh dấu tất cả các tập tin, nhấp chuột phải, In

Nhược điểm duy nhất là bạn phải bấm Ok một lần cho mỗi tệp.


3
Đây là những gì tôi thực sự đã làm. Tôi đã phải làm điều đó một chút khác biệt mặc dù ... Tôi mở "Máy in" CutePDF từ bảng điều khiển, để nó hiển thị hàng đợi máy in ... Sau đó, tôi kéo và thả tài liệu vào cửa sổ đó - và sau đó tất cả đều đập mạnh vào ENTER để chấp nhận tên tệp từ đó ... Tất cả chúng đều được đặt tên MICROSOFT WORD - [tên tệp] .pdf, nhưng tôi có thể giải quyết dễ dàng.
Kjensen

Quy trình công việc tương tự có thể được sử dụng với PDFCreator ( en.pdfforge.org/pdfcreator ). Nếu bạn cài đặt nó dưới dạng dịch vụ hoặc ở chế độ tự động, nó sẽ tắt, ngoại trừ chọn> in.
matt wilkie

1
Nếu tôi tô sáng hơn 15 tệp trong Windows, tùy chọn 'In' sẽ biến mất khỏi menu ngữ cảnh nhấp chuột phải. Tôi vừa thử phương pháp kéo thả, nhưng 94 tệp có thể quá nhiều cho nó ...
Spainedman

41

Điều này có thể đang đẩy nó vào lãnh thổ stackoverflow.com, nhưng bạn có thể tập lệnh Word 2007 để mở và lưu tài liệu dưới dạng PDF. Điều này yêu cầu Office 2007 và bổ trợ "Lưu dưới dạng PDF" từ Microsoft.

Lưu tệp này vào một tệp SaveAsPDF.jsvà chạy nó từ dòng lệnh bằng cách sử dụng cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);

var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;

try
{
    WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");

    objWord = new ActiveXObject("Word.Application");
    objWord.Visible = false;

    var objDoc = objWord.Documents.Open(docPath);

    var wdFormatPdf = 17;
    objDoc.SaveAs(pdfPath, wdFormatPdf);
    objDoc.Close();

    WScript.Echo("Done.");
}
finally
{
    if (objWord != null)
    {
        objWord.Quit();
    }
}

5
Đoạn mã trên hoạt động xuất sắc nhưng nó chỉ lấy một tệp làm đối số. Tôi đã quá lười biếng để tìm cách lọc một thư mục trong JScript, vì vậy tôi đã tạo ra một cách trong Powershell bằng cách sử dụng bài đăng dưới đây như nguồn cảm hứng: stackoverflow.com/questions/181036/ tựa PS E: \ MyDocument> ls * .doc | % {cscript // nologo E: \ jssrc \ SaveAsPDF.js $ _}
Aniti

@bobbymcr Liên kết trong câu trả lời đã chết. Xem ở đây để SaveAsPDFtải về plugin hiện tại .
Peter Vandivier

9

tốt, cutepdf & pdf99 làm tốt công việc của họ, nhưng tôi thấy PDFcreator hấp dẫn hơn vì nó có chất lượng cao hơn hai bản kia, nó cũng có nhiều tùy chọn cấu hình hơn, cộng với đó là nguồn mở.


1
PDFCreator có thể được sử dụng như đã được trả lời bởi kjensen ở trên, tuy nhiên, tôi muốn chỉ ra rằng trong các tùy chọn PDFCreator, bạn có thể bật tự động lưu, nó cũng sẽ tự động lưu từng tài liệu trong thư mục bạn chọn với tên tệp bạn chọn. . Bằng cách đó, bạn không cần nhấn "enter" để xác minh rằng bạn muốn lưu từng tệp.

6

Sử dụng Google Docs làm Công cụ chuyển đổi hàng loạt PDF của Amit Agarwal

Nếu bạn có một gói lớn Tài liệu Word, Bảng tính Excel và Bản trình bày PowerPoint trên ổ cứng mà bạn muốn chuyển đổi thành PDF ngay lập tức mà không cần đầu tư vào phần mềm thương mại như Adobe Acrobat, hãy thử Google Docs.

Mặc dù luôn có thể chuyển đổi tài liệu Office thành PDF bằng Google Docs, tính năng xuất mới giúp bạn dễ dàng chuyển đổi các định dạng tệp Microsoft Office và OpenOffice thành PDF (hoặc HTML) theo ba bước dễ dàng. Chuyển đổi hàng loạt sang PDF bằng Google Docs

Sử dụng Google Docs làm công cụ chuyển đổi hàng loạt PDF

Bước # 1 - Tạo một mới "đầu vào" thư mục trong Google Documents nơi bạn sẽ tải lên tất cả các tài liệu và bài thuyết trình của bạn mà là để chuyển đổi sang PDF.

Bước # 2 - Bây giờ chọn tùy chọn Tải lên Tài liệu trong Google Documents, đặt thư mục đích thành thư mục bạn đã tạo ở Bước # 1 và tải lên * tất cả tài liệu của bạn.

Google Docs chính thức hỗ trợ các định dạng tệp sau mặc dù bạn cũng có thể tải lên hình ảnh:

* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).

[*] Bạn cũng có thể sử dụng tùy chọn email để tải tài liệu lên Google Docs nhưng điều đó sẽ đặt mọi thứ vào thư mục chính và do đó việc quản lý tài liệu có thể trở thành vấn đề, đặc biệt là khi bạn có quá nhiều tệp.

Bước # 3 - Khi tất cả các tệp được tải lên Google Docs, hãy mở lại bảng điều khiển và chọn thư mục "đầu vào" từ thanh bên phải. Chọn tất cả các tệp trong thư mục này và chọn "Xuất" trong "Tùy chọn khác".

Ở đây chọn "PDF" (hoặc HTML) làm định dạng đầu ra và tất cả Tài liệu Word, bản trình bày, bảng tính, v.v. của bạn sẽ được chuyển đổi ngay lập tức thành PDF.

Và nếu bạn đang chuyển đổi một lô lớn tài liệu thành PDF, bạn không phải đợi trong trình duyệt để quá trình chuyển đổi kết thúc vì Google Docs sẽ tự động gửi email cho bạn sau khi quá trình xử lý kết thúc. Email sẽ có một liên kết từ đó bạn có thể tải trực tiếp tất cả các tệp PDF trong một ZIP lớn.


1
Hãy chuẩn bị cho việc xáo trộn đáng kể bất kỳ tài liệu nào có chứa bảng, hình ảnh, phông chữ ít phổ biến hơn. Tôi đã không đi sâu vào nó hơn nữa, nhưng tôi đã thử một tài liệu từ với một tiêu đề được xây dựng với một bảng chứa văn bản và biểu đồ, và sử dụng phông chữ Calibri. Bản PDF không giống bản gốc.
rossmcm

Phương pháp này có nguồn gốc từ năm 2009 và không may dường như đã bị xóa (các tệp riêng lẻ có thể được xuất dưới dạng pdf, nhưng các thư mục không ...)
Joe

6

Câu trả lời của Bobbymcr khá thú vị và hoạt động tốt với Word 2010. Tuy nhiên, vẫn còn một sự cải tiến cần thực hiện. Dòng lệnh ban đầu của Bobbymcr trông như thế này:

cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc

Điều này không hoạt động nếu bạn đã liên kết các tệp .js với một số loại trình soạn thảo như Notepad ++. Trong trường hợp này, bạn cũng phải chỉ định công cụ sẽ sử dụng, nếu không cscript sẽ hiển thị cho bạn một thông báo lỗi. Điều này có thể dễ dàng đạt được bằng cách sử dụng //E:jscripttham số dòng lệnh:

cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc


6

Về tập lệnh SaveAsPDF.js mà người dùng trước đã đăng. Điều này làm việc để chuyển đổi một tập tin pdf, nhưng tôi không biết làm thế nào để chuyển đổi tất cả các tập tin trong một thư mục. Với một chút chơi tôi đã tạo ra một tập tin. CovertAll2PDF.bat với 2 dòng sau:

echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"

cũng có những /r "Parent Directory"cái có thể được chèn vào để /r "PD" %%X in -....đi qua tất cả các thư mục, trong trường hợp đó làm cho nó C: \ SaveAsPDF.js và lưu Saveaspdf.js trong thư mục đó.

Tôi chắc chắn rằng nó vụng về, nhưng nó làm việc cho tôi. hy vọng điều này sẽ giúp ai đó.


4

Tôi đã không thử nó nhưng có một phương pháp bó sử dụng OpenOffice.org mà bạn có thể kiểm tra. Hướng dẫn thực hiện việc này trên nền tảng GNU / Linux và Windows được mô tả tạihttp://www.tech-faq.com/convert-word-to-pdf.shtml (và cũng tạihttp://www.togkn.com/linux/survivor/Convert_MS_Word.html "và, tạihttp://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).

Nguyên tắc sử dụng OpenOffice.org để đọc trong tệp .doc và sau đó xuất dưới dạng PDF có vẻ hợp lý nếu bạn thấy OpenOffice.org giúp mở rộng các tệp .doc mà bạn có.


1
Sử dụng OpenOffice.org sẽ cung cấp cho bạn mục lục có thể nhấp và vv. Mọi giải pháp "In ra PDF" sẽ không. Xem superuser.com/questions/568/how-to-print-document-to-pdf/iêu
Arjan

+1 cho máy in ảo pdf. Đó là những điều tuyệt vời, tôi ước rằng chúng sẽ có sẵn theo mặc định trên mọi hệ điều hành.
Manu

4

Đoạn trích nhỏ này làm việc rất tốt cho tôi.

  • Miễn phí
  • Dễ dàng
  • Không giới hạn số lượng tệp

    $Word=New-Object -ComObject Word.Application
    
    $Files=Get-ChildItem ".\*.docx"
    
    ForEach ($File In $Files) {
        $Document=$Word.Documents.Open($File.FullName)
    
        $Name=($Document.FullName).Replace("docx", "pdf")
    
        $Document.SaveAs([ref] $Name, [ref] 17)
        $Document.Close()
    }
    
    $Word.Close()
    

Chỉ cần lưu nó vào tập lệnh PowerShell như Convert-Documents.ps1sau đó chạy nó từ dòng lệnh từ trong thư mục chứa tất cả các tài liệu nguồn của bạn.


Có một chỉnh sửa được thực hiện bởi @cxw cho câu trả lời của tôi, đã loại bỏ các phần quan trọng trong câu trả lời của tôi, cụ thể là, tập lệnh này freecó thể xử lý và unlimitedsố lượng tệp. Như vậy, tôi đã khôi phục lại bản chỉnh sửa, nhưng đã kết hợp sửa lỗi cú pháp được đề xuất trong chỉnh sửa.
Umar Farooq Khawaja

Nó hoạt động với tôi trong Windows 7 khi tôi thực hiện [ref]các lệnh và dòng cuối cùng ( $Word.Close()). Nếu không, lỗi xuất hiện.
yêu.by.Jesus 21/03/18

0

Chuyển đổi nhiều tài liệu từ DOC sang PDF trên Windows XP bằng JODConverter và Open Office

Điều kiện tiên quyết:


Bước 1 Tải xuống JODConverter (phiên bản mới nhất jodconverter-2.2.2.zip) từ

Giải nén tệp zip JODConverter trong thư mục bạn chọn (D1)


Bước 2 Khởi động OpenOffice trong chế độ dịch vụ (chi tiết tại đây )

Tạo một tệp bó start-service.bat với nội dung sau:

start-service.bat:

X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard

:: nếu không hoạt động, hãy thử xóa tham số cuối cùng này (Nhậnnofirststartwizard)

(giả sử X: \ Program Files \ OpenOffice.org 3 \ là thư mục nơi Open Office được cài đặt và soffice.exe có mặt).

Chạy start-service.bat (văn phòng mở hiện đã bắt đầu ở chế độ dịch vụ và đang chờ lệnh)


Bước 3

Thu thập tất cả các tài liệu sẽ được chuyển đổi thành pdf trong một thư mục (D2)

Tạo một tập tin convert.doc hàng loạt để khởi chạy JODConverter và đưa ra các hướng dẫn chuyển đổi:

convert.bat:

java -jar  "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf  *.doc

Trong đó D1 là thư mục JODConverter được tạo ở Bước 1

(Nếu JODConverter có số phiên bản khác, hãy cập nhật convert.bat tương ứng)

QUAN TRỌNG: tập tin convert.bat phải được đặt trong thư mục D2!


Bước 4:

Chạy convert.bat

Đối với mỗi tệp * .doc có trong D2 JODConverter sẽ yêu cầu Open Office để tạo một tệp mới có cùng tên và phần mở rộng pdf trong cùng thư mục.


0

Nếu tài liệu Word đơn giản và nếu bạn không cần định dạng của tài liệu Word để có trong tài liệu PDF, bạn có thể sử dụng một vòng lặp đơn giản xung quanh mã lõi của chương trình DOCXtoPDF của tôi để làm những gì bạn muốn. DOCXtoPDF sử dụng nội bộ xtopdf, bộ công cụ Python của tôi để tạo PDF từ nhiều định dạng khác. Bạn cũng cần cài đặt ReportLab 1.21.

Xem:

http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html

http://slid.es/vasudevram/xtopdf

https://bitbucket.org/vasudevram/xtopdf

http://www.reportlab.com/ftp


0

Nếu bạn muốn một phương pháp trực tuyến nhanh chóng và đơn giản cho 20 tệp hoặc ít hơn thì hãy sử dụng trang web này online2pdf , tại đây bạn có thể tải lên các tệp của mình, chọn một số tùy chọn và sau đó nhấp vào chuyển đổi, nó sẽ chuyển đổi tất cả các tài liệu và sau đó tự động tải xuống một tệp zip chứa các tập tin PDF.


0

Dựa trên câu trả lời của Umar , đây là tập lệnh PowerShell được sửa đổi sẽ:

  • Xử lý DOC cũng như DOCX
  • Hiển thị thanh tiến trình khi nó hoạt động

Như với Umar, để sử dụng điều này:

  • lưu tập lệnh bên dưới dưới dạng tệp, ví dụ: doc2pdf.ps1ở đâu đó trongPATH
  • thay đổi thư mục chứa tệp doc hoặc docx của bạn
  • chạy powershell doc2pdf.ps1
$Word=New-Object -ComObject Word.Application

$Files=@(Get-ChildItem ".\*.docx") + @(Get-ChildItem ".\*.doc")
    # Need @() to get an array in case there is only one file - see
    # https://blogs.technet.microsoft.com/heyscriptingguy/2013/07/18/powertip-find-number-elements-in-a-powershell-array/#comment-104863

for($file_idx = 0; $file_idx -lt $Files.Count; ++$file_idx) {

    # Show the current progress
    $File = $Files[$file_idx]
    Write-Progress -Activity "Convert DOC(X) to PDF" `
                    -CurrentOperation $File.Name `
                    -PercentComplete (($file_idx/$Files.Count)*100)

    # Make the PDF
    $Document=$Word.Documents.Open($File.FullName)
    $Name=($Document.FullName -replace "\.docx?", ".pdf")     # -replace is case-insensitive regex per https://ss64.com/ps/syntax-regex.html

    $Document.SaveAs([ref] $Name, [ref] 17)
    $Document.Close()
}

# Clean up
$Word.Quit()    # Doesn't close other Word instance that may be running.

# Remove any dangling references, per https://technet.microsoft.com/en-us/library/ff730962.aspx
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word)
Remove-Variable Word

# By cxw - https://superuser.com/users/269989/cxw - CC-BY-SA 3.0
# Modified from https://superuser.com/a/1187598/269989 by https://superuser.com/users/12797/umar-farooq-khawaja

Đã thử nghiệm với Word 2013 và PowerShell 4.0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.