มีซอฟต์แวร์จำนวนมากใน Windows ที่จะรวมไฟล์ PDF แต่เราจะทำสิ่งเดียวกันใน Ubuntu ได้อย่างไร
มีซอฟต์แวร์จำนวนมากใน Windows ที่จะรวมไฟล์ PDF แต่เราจะทำสิ่งเดียวกันใน Ubuntu ได้อย่างไร
คำตอบ:
หากคุณต้องการเครื่องมือที่มี GUI ง่ายลองpdfshuffler จะช่วยให้การรวมไฟล์ PDF เช่นเดียวกับการจัดเรียงใหม่และการลบหน้า สำหรับการประมวลผลแบบแบทช์และ / หรืองานที่ซับซ้อนยิ่งขึ้น pdftk นั้นมีประสิทธิภาพมากกว่าแน่นอน
pdfshuffler
ทำงานได้ดีใน 14.04 amd64
หากต้องการรวมไฟล์ PDF สองไฟล์file1.pdf
และfile2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
สามารถดูข้อมูลเพิ่มเติมได้ที่นี่เครื่อง Way Back
cat
และoutput
ติดตามอาร์กิวเมนต์อินพุตที่หลากหลายและตามมาด้วยอาร์กิวเมนต์เอาท์พุทอีกครั้ง
Ghostscriptเป็นแพ็คเกจ (มีให้ตามค่าเริ่มต้นใน Ubuntu) ที่ให้คุณดูหรือพิมพ์ไฟล์ PostScript และ PDF ไปเป็นรูปแบบอื่นหรือเพื่อแปลงไฟล์เหล่านั้นเป็นรูปแบบอื่น
หากต้องการใช้ Ghostscript เพื่อรวมไฟล์ PDF ให้พิมพ์ดังนี้:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
นี่คือคำอธิบายสั้น ๆ ของคำสั่ง:
gs starts the Ghostscript program.
-dBATCH once Ghostscript processes the PDF files, it should exit.
If you don't include this option, Ghostscript will just keep running.
-dNOPAUSE forces Ghostscript to process each page without pausing for user interaction.
-q stops Ghostscript from displaying messages while it works
-sDEVICE=pdfwrite
tells Ghostscript to use its built-in PDF writer to process the files.
-sOutputFile=finished.pdf
tells Ghostscript to save the combined PDF file with the specified name.
-dAutoRotatePages=/None
Acrobat Distiller parameter AutoRotatePages controls the automatic orientation selection algorithm: For instance: -dAutoRotatePages=/None or /All or /PageByPage.
ไฟล์อินพุตของคุณไม่จำเป็นต้องเป็นไฟล์ PDF คุณยังสามารถใช้ไฟล์ PostScript หรือ EPS หรือทั้งสามอย่างผสมกันก็ได้
มีหลายสิ่งที่คุณสามารถทำได้กับ Ghostscript คุณสามารถอ่านเอกสารประกอบสำหรับรายละเอียดเพิ่มเติม
pdftk
ใช้เวลา 0m0.484s gs
ใช้เวลา 1m32.898s (ซึ่งช้ากว่าเกือบ 200 เท่า) ไฟล์จากgs
นั้นเล็กกว่าประมาณ 21%
file1.pdf file2.pdf
ด้วยfile*.pdf
gs
ทำงานกับ PDF ที่ "ไม่เป็นไปตามข้อกำหนด" ที่pdftk
จะทำงานตลอดไป
-dPDFSETTINGS=/prepress
ตัวเลือกจากการปรับปรุงคุณภาพ ขอขอบคุณทุกคนเนื่องจากผู้มีส่วนร่วม
file*.pdf
ด้วยfile1.pdf file2.pdf
ก่อนที่จะส่งอาร์กิวเมนต์ไปยังคำสั่ง
คุณยังใช้ pdfunite เพื่อรวมเอกสาร pdf:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
จะถูกเขียนทับโดยไม่มีการเตือนดังนั้นpdfunite *.pdf
จะไม่ทำงานอย่างที่คาดไว้
cp
ยังเขียนทับอาร์กิวเมนต์ล่าสุดโดยไม่มีการเตือนล่วงหน้า นี่เป็นเพียงสำหรับผู้ใช้ที่รีบเร่ง (เช่นตัวฉันเอง) - ฉันโชคดีที่ฉันได้สำรองไฟล์ที่เป็นปัญหา ...
ทางออกที่ดีมากคือ PDFChain เป็น GUI เป็นส่วนหน้าของ PDFTK ที่คุณสามารถผสานแยกหรือเพิ่มพื้นหลังบางส่วนให้กับไฟล์ PDF ของคุณ
apt
ไม่ได้ให้ผลลัพธ์ใด ๆ เช่น: /
อีกทางเลือกหนึ่งคือการใช้ลาเท็กซ์ตามที่อธิบายไว้ในโพสต์นี้ ( โดยไม่ต้องเข้าถึงรูทโดยสมมติว่าคุณติดตั้งpdflatexแล้ว): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- น้ำยาง
สิ่งนี้มีประโยชน์ในกรณีที่คุณไม่มีเครื่องมือที่กล่าวถึงหรือสิทธิ์ใช้งานรูท แต่คุณมี pdflatex
ผมคัดลอกโค้ด tex ด้านล่างนี้เพื่อผสานและfile1.pdf
file2.pdf
สร้างไฟล์ชื่อoutput.tex
และวาง:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
และเพื่อรวบรวมเพียงใช้: pdflatex output.tex
output.pdf
ไฟล์ที่ผสานจะได้รับการเสนอชื่อเป็น
ฉันใช้ pdfseparate เพื่อแยกหน้าจากไฟล์ pdf ขนาดใหญ่:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
และโดยทั่วไปฉันเข้าร่วมทุกคนด้วยคำสั่ง:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
สิ่งนี้เข้าร่วม:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
เป็น:
out2014-12-14_23_25_36.pdf
อาจจะมีวิธีที่ง่ายกว่าวิธีรับมือ ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
ls -v
การแก้ไขที่ชัดเจนและไม่สำคัญคือการตั้งชื่อไฟล์ของคุณเพื่อให้เรียงตามลำดับที่คุณต้องการรวมไว้ หากคุณต้องการls -v
อย่างน้อยคุณสามารถสูญเสียท่อไปtr
ซึ่งไม่ประสบความสำเร็จที่นี่
ใช้ pdfsam http://www.pdfsam.org/มันดีมากสำหรับการแยกและรวมไฟล์ PDF
คุณสามารถใช้pdftkเพื่อรวมและแก้ไขเอกสาร PDF โดยทั่วไป หรือมีบริการออนไลน์ให้ทำเช่นนั้น: http://www.pdfmerge.com/
นี่คือแนวทางของฉัน:
นี่คือผลลัพธ์:
#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'
Juste วางสคริปต์นี้ใน
/home/your_username/.local/share/nautilus/scripts
และตั้งชื่อเป็น "merge_pdfs.sh" (ตัวอย่าง) จากนั้นทำให้สามารถเรียกใช้งานได้ (คลิกขวาที่ merge_pdfs.sh -> แท็บการอนุญาต -> ทำเครื่องหมาย "อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม"
ดังนั้นในการรวมไฟล์ pdf คุณเพียงแค่ต้องเลือก -> คลิกขวา -> สคริปต์ -> merge_pdfs.sh และมันจะสร้างไฟล์ "ผสาน" ในไดเรกทอรีเดียวกัน
หวังว่ามันจะช่วย!