Adobe Acrobat: วิธีการ batch เพื่อรวมไฟล์ pdf หลาย ๆ ไฟล์?


10

ฉันมี 3 โฟลเดอร์:

Folder 1 
Folder 2
Folder 3

ในแต่ละโฟลเดอร์ฉันมีไฟล์ pdf 5 ไฟล์:

    Folder 1 
       file1.pdf
       file2.pdf
    Folder 2
       file1.pdf
       file2.pdf
    Folder 3
       file1.pdf
       file2.pdf

ฉันต้องการให้ในแต่ละโฟลเดอร์มีไฟล์รวมกันของสองไฟล์:

    Folder 1 
       binder.pdf
    Folder 2
       binder.pdf
    Folder 3
       binder.pdf

ความคิดใด ๆ อย่าบอกให้ทำด้วยตนเอง กรณีนี้เป็นเพียงการอธิบายปัญหาของฉันให้คุณ คิดว่าฉันมีหลายร้อยโฟลเดอร์ :) ฉันสามารถใช้เครื่องมืออื่นแทน Adobe Acrobat ได้ไหม!


คุณหมายถึงอะไรโดย"มีไฟล์รวมกันของทั้งสองไฟล์" ? จะต่อกันและรวมสองไฟล์นี้เป็น 1 PDF ให้คุณได้ไหม
Kurt Pfeifle

Adobe Acrobat หรือ Adobe Acrobat Reader ได้ ?
wmz

@AndreiAndre โซลูชั่นที่ดีมากมายถูกโพสต์ในคำถามของคุณ บางทีคุณสามารถเลือกหนึ่งที่เหมาะกับความต้องการของคุณทั้งหมดและทำเครื่องหมายว่าเป็นที่ยอมรับ
nixda

คำตอบ:


12

คุณสามารถทำได้ด้วยไฟล์แบทช์สั้นและ pdftk.exe (ไม่ใช่pdftk Builderซึ่งเป็นเวอร์ชั่น GUI)
ไม่จำเป็นต้องติดตั้งอะไร

การจัดเตรียม

  • ดาวน์โหลดและแยกpdftkด้วยUniExtract
  • เปิด .. \ pdftk \ bin * และคัดลอกpdftk.exeและlibiconv2.dllไปยังโฟลเดอร์ที่คุณเลือก
  • สร้างไฟล์ข้อความใหม่และวางรหัสต่อไปนี้

    @ ปิดเสียง
    เปิดใช้งาน setloc ล่าช้าขยาย
    FOR %% A ใน (% *) ทำ (คำสั่ง set =!! %% A)
    pdftk.exe% คำสั่ง% cat เอาต์พุต "% ~ dp1binder.pdf"
    
  • บันทึกเป็นmerge@pdf.cmdในโฟลเดอร์เดียวกันกับ pdftk.exe และ libiconv2.dll ป้อนคำอธิบายรูปภาพที่นี่
  • สร้างทางลัดของ. cmd นี้และวางไว้ในโฟลเดอร์ sendto ของคุณ ( Win+ R» shell: sendto)

การใช้

  • ไปที่โฟลเดอร์ที่มีไฟล์ PDF และเลือกไฟล์ PDF ได้มากเท่าที่คุณต้องการ
  • คลิกขวาที่ปุ่มเหล่านั้นและเลือกทางลัดที่คุณเพิ่งสร้างขึ้น
  • binder PDF ใหม่ในโฟลเดอร์เดียวกันจะถูกสร้างขึ้นซึ่งไฟล์ PDF ทั้งหมดที่เลือกจะถูกรวมเข้าเป็นหนึ่งเดียว

    ป้อนคำอธิบายรูปภาพที่นี่

อัปเดต:เวอร์ชันที่ใช้ชื่อโฟลเดอร์ปัจจุบันเป็นชื่อไฟล์สำหรับ pdf ที่สร้างขึ้น

@echo off
setlocal enabledelayedexpansion
:: Concat all paths fromselected files and save it as command
FOR %%A IN (%*) DO (set command=!command! %%A)

:: Take path from first selected file and save it as path
set path=%~dp1
echo %path%

:: Check if a trailing slash is present. If yes, remove it
IF %path:~-1%==\ SET path=%path:~0,-1%

:: Get last folder from path
FOR %%F in ("%path%") do (set lastFolder=%%~nxF)

:: Call pdftk, pass on command. use lastFolder as filename
pdftk.exe %command% cat output "%path%\%lastFolder%.pdf"

