ผสาน / แปลงไฟล์ PDF หลายไฟล์เป็น PDF เดียว


1069

ฉันจะรวม / แปลงไฟล์ PDF หลายไฟล์เป็นไฟล์ PDF ขนาดใหญ่ได้อย่างไร

ฉันลองทำสิ่งต่อไปนี้ แต่เนื้อหาของไฟล์เป้าหมายไม่เป็นไปตามที่คาดไว้:

convert file1.pdf file2.pdf merged.pdf

ฉันต้องการโซลูชันบรรทัดคำสั่งพื้นฐาน (CLI) ที่ง่ายมาก จะดีที่สุดถ้าฉันสามารถไพพ์เอาท์พุทของการผสาน / แปลงเป็นตรงpdf2ps(ตามที่เคยพยายามในคำถามที่ถามไปก่อนหน้านี้ของฉันที่นี่: Linux piping (convert -> pdf2ps -> lp) )


3
ymmv แต่นี่ดูเหมือนจะไม่ดีเท่าของความละเอียดในไฟล์เอาต์พุตเป็น pdfunite และมันยังส่งผลให้ขนาดไฟล์ใหญ่กว่าเอาท์พุทจาก pdfunite
sabujp


เมื่อใดก็ตามที่เชื่อมโยงจะถูกเก็บไว้หรือไม่โดยการแก้ปัญหาผู้ที่ถูกกล่าวถึงในโพสต์นี้ ถ้าคุณต้องการที่จะรักษาลิงก์ (อาจมาพร้อมกับคำอธิบายประกอบอื่น ๆ ) ให้ใช้ pdftk ถ้าต้องการอินเตอร์เฟสบรรทัดคำสั่ง, pdfsam หากคุณต้องการส่วนติดต่อผู้ใช้แบบกราฟิก, sejda หากคุณต้องการเว็บอินเตอร์เฟส
Clément

คำตอบ:


1388

เมื่อพิจารณาว่าpdfuniteเป็นส่วนหนึ่งของ poppler มันมีโอกาสสูงที่จะติดตั้งการใช้งานก็ง่ายกว่าpdftk:

pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf

20
มันเร็ว แต่ดูเหมือนจะทำลายการเชื่อมโยงหลายมิติ ดูblog.dbrgn.ch/2013/8/14/merge-multiple-pdfs
Danilo Bargen

425
เพียงให้แน่ใจว่าคุณจำได้ว่าจะให้ out.pdf มิฉะนั้นจะเขียนทับไฟล์สุดท้ายในคำสั่งของคุณถอนหายใจ
mlissner

10
แพคเกจสำหรับ pdfunite เป็น poppler-utils ใน debian แต่อาจไม่แสดงใน debian รุ่นเก่า
Jocelyn delalande

16
ไม่สามารถแนะนำสิ่งนี้ ขนาดของ PDF ที่เป็นผลลัพธ์ใหญ่เกินไป ตัวอย่างเช่น: Pdfunite ให้ไฟล์ขนาด 75MB ให้ฉันในขณะที่ Ghostscript บรรจุทุกอย่างลงใน 1MB
Torben

64
คุณสามารถใช้: pdfunite *.pdf out.pdfสมมติว่าไม่มีไฟล์ PDF อื่น ๆ อยู่ในไดเรกทอรีนั้นและคำสั่งซื้อจะถูกเก็บไว้โดย "*" หากไม่ถูกสงวนไว้ให้ใช้ช่วง: filename_ {0..9} .pdf แก้ปัญหาได้
lepe

548

ลอง Ghostscript ที่ดี:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf mine1.pdf mine2.pdf

หรือแม้แต่วิธีนี้สำหรับรุ่นที่ปรับปรุงแล้วสำหรับ PDF ความละเอียดต่ำ (ขอบคุณ Adriano สำหรับการชี้ให้เห็น):

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf

ในทั้งสองกรณีความละเอียด ouput สูงกว่าและดีกว่ามากเมื่อเทียบกับวิธีนี้โดยใช้การแปลง:

convert -density 300x300 -quality 100 mine1.pdf mine2.pdf merged.pdf

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

หวังว่าจะช่วยได้

