การรวมภาพ png เป็นไฟล์ pdf เดียว [ปิด]


93

ฉันจะรวม.pngไฟล์หลายไฟล์เป็นไฟล์ PDF เดียวใน Unix ได้อย่างไร?

คำตอบ:


152

จากการดูเอกสารใน ImageMagick อาจทำได้ง่ายดังนี้:

convert 1.png 2.png myfile.pdf

หากไม่ได้ผลPDFjamจะอ้างว่าสามารถแก้ปัญหาของคุณได้


6
ที่น่าตื่นตาตื่นใจ. ง่ายมาก. มันปรับขนาดภาพและทุกอย่างโดยอัตโนมัติ .. ฉันชอบโอเพ่นซอร์ส
Nathan Wallace

มีวิธีควบคุมคุณภาพของเอกสารหรือขนาดไฟล์ PDF ที่ได้หรือไม่ ฉันต้องการอัปโหลดเอกสารบางอย่างที่มีขนาดไฟล์สูงสุด 2.5 MiB ฉันได้ลองใช้-qualityตัวเลือกนี้แล้ว แต่ขนาดไฟล์มักจะ ~ 9.5 MiB
arielnmz

เป็นไปได้ไหมที่จะต่อท้ายไฟล์รูปภาพลงใน pdf ที่มีอยู่?
Kiran Reddy

3
แปลงไฟล์ทั้งหมดในโฟลเดอร์ประเภทที่ระบุโดยใช้convert *.jpg file.pdf
haakym

2
@arielnmz -compress jpeg -quality 50คุณสามารถบีบอัดไฟล์โดยใช้พารามิเตอร์ ดูคำตอบของฉัน
Michael Schmid

37

หากฉันต้องการรวมการสแกนเป็นไฟล์ PDF หนึ่งไฟล์ฉันจะทำสิ่งนี้:

pdfjoin --a4paper --fitpaper false --rotateoversize false scan01.png scan02.png

เอกสารนี้จะให้เอกสาร PDF ที่มีขนาดหน้า DIN-A4 โดยที่ทุกpngไฟล์จะอยู่กึ่งกลางหน้าของตัวเอง รูปภาพที่ใหญ่เกินไปสำหรับหนึ่งหน้า DIN-A4 จะถูกปรับขนาดตามสัดส่วนเพื่อให้พอดีกับหนึ่งหน้า รูปภาพขนาดเล็กจะไม่ปรับขนาด (ไม่ได้ทำให้ใหญ่ขึ้น)

คุณต้องตั้งชื่อpngไฟล์ทั้งหมดในบรรทัดคำสั่ง แต่คุณยังสามารถใช้สัญลักษณ์แทนเพื่อรวมไฟล์ png ทั้งหมดในไดเร็กทอรีปัจจุบัน:

pdfjoin --a4paper --fitpaper false --rotateoversize false *.png

pdfjoinคำสั่งเป็นส่วนหนึ่งของ PDFjam ตามที่กล่าวไว้ในคำตอบโดยเยเรมีย์ Willcock ดังนั้นคุณมักจะต้องติดตั้งแพ็คเกจที่ชื่อpdfjamหรือtexlive-extra-utilsด้วยตัวจัดการแพ็คเกจ distros ของคุณ PDFjam สามารถใช้pngไฟล์เป็นอินพุตได้ตั้งแต่เวอร์ชัน 2.07 ซึ่งเผยแพร่ในปี 2010-11-13


ดูเหมือนว่า pdfjoin จะหายไปและตอนนี้มีเพียงเครื่องมืออื่นที่เรียกว่า pdfunite ที่รวมไฟล์ PDF หลายไฟล์ไว้ในไฟล์เดียวเท่านั้น ...
Gregor

1
@Gregor อะไรทำให้คุณบอกว่า pdfjoin หายไป?
Pascal Rosin

@Pascal_Rosin ไม่พบใน Debian หรือในที่เก็บ Arch ...
Gregor

2
pdfjoinมีให้ในtexlive-extra-utilsแพ็คเกจบนบางแพลตฟอร์ม คุณสามารถติดตั้งจากแหล่งที่มาได้ตลอดเวลาเช่นกัน
Mahmoud Al-Qudsi

11

ImageMagickของเครื่องมือแปลงคือความต้องการของฉัน

โปรแกรมแปลงเป็นสมาชิกของชุดเครื่องมือ ImageMagick ใช้เพื่อแปลงระหว่างรูปแบบภาพเช่นเดียวกับการปรับขนาดภาพเบลอครอบตัดขนาดย่อวาดพลิกเข้าร่วมสุ่มตัวอย่างใหม่และอื่น ๆ อีกมากมาย