คำตอบที่ดีมาก ฉันพยายามแก้ไขมันดังนั้นจึงบันทึกเป็น FOLDERNAME แทนที่จะเป็น binder.pdf ฉันจะทำสิ่งนั้นได้อย่างไร
สถิติเฉินหยู

@ChenStatsYu ดูอัปเดต
nixda

GREAT !! ขออภัยที่จะถามอีกครั้งไม่แน่ใจว่าฉันควรจะเริ่มโพสต์ใหม่ ขอเพียงครั้งสุดท้ายเมื่อฉันทำเช่นนี้ซ้ำสำหรับโฟลเดอร์เกือบ 40/50 เราสามารถแก้ไขมันเพื่อส่ง "โฟลเดอร์" ไปยัง cmd และใช้ชื่อเล่นแทนการเลือกไฟล์ PDF บางส่วนจากโฟลเดอร์ได้หรือไม่
Chen Stats Yu

นอกจากนี้ฉันหวังว่าจะได้รับการสนับสนุนชื่อเล่นที่ไม่ใช่ภาษาอังกฤษ
Chen Stats Yu

5

หากคุณใช้ Linux (หรือ Mac หรือสภาพแวดล้อมใด ๆ ที่ติดตั้ง) คุณสามารถใช้เครื่องมือบรรทัดคำสั่งชื่อghostscriptเพื่อรวมเข้าด้วยกัน

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH file1.pdf file2.pdf file3.pdf

คุณยังสามารถใช้สิ่งต่อไปนี้เพื่อรวมไฟล์ทั้งหมดในโฟลเดอร์ปัจจุบัน

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH *.pdf 

คุณสามารถดาวน์โหลด Ghostscript ที่นี่ มีรุ่น Windows เช่นกัน แต่ฉันไม่ได้ทดสอบ


1
มันทำงานบน windows ได้เช่นกัน ฉันต้องเขียนเส้นทางแบบเต็มไปยังไฟล์ Ghostscript ที่เรียกใช้งานได้ (บนพีซีของฉันคือ "c: \ Program File \ gs \ gs9.07 \ bin \ gswin32c.exe") และการขยาย "* .pdf" ไม่ทำงาน แต่ ghostscript ทำงานได้อย่างสมบูรณ์แบบ
Pitarou

3

ฉันได้ใช้วิธีการแก้ปัญหาข้างต้นเรียบร้อยแล้ว อย่างไรก็ตามในระบบของฉัน (Windows 7 64-bit) โค้ดเนื่องจากมันเป็นการเพิ่มไฟล์ PDF ในลำดับแบบสุ่ม (ดูเหมือนว่า) ไม่ใช่ชื่อไฟล์ตามตัวอักษร

ในการที่จะเพิ่มไฟล์ตามลำดับตัวอักษรคุณจะต้องเพิ่มพารามิเตอร์ sort-object ในคำสั่ง DIR (aka Get-ChildItem) (sort-object จะไม่มีพารามิเตอร์ที่นี่เนื่องจากชื่อไฟล์ / ตัวอักษรเป็นค่าเริ่มต้น):

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | group DirectoryName % {& $PDFtk $.group CAT OUTPUT "$($.Name)\$outputfile" verbose}

ผู้ที่มีชื่อไฟล์ของแบบฟอร์ม 1.pdf 2.pdf ... 10.pdf ฯลฯ แทนที่จะเป็น 01.pdf 02.pdf .. 10.pdf อาจต้องการลองรูปแบบของสิ่งต่อไปนี้:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf

"above solution" - คุณน่าจะหมายถึงคำตอบของ nixda หากคำตอบของคุณได้รับการโหวตสูงกว่านิกดาก็จะเป็นด้านล่าง
ก๋วยเตี๋ยว

1

มีเครื่องมือจัดการ PDF ขั้นสูงแบบออนไลน์ใหม่ที่เรียกว่าSej-daซึ่งยังอยู่ในช่วงเบต้าซึ่งมีฟังก์ชั่น PDF จำนวนมาก (ความสามารถในการรวมไฟล์ PDF หลาย ๆ ไฟล์) ฟรีและช่วยเหลือความต้องการของคุณได้ดี

http://sejda.com/

การตรวจสอบสั้น ๆ เกี่ยวกับฟังก์ชั่นของมันได้รับการดำเนินการเพียงไม่กี่สัปดาห์ที่ผ่านมาโดยการแก้ไข 3:

http://revision3.com/tzdaily/sejda-online-pdf