UPDATE:ก่อนอื่นต้องขอขอบคุณสำหรับความคิดเห็นที่ดีทั้งหมดของคุณ !! แค่เคล็ดลับที่อาจใช้ได้ผลกับพวกคุณหลังจาก googling ฉันพบเคล็ดลับที่ยอดเยี่ยมในการลดขนาดไฟล์ PDF ฉันลดขนาดไฟล์ PDF หนึ่งไฟล์เป็น 300 MB เหลือเพียง 15 MB ด้วยความละเอียดที่ยอมรับได้! และทั้งหมดนี้มี ghostscript ที่ดีนี่คือ:

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

ไชโย !!


27
Nice ทิปgsวิ่งเร็วมากและมันบีบอัดได้มาก อย่างไรก็ตามคุณภาพดีขึ้นมากหลังจากที่ฉันใช้พารามิเตอร์นี้:-dPDFSETTINGS=/prepress
Adriano P

3
ฉันพบว่า-dPDFSETTINGS=/prepressมีผลดีมากของการหมุนหน้ากระดาษที่กว้างเกินไปและบังคับให้แถบเลื่อนแนวนอนน่ารำคาญ
Robert Smith

24
เพิ่มบรรทัดต่อไปนี้ลงในของคุณ.bash_profileและคุณมีช็อตคัตที่ดี: pdfmerge() { gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=$@ ; }สิ่งนี้จะช่วยให้คุณพิมพ์ได้ถ้าคุณต้องใช้คำสั่งมาก การใช้งานมีลักษณะดังนี้:pdfmerge merged.pdf mine1.pdf mine2.pdf
Torben

2
ฉันพยายามค้นหาคำอธิบายสำหรับแฟล็ก -dBATCH แต่ทำไม่ได้ แม้แต่คน gs ก็ไม่พูดอะไร แต่เยี่ยมยอดและไม่มีโปรแกรมเพิ่มเติมใด ๆ !
Michal Gonda

3
จะสั้นลงไปgs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf gs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf mine1.pdf mine2.pdfจากเอกสาร : "ในฐานะที่เป็นชวเลขที่สะดวกคุณสามารถใช้-oตัวเลือกตามด้วยข้อกำหนดไฟล์เอาต์พุตตามที่กล่าวไว้ข้างต้น-oตัวเลือกยังตั้งค่า-dBATCHและ-dNOPAUSEตัวเลือกนี่เป็นวิธีที่รวดเร็วในการเรียกใช้ghostscriptการแปลงไฟล์อินพุตหนึ่งไฟล์หรือมากกว่า"
MiniMax

513

ฉันขอโทษฉันจัดการเพื่อหาคำตอบด้วยตัวเองโดยใช้ google และโชคเล็กน้อย:)

สำหรับผู้ที่สนใจ

ฉันติดตั้ง pdftk (ชุดเครื่องมือ pdf) บนเดเบียนเซิร์ฟเวอร์ของเราและใช้คำสั่งต่อไปนี้ฉันได้ผลลัพธ์ที่ต้องการ:

pdftk file1.pdf file2.pdf cat output output.pdf

หรือ

gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf file1.pdf file2.pdf file3.pdf ...

ในทางกลับกันนี้สามารถส่งตรงไปยัง pdf2ps


81
การใช้ ghostscript อาจใช้งานได้: gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf in3.pdf ...
Nate Kohl

15
เป็นเรื่องที่ควรกล่าวถึงว่า pdftk สามารถรวมไฟล์ PDF ที่เข้ารหัสขณะที่ pdfunite ไม่สามารถทำได้
Thomas

3
ให้ความละเอียดที่ดีกว่าด้วย pdftk เปรียบเทียบกับการแปลงในตัวเลือกเริ่มต้น
Kiran K Telukunta

13
pdftk file1.pdf file2.pdf cat output out.pdfจะส่งออกไฟล์ที่รวมเป็นout.pdf
jmiserez

2
pdftkไม่สามารถใช้ได้กับระบบ EL7 libgcjเนื่องจากการขาดหายไปพึ่งพา
coder

72

