ฉันจะแปลงเอกสาร Word เป็นจำนวนมากและบันทึกเป็น [originalfilename] .pdf ได้อย่างไร
ฉันจะแปลงเอกสาร Word เป็นจำนวนมากและบันทึกเป็น [originalfilename] .pdf ได้อย่างไร
คำตอบ:
นี่คือวิธีที่ฉันจะทำ:
ข้อเสียเพียงอย่างเดียวคือคุณต้องคลิกตกลงหนึ่งครั้งสำหรับแต่ละไฟล์
นี่อาจเป็นการส่งไปยัง stackoverflow.com แต่คุณสามารถสคริปต์ Word 2007 เพื่อเปิดและบันทึกเอกสารเป็น PDF ต้องใช้ Office 2007 และปลั๊กอิน "บันทึกเป็น PDF"จาก Microsoft
บันทึกสิ่งนี้เป็นไฟล์SaveAsPDF.js
และเรียกใช้จากบรรทัดคำสั่งโดยใช้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();
}
}
SaveAsPDF
ดาวน์โหลดปลั๊กอินปัจจุบัน
ดี cutepdf & pdf99 ทำงานได้ดี แต่ฉันคิดว่าPDFcreatorน่าสนใจมากกว่าเพราะมัน 'พิมพ์ที่มีคุณภาพสูงกว่าอีกสองอัน แต่ก็มีตัวเลือกการกำหนดค่าที่มากกว่ารวมถึงโอเพ่นซอร์ส
ใช้ Google เอกสารเป็น Batch PDF Converter โดย Amit Agarwal
หากคุณมี Word Documents, Excel Spreadsheets และ PowerPoint Presentation จำนวนมากบนฮาร์ดไดรฟ์ที่คุณต้องการแปลงเป็น PDF ในครั้งเดียวโดยไม่ต้องลงทุนซอฟต์แวร์เชิงพาณิชย์เช่น Adobe Acrobat ลองใช้ Google เอกสาร
ในขณะที่สามารถแปลงเอกสาร Office เป็น PDF โดยใช้ Google เอกสารได้ตลอดเวลาคุณลักษณะการส่งออกใหม่ช่วยให้คุณสามารถแปลงชุดรูปแบบไฟล์ Microsoft Office และ OpenOffice เป็น PDF (หรือ HTML) ได้ง่ายขึ้นในสามขั้นตอน การแปลงชุดเป็น PDF ด้วย Google เอกสาร
ใช้ Google เอกสารเป็น Batch PDF Converter
ขั้นตอนที่ # 1 - สร้างโฟลเดอร์ "อินพุต" ใหม่ใน Google เอกสารซึ่งคุณจะอัปโหลดเอกสารและงานนำเสนอทั้งหมดที่จะแปลงเป็น PDF
ขั้นตอนที่ # 2 - เลือกตัวเลือกอัปโหลดเอกสารใน Google เอกสารตั้งค่าโฟลเดอร์ปลายทางเป็นโฟลเดอร์ที่คุณสร้างในขั้นตอนที่ # 1 และอัปโหลด * เอกสารทั้งหมดของคุณ
Google เอกสารสนับสนุนรูปแบบไฟล์ต่อไปนี้อย่างเป็นทางการแม้ว่าคุณจะสามารถอัปโหลดภาพได้:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] คุณอาจใช้ตัวเลือกอีเมลเพื่ออัปโหลดเอกสารไปยัง Google เอกสาร แต่นั่นจะทำให้ทุกอย่างในโฟลเดอร์หลักและการจัดการเอกสารอาจกลายเป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อคุณมีไฟล์มากเกินไป
ขั้นตอนที่ # 3 - เมื่ออัปโหลดไฟล์ทั้งหมดไปยัง Google เอกสารแล้วให้เปิดแดชบอร์ดอีกครั้งและเลือกโฟลเดอร์ "อินพุต" จากแถบด้านข้างขวา เลือกไฟล์ทั้งหมดในโฟลเดอร์นี้และเลือก "ส่งออก" ภายใต้ "ตัวเลือกเพิ่มเติม"
นี่คือเลือก "PDF" (หรือ HTML) เป็นรูปแบบผลลัพธ์และเอกสาร Word งานนำเสนอสเปรดชีตและอื่น ๆ ทั้งหมดของคุณจะถูกแปลงเป็น PDF ทันที
และหากคุณแปลงเอกสารจำนวนมากเป็น PDF คุณไม่ต้องรอในเบราว์เซอร์เพื่อให้การแปลงเสร็จสิ้นเนื่องจาก Google เอกสารจะส่งอีเมลถึงคุณโดยอัตโนมัติเมื่อการประมวลผลสิ้นสุดลง อีเมลจะมีลิงก์จากที่ซึ่งคุณสามารถดาวน์โหลดไฟล์ PDF ทั้งหมดได้โดยตรงใน ZIP ขนาดใหญ่
คำตอบของ Bobbymcr นั้นค่อนข้างน่าสนใจและใช้ได้ดีกับ Word 2010 ถึงกระนั้นก็ยังมีการปรับปรุงให้ดีขึ้น บรรทัดคำสั่งดั้งเดิมของ Bobbymcr มีลักษณะเช่นนี้:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
สิ่งนี้ใช้ไม่ได้หากคุณเชื่อมโยงไฟล์. js กับโปรแกรมแก้ไขอย่าง Notepad ++ ในกรณีนี้คุณต้องระบุเอ็นจิ้นที่จะใช้มิฉะนั้น cscript จะแสดงข้อความผิดพลาด สามารถทำได้โดยใช้//E:jscript
พารามิเตอร์บรรทัดคำสั่ง:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
เกี่ยวกับสคริปต์ SaveAsPDF.js ที่ผู้ใช้ก่อนหน้าโพสต์ สิ่งนี้ใช้ได้สำหรับการแปลงไฟล์ PDF หนึ่งไฟล์ แต่ฉันไม่ทราบวิธีการแปลงไฟล์ทั้งหมดในไดเรกทอรี ด้วยการเล่นเพียงเล็กน้อยฉันสร้างไฟล์ CovertAll2PDF.bat มี 2 บรรทัดต่อไปนี้:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
นอกจากนี้ยังมีสิ่ง/r "Parent Directory"
ที่สามารถแทรกได้/r "PD" %%X in -....
ซึ่งจะผ่านไดเรกทอรีทั้งหมดในกรณีนั้นทำให้ C: \ SaveAsPDF.js และบันทึก Saveaspdf.js ในไดเรกทอรีนั้น
ฉันแน่ใจว่ามันเงอะงะ แต่มันใช้ได้กับฉัน หวังว่านี่จะช่วยใครซักคน
ฉันไม่ได้ลอง แต่มีวิธีการแบตช์โดยใช้ OpenOffice.org ที่คุณสามารถทดสอบได้ คำแนะนำในการทำเช่นนี้บน GNU / Linux และแพลตฟอร์ม Windows ที่อธิบายไว้ที่http://www.tech-faq.com/convert-word-to-pdf.shtml (และที่http://www.togaware.com/linux/survivor/Convert_MS_Word.html "และที่http://www.oooforum.org/forum/viewtopic.phtml?t=3772 )
หลักการของการใช้ OpenOffice.org เพื่ออ่านในไฟล์. doc แล้วส่งออกเป็นไฟล์ PDF ดูเหมือนจะฟังดูดีถ้าคุณพบว่า OpenOffice.org ทำให้การเปิดไฟล์. doc ของคุณนั้นไม่เหมาะสม
ตัวอย่างเล็ก ๆ นี้ทำงานได้ดีมากสำหรับฉัน
ไม่ จำกัด จำนวนไฟล์
$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()
เพียงบันทึกลงในสคริปต์ PowerShell เช่นConvert-Documents.ps1
นั้นจากนั้นเรียกใช้จากบรรทัดคำสั่งจากภายในโฟลเดอร์ที่เอกสารต้นฉบับทั้งหมดของคุณอยู่
free
และสามารถประมวลผลและunlimited
จำนวนไฟล์ ด้วยเหตุนี้ฉันย้อนกลับการแก้ไข แต่ได้รวมการแก้ไขไวยากรณ์ที่แนะนำในการแก้ไข
[ref]
คำสั่งและบรรทัดสุดท้าย ( $Word.Close()
) ออกไป มิฉะนั้นจะปรากฏข้อผิดพลาด
การแปลงเอกสารหลายฉบับจาก DOC เป็น PDF บน Windows XP โดยใช้JODConverterและ Open Office
วิชาบังคับก่อน:
ขั้นตอนที่ 1 ดาวน์โหลด JODConverter (เวอร์ชั่นล่าสุด jodconverter-2.2.2.zip) จาก
คลายซิปไฟล์ JODConverter ในไดเรกทอรีที่คุณเลือก (D1)
ขั้นตอนที่ 2 เริ่ม OpenOffice ในโหมดบริการ (รายละเอียดเพิ่มเติมที่นี่ )
สร้างไฟล์แบตช์ start-service.bat ด้วยเนื้อหาต่อไปนี้:
เริ่มต้น service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
:: หากไม่ได้ผลให้ลองลบพารามิเตอร์สุดท้ายนี้ (–nofirststartwizard)
(สมมติว่า X: \ Program Files \ OpenOffice.org 3 \ เป็นไดเรกทอรีที่ติดตั้ง Open Office และมี soffice.exe อยู่)
เรียกใช้ start-service.bat (เปิดสำนักงานตอนนี้เริ่มในโหมดบริการและรอคำสั่ง)
ขั้นตอนที่ 3
รวบรวมเอกสารทั้งหมดที่จะแปลงเป็น pdf ในไดเรกทอรี (D2)
สร้างแบตช์ไฟล์ convert.doc ซึ่งเรียกใช้ JODConverter ด้วยและออกคำแนะนำการแปลง:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
โดยที่ D1 เป็นไดเร็กทอรี JODConverter ที่สร้างในขั้นตอนที่ 1
(หาก JODConverter มีหมายเลขเวอร์ชันอื่นให้อัพเดต convert.bat ตามลำดับ)
สำคัญ: ไฟล์ convert.bat ต้องอยู่ในไดเรกทอรี D2!
ขั้นตอนที่ 4:
เรียกใช้ convert.bat
สำหรับไฟล์ * .doc แต่ละไฟล์ที่มีอยู่ใน D2 JODConverter จะต้องใช้ Open Office เพื่อสร้างไฟล์ใหม่ที่มีชื่อและนามสกุลไฟล์ pdf เดียวกันในไดเรกทอรีเดียวกัน
หากเอกสาร Word นั้นง่ายและหากคุณไม่ต้องการการจัดรูปแบบเอกสาร Word ในเอกสาร PDF คุณสามารถใช้การวนรอบแบบง่าย ๆ รอบรหัสหลักของโปรแกรม DOCXtoPDF ของฉันเพื่อทำสิ่งที่คุณต้องการ DOCXtoPDF ภายในใช้ xtopdf, ชุดเครื่องมือ Python ของฉันสำหรับการสร้าง PDF จากรูปแบบอื่น ๆ คุณต้องติดตั้ง ReportLab 1.21 ด้วย
ดู:
http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html
http://slid.es/vasudevram/xtopdf
หากคุณต้องการวิธีการออนไลน์ที่ง่ายและรวดเร็วสำหรับไฟล์ 20 ไฟล์หรือน้อยกว่านั้นใช้เว็บไซต์online2pdfที่นี่คุณสามารถอัปโหลดไฟล์เลือกตัวเลือกและคลิกแปลงมันจะแปลงเอกสารทั้งหมดแล้วดาวน์โหลดไฟล์ซิปเดียวที่มี ไฟล์ PDF
นอกเหนือจากคำตอบของ Umarแล้วนี่คือสคริปต์ PowerShell ที่ได้รับการแก้ไขซึ่งจะ:
เช่นเดียวกับอูมาเพื่อใช้สิ่งนี้:
doc2pdf.ps1
ใดที่หนึ่งในของคุณPATH
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
ทดสอบกับ Word 2013 และ PowerShell 4.0