แยกหน้าแรกจากไฟล์ PDF หลาย ๆ ไฟล์


17

มีไฟล์ PDF ประมาณ 500 ไฟล์ที่จะอ่านและแยกหน้าแรกของ พวกเขาต้องผ่านกระบวนการแปลงที่ใช้เวลานานดังนั้นหวังว่าจะลองและประหยัดเวลาโดยมีกระบวนการแบทช์เพื่อแยกหน้าแรกจาก 500 ไฟล์ PDF และวางไว้ในรูปแบบ pdf ใหม่ มีการกระตุ้นรอบ Acrobat แต่ไม่สามารถหาวิธีการนี้ในหลาย ๆ ไฟล์ ไม่มีใครรู้ว่าโปรแกรมหรือวิธีการอื่น ๆ ที่สามารถทำได้? ฟรีและโอเพ่นซอร์สนั้นดีกว่า :)

แก้ไข: มีจริงประสบความสำเร็จในการใช้ GhostScript เพื่อแยกเพียงหน้าเดียว ตอนนี้กำลังดูวิธีการแบตช์นั้นและนำรายชื่อของไฟล์และใช้เหล่านั้น


ขั้นตอนอื่น ๆ ในกระบวนการแปลงเกี่ยวข้องกับอะไร?
Ignacio Vazquez-Abrams

เกี่ยวกับการแก้ไขของคุณดูการแก้ไขของฉัน
frabjous

คำตอบ:


29

ใช้pdftk ...

บน mac และ linux จากบรรทัดคำสั่ง

for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done

บน Windows คุณสามารถสร้างไฟล์แบตช์ เปิด Notepad วางไว้ข้างใน:

for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"

คุณอาจต้องแทนที่ "pdftk.exe" ด้วยพา ธ แบบเต็มไปยัง pdftk เช่น"C:\Program Files\pdftk\pdftk.exeหรืออะไรก็ตาม (ฉันไม่ได้ใช้ Windows ดังนั้นฉันไม่รู้)

บันทึกส่วนขยายที่ลงท้ายด้วย. bat วางลงในโฟลเดอร์ด้วย PDF และดับเบิลคลิก

คุณสามารถทำสิ่งเดียวกันกับ Ghostscript ได้

มาดูกัน. สำหรับ Mac และ Linux (ทุกบรรทัด):

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done

ฉันไม่แน่ใจว่าสิ่งที่คำสั่งที่สอดคล้องกันจะเป็นไฟล์แบทช์ Windows เดาที่ดีที่สุดของฉัน (- ฉันไม่มี windows ดังนั้นฉันไม่สามารถทดสอบ -):

for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"

ตรวจสอบเส้นทางของสคริปต์ผีของคุณอีกครั้งและฉันยังไม่ได้ทดสอบสิ่งนี้เนื่องจากฉันไม่ได้ใช้ Windows


แก้ไข: ตกลงฉันเพิ่งรู้ว่าคุณอาจไม่ต้องการ PDF 1 หน้า 500 แต่ PDF เดียวที่รวมเข้าด้วยกันทั้งหมด เพียงเรียกใช้งานข้างต้นและนั่นจะทำให้คุณมีไฟล์ PDF 500 หน้าขนาด 500 แผ่น หากต้องการรวมเข้าด้วยกันโดยใช้ pdftk ... บน mac และ linux:

pdftk *-page1.pdf cat output combined.pdf

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

ด้วย Ghostscript ... บน mac และ linux:

gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf

และอาจเหมือนกันใน Windows ยกเว้นการแทนที่ "gs" ที่จุดเริ่มต้นด้วยเส้นทางแบบเต็มไปยัง gswin32c.exe ดังกล่าวข้างต้น

อาจมีวิธี ghostscript ที่จะทำทั้งสองอย่างในขั้นตอนเดียว แต่ฉันขี้เกียจเกินกว่าที่จะเข้าใจได้ในตอนนี้

หากคำสั่งที่ใช้ในการรวมเข้าด้วยกันเป็นสิ่งสำคัญเราจะต้องการข้อมูลเพิ่มเติม


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

2

เพิ่งต้องทำวันนี้ใน Linux มันควรจะทำงานกับ Mac ด้วย ดำเนินการคำสั่งต่อไปนี้จากสถานีของคุณ

lpr -o page-ranges="1-1" path/to/folder/*.pdf

lpr ส่งงานไปยังเครื่องพิมพ์

บันทึกการใช้อักขระ * ในคำสั่ง นี่จะเรียกใช้คำสั่งสำหรับไฟล์ PDF ทั้งหมดของคุณในไดเรกทอรี


เมื่อคุณชี้ให้เห็นสิ่งนี้จะส่งงานไปยังเครื่องพิมพ์ นั่นไม่ใช่สิ่งที่ OP ขอมา
นิค K9

1

ฉันคิดว่าคุณสามารถใช้เครื่องพิมพ์เสมือน pdf ได้เช่น pdf-forge

คุณเพียงแค่ "พิมพ์" หน้าแรกฉันบน mac ตอนนี้และไม่สามารถลองได้ แต่ฉันค่อนข้างแน่ใจว่าคุณสามารถทำได้มากกว่านั้นในแต่ละครั้ง

โชคดี!!

Trufa


ขอบคุณสำหรับคำแนะนำเหล่านั้น สิ่งเหล่านี้ทำให้ฉันไปที่ GhostScript ซึ่งดูเหมือนว่าจะทำสิ่งที่ฉันต้องการได้ ขอบคุณ
Tim Alexander

@ Tim Alexander ไม่มีปัญหาเลย !!
Trufa

0

สำหรับคำสั่ง windows batch file (.bat) (%% ใช้สำหรับตัวแปรในไฟล์ bat)

การแยกไฟล์ PDF หน้าแรกเป็น jpg โดยมีความละเอียด / ขนาดลดลง

for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"

(ในโพสต์ด้านบน sOutputFile ถูกเขียนผิด .. และด้วยเส้นทางปัจจุบันของการติดตั้งมาตรฐาน gs x86)

(ดูที่ การใช้ Ghostscript เพื่อแปลง PDF หลายหน้าเป็น JPG เดียวหรือไม่ )


0

บน Linux

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

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} pdftk {} cat 1 output {}.firstpage.pdf

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

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

sudo apt install pdftk tree

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