นี่เป็นวิธีแก้ปัญหาที่ง่ายที่สุดหากคุณมีหลายไฟล์และไม่ต้องการพิมพ์ชื่อทีละ:

qpdf --empty --pages *.pdf -- out.pdf


2
สิ่งนี้ดูเหมือนจะง่ายที่สุดโดยไกล
baxx

1
qpdf ดูเหมือนว่าจะทำลายการเชื่อมโยงหลายมิติในเอกสาร
David Granqvist

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

มีประโยชน์มากที่สุดแน่นอน!
โชคดี

54

ด้วย pdfjoin a.pdf b.pdfจะสร้างใหม่b-joined.pdfด้วยเนื้อหาของ a.pdf และ b.pdf


5
มันดีและกระชับ แต่แบ่งการเชื่อมโยงหลายมิติ
ดาวรุ่ง

3
pdfjoin (pdflatex) ล้มเหลวด้วยไฟล์ที่มีจำนวนหน้ามาก ไม่สามารถรวมไฟล์หน้าขนาด 1k ได้
mdrozdziel

pdfjoin แบ่งหมายเหตุประกอบหรือรายการกราฟิกอื่น ๆ เพิ่มเติม
sabujp

แบบอักษร "URW Palladio L" จะมองไม่เห็นหลังจาก pdfjoin'ing หน้าเว็บ
v_2e

9
pdfunite มักใช้งานได้ดี แต่ถ้ามีข้อความว่า "Unimplemented Feature: ไม่สามารถรวมไฟล์ที่เข้ารหัส" pdfjoin เป็นทางเลือกที่ดี ไม่ว่าด้วยเหตุผลใดก็ตาม pdfjoin ไม่ได้บ่นเรื่องการเข้ารหัส
Calaf

38

คุณสามารถใช้คำสั่ง convert โดยตรง

เช่น

convert sub1.pdf sub2.pdf sub3.pdf merged.pdf

40
นี่ไม่ใช่การสูญเสีย
Ben Ruijl

12
คุณทำได้convert -compress lossless sub1.pdf sub2.pdf sub3.pdf merged.pdfแต่ขนาดไฟล์ที่ได้อาจใหญ่เกินไป ฉันขอแนะนำconvert -compress jpeg -quality 90 sub1.pdf sub2.pdf sub3.pdf merged.pdfแทน
arielnmz

21
สิ่งนี้เกี่ยวข้องกับการแปลงทุกอย่างเป็นภาพแรสเตอร์ซึ่งดูเหมือนจะไม่ดีที่สุดโดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับ PDF ที่เป็นข้อความ
ซัวร์

5
เกือบจะเป็นสำเนาของสิ่งที่ OP อธิบายว่าไม่ทำงาน
user829755

15
อย่าใช้การแปลงสำหรับไฟล์ postscript หรือ PDF เว้นแต่คุณจะเปลี่ยนจาก vector เป็น raster และไม่ต้องย้อนกลับ เป็นการยากที่จะกล่าวเกินจริงว่านี่เป็นความคิดที่ไม่ดี
markgalassi

32

pdfuniteสามารถผสาน PDF ทั้งหมดได้ หากคุณต้องการตัวอย่างเช่นหน้า 2-7 จาก file1.pdf และหน้า 1,3,4 จาก file2.pdf คุณต้องใช้pdfseparateเพื่อแยกไฟล์เป็น PDF แยกต่างหากสำหรับแต่ละหน้าเพื่อมอบให้pdfuniteที่แยกต่างหากสำหรับแต่ละหน้าจะมอบให้กับ

ณ จุดนี้คุณอาจต้องการโปรแกรมที่มีตัวเลือกเพิ่มเติม qpdfเป็นยูทิลิตี้ที่ดีที่สุดที่ฉันพบในการจัดการไฟล์ PDF pdftkใหญ่กว่าและช้ากว่าและ Red Hat / Fedora ไม่ได้บรรจุหีบห่อเนื่องจากการพึ่งพา gcj โปรแกรมอรรถประโยชน์ PDF อื่น ๆ มีการขึ้นต่อกันแบบโมโนหรือไพ ธ อน ฉันพบว่าqpdfผลิตไฟล์เอาต์พุตขนาดเล็กกว่าการใช้pdfseparateและpdfuniteรวบรวมหน้าต่างๆเป็น PDF ขนาด 30 หน้า, 970kB เทียบกับ 1,6450 kB เนื่องจากมันมีตัวเลือกมากมายอีกมากมายqpdfบรรทัดคำสั่งของจึงไม่ง่าย การร้องขอดั้งเดิมเพื่อผสาน file1 และ file2 สามารถทำได้ด้วย

qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

2
มากขนาดนี้ ยกตัวอย่างเช่น Parabola ไม่ได้ทำแพคเกจpdftkอีกต่อไปเพราะมันขึ้นอยู่gcjกับว่ามันรองรับอะไรบ้างฉันเชื่อว่า แม้จะค้นหาเครื่องมือจัดการ PDF ผ่านpacman -Ss pdfฉันก็พลาดสิ่งนี้ ขอบคุณสำหรับคำตอบนี้! ฉันควรจะได้รับ upvotes วิธีการมากขึ้นเพื่อให้มันแสดงให้เห็นถึงขวาถัดจากข้อเสนอแนะสำหรับหรือpdfunite pdftk
k.stm

1
ในการติดตั้ง Linux Mint ครั้งใหม่ของฉันสิ่งนี้จะทำงานในหน้าต่าง Terminal โดยไม่ต้องทำการติดตั้งหรือปรับแต่งพา ธ ดี!
Wallace Kelly

สิ่งนี้ทำงานได้อย่างสมบูรณ์และยังให้เอกสารที่ผสานที่ชัดเจนยิ่งขึ้นซึ่งคำสั่งอื่น ๆ ที่ฉันลองใช้ ขอบคุณสำหรับการโพสต์
Siwoku Adeola

14

Apache PDFBox http://pdfbox.apache.org/

PDFMerger แอปพลิเคชั่นนี้จะรวบรวมรายการเอกสาร PDF และรวมเข้าด้วยกันเพื่อบันทึกผลลัพธ์ในเอกสารใหม่

การใช้งาน: java -jar pdfbox-app-xyzjar PDFMerger "ไฟล์ PDF ต้นฉบับ (2 ..n)" "ไฟล์ PDF เป้าหมาย"


11

ใช้เครื่องมือ PDF จาก python https://pypi.python.org/pypi/pdftools/1.0.6

ดาวน์โหลดไฟล์ tar.gz และคลายการบีบอัดและเรียกใช้คำสั่งด้านล่าง

python pdftools-1.1.0/pdfmerge.py -o output.pdf -d file1.pdf file2.pdf file3 

คุณควรติดตั้ง pyhton3 ก่อนที่จะเรียกใช้คำสั่งด้านบน

เครื่องมือนี้รองรับด้านล่าง

  • เพิ่ม
  • แทรก
  • ลบ
  • หมุน
  • แยก
  • ผสาน
  • ซิป

คุณสามารถค้นหารายละเอียดเพิ่มเติมได้จากลิงค์ด้านล่างและเป็นโอเพ่นซอร์ส

https://github.com/MrLeeh/pdftools


มันสมบูรณ์แบบ การใช้gs(ตัวแปรทั้งหมดที่ระบุไว้ข้างต้น) เป็นการผสานอย่างง่ายของ PDF สองไฟล์คือ 2MB และ 500Kb ใช้เวลาเพียงไม่กี่นาทีในการทำให้เสร็จและทำให้ไฟล์มีขนาด 40MB! pdftoolsเสร็จสมบูรณ์ทันทีด้วยขนาดไฟล์ที่เหมือนกัน
supergra

10

คุณสามารถใช้คอนโซล sejdaได้ฟรีและโอเพ่นซอร์ส เปิดเครื่องรูดมันและเรียกใช้ sejda-console merge -f file1.pdf file2.pdf -o merged.pdf

มันเก็บรักษาที่คั่นหน้าคำอธิบายประกอบลิงก์ acroforms ฯลฯ .. จริง ๆ แล้วมันมีตัวเลือกมากมายที่คุณสามารถเล่นด้วยเพียงแค่วิ่งsejda-console merge -hไปดูพวกเขาทั้งหมด