OP มีความสามารถในการผสานไฟล์ PDF อย่างชัดเจนเขาต้องการรวมเป็นกลุ่มกับกระบวนการอัตโนมัติ คำตอบของคุณไม่ได้ให้รายละเอียดเกี่ยวกับวิธีการใช้ sejda ด้วยวิธีนี้และไม่ชัดเจนจากเว็บไซต์ของพวกเขา
ก๋วยเตี๋ยว

1

บางทีอาจเป็นการดีที่จะใช้ภาพจำลองแบทช์ สร้างและรวบรวมไฟล์ PDF ทั้งหมดของคุณในรูปแบบ xxxx.abcdef.pdf

ส่วนแรกคือแท็กแบตช์ที่เรียกว่า; ส่วนที่สองคือตัวระบุไฟล์ (ชื่อไฟล์) แท็กสำหรับแต่ละหลังมีความยาวและความคุ้มค่าเหมือนกัน ชื่อของไฟล์มาหลังจากจุด

เช่นชุดแรกของคุณประกอบด้วย 1111.3425.pdf, 1111.76501.pdf เป็นต้น ชุดที่สองของคุณคือ 22222.1432.pdf, 22222.4398 เป็นต้น และอื่น ๆ สำหรับกระบวนการอื่น ๆ

จากนั้นคุณสามารถใช้ซอฟต์แวร์ผสานอัตโนมัติที่สามารถจัดการกับไฟล์นับพันที่สร้างการผสานแยกต่างหากสำหรับแต่ละชุด ฉันพบซอฟต์แวร์ฟรีDysprosiumที่ไม่ต้องการบรรทัดคำสั่งหรือสคริปต์ชุดงาน คุณสามารถดาวน์โหลดเป็นไฟล์ JAR แบบพกพา มันมีสถานการณ์อัตโนมัติต่างกัน หนึ่งคำอธิบายในคำตอบนี้เป็นการแท็กและอีกโฟลเดอร์หนึ่งเป็นโฟลเดอร์ที่คุณต้องการแยก

ขึ้นอยู่กับฮาร์ดแวร์ของคุณคุณสามารถแบทช์รวมไฟล์หลายพันไฟล์เป็นชุดที่กำหนดไว้ล่วงหน้า


0

ลองPDFMerge แต่อย่าใช้ฟอร์มเริ่มต้นที่คุณต้องเลือกแต่ละไฟล์ทีละไฟล์ แต่ให้รอเว็บไซต์ตรวจสอบการติดตั้ง Java ของคุณจากนั้นคลิกที่ลิงค์ "ลองลิงค์ PDFMerge Java Applet" เมื่อโหลดแอปเพล็ตและอนุญาตให้เรียกใช้แล้วให้คลิกที่ปุ่มเลือกไฟล์และคุณจะสามารถเลือกหลายไฟล์ (เพื่อรวมเป็นไฟล์เดียว)

การรวมจะเร็วมากและสามารถจัดการไฟล์จำนวนมากได้เนื่องจากไม่มีการอัปโหลดลงในเว็บไซต์ ทุกอย่างทำในคอมพิวเตอร์ของคุณเองโดยใช้การติดตั้ง Java ของคุณ

PS: ขออภัยหากคุณกำลังมองหาซอฟต์แวร์ออฟไลน์ที่สามารถปรับแต่งเพื่อสร้างไฟล์ PDF ไฟล์เดียวในหลาย ๆ โฟลเดอร์


0

หากคุณใช้ mac คุณสามารถสร้างสคริปต์ Automator เพื่อให้งานนี้สำเร็จ ทำให้มันเป็นการกระทำที่โฟลเดอร์และเพียงแค่วางไฟล์ PDF ลงไปและเห็นมันเกิดขึ้น! ถ้าคุณต้องการฉันสามารถแสดงให้คุณเห็นว่าคุณกำลังใช้งาน Mac หรือไม่?


0

บน Linux

ฉันเขียนบรรทัดคำสั่งนี้ค่อนข้างยาว

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} dirname {} | uniq | xargs -L1 -I {} bash -c 'cd "$0" && pdftk *.pdf cat output binder.pdf' {}

แต่มันทำงานได้ดีมากฉันทดสอบแล้วมันยังทำงานได้กับโฟลเดอร์กี่ระดับที่คุณมี ตรวจสอบให้แน่ใจว่าคุณใช้งานรูทของโครงสร้างโฟลเดอร์

คุณต้องการpdftkและtreeสำหรับสิ่งนี้และบน Ubuntu Linux คุณสามารถติดตั้งได้ด้วย apt:

sudo apt install pdftk tree
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.