convert [input-option] input-file [output-option] output-file`

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

convert In.png In-2.png Someother-*.png Result.pdf

ในกรณีที่คุณต้องการมีขนาดไฟล์ที่เล็กลงและคุณพอใจกับการสูญเสียคุณภาพคุณสามารถแปลงไฟล์เป็นรูปแบบ JPEG ก่อน (ImageMagick ยังรองรับการเปลี่ยนระดับการบีบอัด PNG แต่โดยปกติไฟล์อินพุตของคุณจะใช้ระดับสูงสุดอยู่แล้ว)

convert 1.png 2.png -compress jpeg -quality 50 Result.pdf

ใช้ค่าระหว่าง 0 ถึง 100 สำหรับqualityตัวเลือก

หรือคุณสามารถเข้าถึงขนาดไฟล์ที่ต่ำลง (และคุณภาพ) ได้โดยการสุ่มตัวอย่างรูปภาพใหม่ให้มีความละเอียดที่แน่นอน

convert *.png 2.png -resample 300 Result.pdf

ค่าสำหรับresampleหมายถึงจำนวนพิกเซลต่อนิ้ว ImageMagick อ่านความหนาแน่นดั้งเดิมจากส่วน EXIF ​​ของภาพอินพุตลดลงเหลือ 72 dpi คุณสามารถใช้densityพารามิเตอร์เพื่อตั้งค่าความละเอียดที่กำหนดเองสำหรับภาพอินพุต

คุณสามารถของหลักสูตรยังรวมcompress, qualityและresampleพารามิเตอร์


ใครที่นี่รู้วิธีเปลี่ยนกลับการดำเนินการ?
Andrei Cioara

ไฟล์ภาพจะไม่ถูกลบในขณะที่คุณสามารถคัดลอกไปได้เพื่อความสบายใจ ฉันยังมีปัญหาstackoverflow.com/questions/42928765/…เพื่อแก้ไขก่อนที่จะทำงาน
Audrius Meskauskas

ใครก็ตามที่พบปัญหาในการแปลงรูปภาพเป็น pdf และพบข้อผิดพลาดว่า 'ไม่อนุญาตให้แปลง' โปรดตรวจสอบคำตอบนี้: askubuntu.com/questions/1127260/imagemagick-convert-not-allowed
Tuhin

ล่าสุด imagemagick ปฏิเสธการแปลง PDF โดยค่าเริ่มต้น ดูคำถามนี้หากคุณพบสิ่งนี้เพื่อให้คุณทราบวิธีเปลี่ยนแปลงนโยบายนี้ stackoverflow.com/questions/52998331/…
user2565010

5

ฉันขโมยสิ่งนี้ แต่นี่เป็นวิธีแก้ปัญหาที่ฉันใช้จาก Jeremiah Willcock และเว็บไซต์คำตอบอื่น ไม่ได้ขุดคุ้ยประวัติศาสตร์ในขณะนี้ ฉันโกหกฉันทำ (Tully @ https://askubuntu.com/a/626301 )
ฉันต้องการไฟล์ที่เล็กพอที่จะส่งอีเมลได้

ในการรวมภาพเป็น PDF (จากในไดเรกทอรีการทำงานให้ใช้บรรทัดคำสั่ง:

user@box:/home/user/scans/:$ 
convert 1.png 2.png convertoutput.pdf

หากต้องการลดขนาดโดยใช้ ghostscript หลังจากรวม (ฉันใช้กับระบบเริ่มต้น kde เกือบ):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
   -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true \
   -r150 -sOutputFile=output.pdf convertoutput.pdf

ไฟล์ของฉันมี 14 ภาพ (19MB หลังจากแปลงแล้ว gs ทำให้เป็น 1.6MB คุณภาพยังดีอยู่) output.pdfไฟล์ที่ส่งออกจะเรียกว่า


คุณสามารถบีบอัดไฟล์โดยตรงกับการแปลง-compress jpeg -quality 50โดยใช้พารามิเตอร์ ดูคำตอบของฉัน
Michael Schmid

@MichaelSchmid การบีบอัดด้วยการแปลงไม่ได้ผล จะลดคุณภาพ jpeg เท่านั้นในขณะที่โซลูชัน gs เปลี่ยนความละเอียด หากคุณลองใช้ภาพที่มีความละเอียดสูงคุณจะเห็นว่าขนาดแตกต่างกันมากเพียงใดแม้ว่าคุณจะใช้คุณภาพ jpg ที่ต่ำมากก็ตาม
หัวหมาก

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