OMHO เป็นเครื่องมือที่ดีที่สุดในการทำงานประเภทนี้
mario ruiz

8

หากคุณต้องการแปลงภาพที่ดาวน์โหลดทั้งหมดเป็นไฟล์ PDF หนึ่งไฟล์ให้ดำเนินการ

convert img{0..19}.jpg slides.pdf


6
อย่าใช้การแปลงสำหรับไฟล์ postscript หรือ PDF เว้นแต่คุณจะเปลี่ยนจาก vector เป็น raster และไม่ต้องย้อนกลับ เป็นการยากที่จะกล่าวเกินจริงว่านี่เป็นความคิดที่ไม่ดี
markgalassi

6

ฉันสองpdfuniteข้อเสนอแนะ อย่างไรก็ตามฉันได้รับArgument list too longข้อผิดพลาดขณะพยายามรวม> ไฟล์ PDF ขนาด 2k

ฉันหันไปใช้ Python สำหรับแพ็กเกจภายนอกนี้และแพคเกจภายนอกสองชุด: PyPDF2 (เพื่อจัดการกับทุกสิ่งที่เกี่ยวข้องกับ PDF) และnatsort (เพื่อจัดเรียงชื่อไฟล์ของไดเรกทอรีในรูปแบบ "ธรรมชาติ") ในกรณีนี้สามารถช่วยใครบางคน:

from PyPDF2 import PdfFileMerger
import natsort
import os

DIR = "dir-with-pdfs/"
OUTPUT = "output.pdf"

file_list = filter(lambda f: f.endswith('.pdf'), os.listdir(DIR))
file_list = natsort.natsorted(file_list)

# 'strict' used because of
# https://github.com/mstamy2/PyPDF2/issues/244#issuecomment-206952235
merger = PdfFileMerger(strict=False)

for f_name in file_list:
  f = open(os.path.join(DIR, f_name), "rb")
  merger.append(f)

output = open(OUTPUT, "wb")
merger.write(output)

6
"รายการอาร์กิวเมนต์ยาวเกินไป" บ่งชี้ว่าคุณกำลังทำเกินขนาดบัฟเฟอร์ที่จัดสรรของเชลล์สำหรับสภาพแวดล้อม - ไม่ใช่ข้อ จำกัด ของเครื่องมือ ในกรณีเช่นนี้การเปลี่ยนไปใช้ Python อาจเกินความจำเป็นเนื่องจากคุณสามารถแบทช์: find input -name * .pdf | xargs -P1 -n500 sh -c 'pdfunite "$ @" date +%soutput- .pdf' && เอาท์พุท pdfunite - *. pdf output.pdf (ซึ่งจะสร้างแบทช์ 500 ไฟล์ที่ประมวลผลแบบลำดับเรียงลำดับทำให้ไฟล์ชั่วคราวที่เรียงลำดับถูกต้อง และสร้างไฟล์เอาต์พุตที่เหมาะสมคุณจะต้องล้างไฟล์ชั่วคราวหลังจาก)
enkiv2

4

นี่เป็นวิธีที่ฉันใช้ซึ่งใช้งานได้และใช้งานง่าย สิ่งนี้จะต้องใช้ทั้งไลบรารี fpdfและfpdiซึ่งสามารถดาวน์โหลดได้ที่นี่:

require('fpdf.php');
require('fpdi.php');

$files = ['doc1.pdf', 'doc2.pdf', 'doc3.pdf'];

$pdf = new FPDI();

foreach ($files as $file) {
    $pdf->setSourceFile($file);
    $tpl = $pdf->importPage(1, '/MediaBox');
    $pdf->addPage();
    $pdf->useTemplate($tpl);
}

$pdf->Output('F','merged.pdf');

4

ฉันลำเอียงเป็นหนึ่งในนักพัฒนาของ PyMuPDF (Python binding ของ MuPDF)

คุณสามารถทำสิ่งที่คุณต้องการได้อย่างง่ายดาย (และอีกมากมาย) Skeleton รหัสทำงานเช่นนี้:

