วิธีผสาน pdf: s โดยใช้ Imagemagick (ปัญหาการแก้ไข)


43

เมื่อฉันพยายามรวมสองไฟล์. pdf โดยใช้ Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

ไฟล์ temp.pdf ที่เกิดขึ้นดูเหมือนว่าจะมีความละเอียดต่ำมาก ฉันจะรักษาความละเอียดเช่นเดียวกับในไฟล์ต้นฉบับได้อย่างไร?

คำตอบ:


53

ถูกต้อง Barns แต่ถ้า pdftk ไม่ทำงานลอง ghostscript

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf

ทำงานได้อย่างสมบูรณ์แบบและรวดเร็วเกินไป - เร็วกว่าการใช้ ImageMagick ด้วยแฟล็ก -density
Brionius

นี่ควรเป็นคำตอบที่ถูกต้อง ไม่ใช่ ImageMagick ที่ใช้งานไม่ได้ มันก็ทำงานเช่นกัน แต่ดังที่ @Bionion สังเกตเห็นว่า gs นั้นเร็วกว่ามากและคุณภาพของไฟล์ PDF ที่ได้นั้นเป็นอันดับต้น ๆ
Jagtesh Chadha

โปรดทราบว่าคุณสามารถใช้ * .pdf แทนรายการ pdf1.pdf และ pdf2.pdf ที่ส่วนท้ายของคำสั่งนี้เพื่อแปลงไฟล์ pdf ทั้งหมดในโฟลเดอร์เป็นไฟล์ PDF เดียว
โคลิน D

ฉันมีปัญหากับตัวอักษรบางหน้าสูญเสียแบบอักษร มีวิธีที่ฉันสามารถเลือกได้หรือไม่?
Zloy Smiertniy

20

โดยปกติคำสั่งการแปลงของ Imagemagick จะใช้สำหรับการแปลงไฟล์รูปภาพจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่งและในกรณีนี้เป็นไปได้ว่ามันเป็นไปได้จริงที่จะทำการแปลงแบบแปลก ๆ ภายในก่อนที่จะแสดงภาพสองภาพ (PDF) เป็นไฟล์เดียว

ฉันขอแนะนำให้คุณพิจารณาใช้ PDF Toolkit (pdftk) แทนhttp://www.accesspdf.com/pdftk/

จากตัวอย่างในเว็บไซต์สิ่งนี้ควรเป็นเรื่องง่ายเหมือน:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf

ฉันทำงานบน OS X 10.6.1 และฉันพยายามติดตั้ง pdftk ผ่าน Macports ดูเหมือนว่า pdftk นั้นเลิกใช้บน Mac การติดตั้งจะไม่เสร็จสิ้น ดังนั้นฉันพยายามทำสิ่งนี้โดยใช้ Imagemagick

บน Ubuntu pdftk นั้นไม่มีปัญหาในการติดตั้งจาก apt และมันก็ใช้กลอุบายอย่างยอดเยี่ยม ฉันใช้ ImageMagick เพื่อรวมไฟล์ PDF เข้าด้วยกันก่อนที่จะประสบความสำเร็จ แต่เนื่องจากมันเป็น rasterizes PDF ก่อน (เข้าใจได้ - มันไม่ทำงานกับเวกเตอร์) มันดูไม่ดีสำหรับเอกสารข้อความส่วนใหญ่ แต่ pdftk ทำงานได้ดีมาก - ขอบคุณสำหรับคำแนะนำ
Iguananaut

เยี่ยมมาก ... ขอบคุณ
Dan Ortega

มาลงเอยกันดีกว่านี้ pdftk ทำงานได้ดีกว่า ghostcript ที่ทำสิ่งนี้
Dan Ortega

18

หากทุกไฟล์ที่คุณต้องการผสานอยู่ในโฟลเดอร์เดียวกัน:

convert -density 150 $(ls -rt *pdf) output.pdf

อาร์กิวเมนต์-density 150คงคุณภาพของไฟล์ PDF ที่ผสานไว้


5
หมายเหตุด้านบนไวยากรณ์ PDF ทั้งหมดของคุณคุณสามารถละเว้นคำสั่งย่อย:convert -density 150 *.pdf output.pdf
Josh

'* .pdf' และ '$ (ls -rt * pdf)' อาจส่งผลให้เกิดผลลัพธ์ที่แตกต่างกัน
shantanoo

8

ฉันมักจะลืมวิธีการทำเช่นนี้และค้นหาคำถามนี้ก่อนเมื่อฉันค้นหา

convert -density 600 file1.pdf file2.pdf -resize 50% new.pdf

ตัวอย่างที่เชื่อมโยงมีความหนาแน่นที่ 144 แต่ไม่เคยสูงพอที่จะไม่ปรากฏเป็นพิกเซล

http://web.archive.org/web/20130311071316/http://studio.imagemagick.org/pipermail/magick-users/2009-September/022958.html


ขออภัยลิงค์เสียชีวิตแล้ว
Sablefoste

4

หากใช้งาน linux คุณสามารถลองใช้ poppler ซึ่งpdfuniteเป็นตัวเชื่อมที่เชื่อมโยงกันโดยไม่ต้องจัดการกับความละเอียด


มันเป็นเครื่องมือที่ยอดเยี่ยมและนี่คือวิธีการ: unixblogger.com/how-to-easily-merge-pdf-documents-under-linux
Rosamunda

0

ฉันไม่พบวิธีการเข้าร่วมไฟล์ PDF สองไฟล์ด้วยกันในขณะที่รักษาความละเอียดไว้ได้ดีและข้อความยังคงเหมือนเดิม แต่ฉันหาวิธีแปลงเป็นไฟล์ png ความละเอียดสูง

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

สิ่งนี้จะนำไปสู่สองหน้าแรกของ page.pdf และรวมไว้ในไฟล์ png ความละเอียดสูงแบบเคียงข้างกัน

การเปลี่ยนบรรทัดสุดท้ายเป็น

convert tmp1.png tmp2.png +append -quality 100 page.pdf

จะส่งผลให้ออกเอกสาร PDF ในขณะที่ฉันคิดออกภายหลังหลังจาก messing รอบกับ pngtopnm, pnmtops, ps2pdf


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