#-------------------------------------------------
import fitz         # the binding PyMuPDF
fout = fitz.open()  # new PDF for joined output
flist = ["1.pdf", "2.pdf", ...]  # list of filenames to be joined

for f in flist:
    fin = fitz.open(f)  # open an input file
    fout.insertPDF(fin) # append f
    fin.close()

fout.save("joined.pdf")
#-------------------------------------------------

เกี่ยวกับมัน. มีตัวเลือกหลายตัวเลือกสำหรับการเลือกเฉพาะช่วงหน้าการบำรุงรักษาสารบัญร่วมการย้อนกลับลำดับหน้าหรือเปลี่ยนการหมุนเวียนหน้า ฯลฯ

เราอยู่ใน PyPi


3

ฉันชอบความคิดของ Chasmo แต่ฉันชอบที่จะใช้ข้อดีของสิ่งต่าง ๆ เช่น

convert $(ls *.pdf) ../merged.pdf

ให้ไฟล์ต้นฉบับหลายไฟล์เพื่อconvertนำไปสู่การรวมไฟล์เหล่านั้นลงใน pdf ทั่วไป คำสั่งนี้จะรวมไฟล์ทั้งหมดที่มี.pdfนามสกุลในไดเรกทอรีจริงเข้ามาmerged.pdfใน parent dir


5
เมื่อพิจารณาแล้วว่าคำถามนี้มีความคล้ายคลึงกันกับคำถามต้นฉบับหรือไม่ดูเหมือนว่าจะเป็นความคิดเห็นไม่ใช่คำตอบ กับบิตตัวแทนมากขึ้นคุณจะสามารถที่จะแสดงความคิดเห็น โปรดอย่าใช้คำตอบเป็นวิธีแก้ปัญหาก่อนหน้านั้น
นาธาน Tuggy

1
@Silfheed ไม่มันตอบคำถาม! แม้ว่าคำตอบอาจจะมีรายละเอียดเพิ่มเติม
peterh - Reinstate Monica

7
อย่าใช้การแปลงสำหรับไฟล์ postscript หรือ PDF เว้นแต่คุณจะเปลี่ยนจาก vector เป็น raster และไม่ต้องย้อนกลับ เป็นการยากที่จะกล่าวเกินจริงว่านี่เป็นความคิดที่ไม่ดี
markgalassi

13
จุดประสงค์ของการใช้$(ls *.pdf)แทนที่ไวด์การ์ดอย่างง่าย*.pdfคืออะไร?
firegurafiku

นอกจากนี้ยังอ้างอิงถึงคำตอบ @firegurafiku ด้วยls *.pdfwildcard คุณจะสูญเสียการควบคุมคำสั่งของไฟล์ที่ถูกผสาน ในตัวอย่างรายการต่อไปนี้: 1.pdf, 2.pdf, 3.pdf, ... , 10.pdf, ... , 100.pdf จะถูกรวมเข้าด้วยกันเช่น 1.pdf, 10.pdf, 100 pdf, 2.pdf, 3.pdf (เนื่องจากวิธีการสั่งซื้อไฟล์เริ่มต้นของ Linux - ที่นี่คุณมีรายละเอียดเพิ่มเติมเกี่ยวกับปัญหานี้ - stackoverflow.com/q/22948042/1977012 )
Egel

0

แม้ว่าจะไม่ใช่โซลูชันบรรทัดคำสั่ง แต่อาจช่วยmacosผู้ใช้:

  1. เลือกไฟล์ PDF ของคุณ
  2. คลิกขวาที่ไฟล์ที่ถูกไฮไลต์
  3. เลือกการดำเนินการด่วน > สร้าง PDF

0

คุณสามารถเห็นการใช้pdftoolsฟรีและโอเพนซอร์ส (ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน)

มันเป็นอินเทอร์เฟซ Python ไปยังลาเท็กซ์ pdfpagesแพคเกจ

ในการรวมไฟล์ pdf ทีละไฟล์คุณสามารถเรียกใช้:

pdftools --input-file file1.pdf --input-file file2.pdf --output output.pdf

หากต้องการรวมไฟล์ pdf ทั้งหมดในไดเรกทอรีด้วยกันคุณสามารถเรียกใช้:

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