Sujungti / konvertuoti kelis PDF failus į vieną PDF failą

Kaip sujungti / konvertuoti kelis PDF failus į vieną didelį PDF failą?

Bandžiau toliau, bet tikslinio failo turinys nebuvo toks, kaip tikėtasi:

 convert file1.pdf file2.pdf merged.pdf 

Man reikia labai paprasto / pagrindinio komandinės eilutės sprendimo (CLI). Būtų geriausia, jei galėčiau pdf2ps sujungimo išvestį / konvertuoti tiesiai į pdf2ps (kaip iš pradžių bandė mano anksčiau užduotas klausimas: „ Linux“ vamzdynai (konvertuoti → pdf2ps →; lp) ).

830
24 марта '10 в 15:56 2010-03-24 15:56 alkoholis yra nustatytas kovo 24 d., 10 val. 15:56 2010-03-24 15:56
@ 17 atsakymų

Atsiprašome, man pavyko rasti atsakymą naudojant „Google“ ir šiek tiek sėkmės :)

Tiems, kurie domisi;

Į Debian serverį įdiegiau pdftk (pdf toolkit) ir pasiekiau norimą rezultatą naudodamas šią komandą:

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

Arba tas pats

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

Tai, savo ruožtu, gali būti perduodama tiesiogiai į pdf2ps.

418
24 марта '10 в 16:06 2010-03-24 16:06 atsakymas duotas alkoholiui kovo 24 d., 10 val. 16:06 2010-03-24 16:06

Atsižvelgiant į tai, kad pdfunite yra „ pdfunite “ dalis, ji yra didesnė tikimybė, kad bus įdiegta, naudojimas taip pat yra paprastesnis nei „ pdftk :

border=0
 pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf 
1097
01 июля '12 в 10:11 2012-07-01 10:11 atsakymą pateikė Hubert Kario liepos 1 d. 12 d. 10:11 2012-07-01 10:11

Išbandykite ghostscript:

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

arba netgi tokiu būdu patobulinta mažos skiriamosios gebos PDF rinkmenų versija (dėka Adriano už tai, kad ji nurodė):

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

Abiem atvejais išvesties raiška yra daug didesnė ir geresnė nei naudojant konversiją:

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

Taigi, jums nereikės įdiegti nieko kito, tiesiog dirbti su tuo, ką jau įdiegėte sistemoje (bent jau abu yra įtraukti į mano rhel).

Tikiuosi, kad tai padės,

UPDATE: Pirmiausia, ačiū už visus malonius komentarus! tik užuomina, kad galėtumėte dirbti jums vaikinai, po paieškos Google, radau puikų triuką sumažinti PDF failų dydį, sumažinau vieną PDF failą su 300 MB iki 15 MB su priimtina rezoliucija! ir visa tai gera ghostscript, čia yra:

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

cheers !!

431
14 окт. atsakymą pateikė Gery spalio 14 d. 2013-10-14 13:39 '13, 13:39, 2013-10-14 13:39

Taip pat pdfjoin a.pdf b.pdf sukurs naują b-joined.pdf su a.pdf ir b.pdf turiniu

41
18 апр. atsakymas duotas rodrigob 18 balandžio. 2013-04-18 20:24 '13, 20:24, 2013-04-18 20:24

Galite konvertuoti komandą naudoti tiesiogiai,

Pavyzdžiui.

 convert sub1.pdf sub2.pdf sub3.pdf merged.pdf 
36
17 мая '14 в 14:33 2014-05-17 14:33 Atsakymą pateikė Noor gegužės 17 d., 14 val. 14:33 2014-05-17 14:33

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

PDFMerger Ši programa sudarys PDF dokumentų sąrašą ir sujungs juos, išsaugodama rezultatą naujame dokumente.

Naudojimas: java -jar pdfbox-app-xyzjar PDFMerger "PDF šaltinio failai (2..n)" "Tikslinis PDF failas"

11
20 нояб. Atsakymą pateikė „ lumpchen “ lapkričio 20 d. 2015-11-20 08:52 '15 ne 8:52 2015-11-20 08:52

Naudokite python įrankius iš python https://pypi.python.org/pypi/pdftools/1.0.6

Atsisiųskite failą tar.gz ir išpakuokite ją ir paleiskite komandą, kaip parodyta žemiau.

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

Prieš paleisdami nurodytą komandą, turite įdiegti pyhton3.

Šie įrankiai palaikomi toliau

  • pridėti
  • Įterpti
  • Ištrinti
  • Pasukti
  • Splitas
  • Sujunkite
  • Zip

Daugiau informacijos rasite žemiau esančioje nuorodoje ir atvirame kode.

https://github.com/MrLeeh/pdftools

10
06 июля '17 в 13:34 2017-07-06 13:34 atsakymą pateikė Ravikiran Reddy Kotapati liepos 17 d. 17, 13:34 2017-07-06 13:34

Jei norite konvertuoti visus atsisiųstus vaizdus į vieną pdf failą, paleiskite

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

8
13 янв. atsakymą Trupti Kini pateikė sausio 13 d. 2014-01-13 14:27 '14, 14:27 2014-01-13 14:27

Galite naudoti „ sejda“ konsolę , nemokamą ir atvirą kodą. Išpakuokite ir paleiskite sejda-console merge -f file1.pdf file2.pdf -o merged.pdf

Tai taupo žymes, nuorodas į komentarus, akroformus ir kt., Iš tikrųjų turite nemažai galimybių, su kuriomis galite žaisti, tiesiog paleiskite sejda-console merge -h kad pamatytumėte juos visus.

8
02 февр. Atsakymą pateikė Andrea Vacondio 02 vasaris. 2017-02-02 21:44 '17 - 21:44 2017-02-02 21:44

pdfunite puikiai tinka sujungti visus PDF failus. Jei norite, pvz., Failo1.pdf 2-7 puslapiai ir file2.pdf puslapiai 1,3,4, turite naudoti pdfseparate kad pdfseparate failus į atskirus PDF failus kiekvienam puslapiui, kurį norite perkelti į pdfunite .

Šiuo metu jūs tikriausiai norite programos su daugiau galimybių. qpdf yra geriausia PDF programa, kurią radau. pdftk didesnis ir lėtesnis, o „Red Hat“ / „Fedora“ nesupakuoja dėl priklausomybės nuo gcj. Kitos PDF programos turi priklausomybę nuo Mono arba Python. Radau, kad qpdf sukuria daug mažesnį išvesties failą nei naudojant pdfseparate ir pdfunite kad pdfunite puslapius į 30 puslapių PDF išvestį, 970 KB, palyginti su 1,6450 KB. Kadangi ji siūlo daug daugiau galimybių, „ qpdf komandų eilutė nėra tokia paprasta; Pradinį failo1 ir failo2 sujungimo prašymą galima atlikti su

 qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf 
8
28 июня '18 в 13:46 2018-06-28 13:46 atsakymas pateikiamas slidininkų puslapyje birželio 28 d. 18:46 val. 2018-06-28 13:46

Aš esu antroji pdfunite rekomendacija. Tačiau Argument list too long gavau Argument list too long klaidas, kai bandžiau sujungti> 2k PDF failus.

Šiam ir dviem išoriniams paketams aš pasuko į Python: PyPDF2 (tvarkant visus su PDF susijusius dalykus) ir natsort („natūraliam“ katalogų failų pavadinimų rūšiavimui). Jei tai gali padėti kam nors:

5
13 июня '17 в 21:03 2017-06-13 21:03 Atsakymą pateikė Gregas Sadetskis birželio 13 d. 17 d. 21:03 2017-06-13 21:03

Aš šališkas kaip vienas iš „PyMuPDF“ kūrėjų (susiejantis „Python“ su „MuPDF“).

Su juo galite lengvai padaryti tai, ko norite (ir daug daugiau). Skeleto kodas veikia taip:

 #------------------------------------------------- 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") #------------------------------------------------- 

Ką apie tai. Galimos kelios parinktys pasirinkti tik puslapių diapazonus, palaikyti bendrą turinį, keisti puslapių seką arba keisti puslapio rotaciją ir tt Ir taip toliau

Esame PyPi.

4
16 янв. Jorj McKie atsakymas sausio 16 d 2018-01-16 00:22 '18 prie 0:22 2018-01-16 00:22

Man patinka „Chasmo“ idėja, bet norėčiau pasinaudoti tokiais dalykais

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

Jei norite convert keletą šaltinių failų, jie bus sujungti į bendrą pdf. Ši komanda sujungia visus failus, turinčius .pdf plėtinį, faktiniame kataloge merged.pdf pagrindiniame kataloge.

4
16 мая '15 в 4:47 2015-05-16 04:47 atsakymą pateikė vartotojo3709983 gegužės 16, 15, 4:47 2015-05-16 04:47

Jis naudoja metodą, kuris veikia ir yra lengvai įgyvendinamas. Tam reikės fpdf ir fpdi bibliotekų , kurias galite atsisiųsti čia:

4
19 марта '16 в 2:26 2016-03-19 02:26 atsakymas yra duotas billynoah kovo 19 '16, 2:26 2016-03-19 02:26

Tai paprasčiausias sprendimas, jei turite kelis failus ir nenorite įvesti vardų po vieną:

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

0
13 дек. Atsakymas duotas SaTa 13 d. 2018-12-13 06:36 '18, 6:36 am 2018-12-13 06:36

Ieškoję daugelio galimų PDF bibliotekų, vienintelis dalykas, kuris dirbo man, buvo tas

https://libraries.io/npm/easy-pdf-merge

Tam reikia įdiegti „Java“ 6 ar naujesnę versiją, tačiau ji veikia gerai. Pdftk yra pilnas klaidų.

 var merge = require('easy-pdf-merge'); merge(source_files,dest_file_path,function(err){ if(err) return console.log(err); console.log('Success'); }); 

Pastaba Tai nėra cmd, bet ją galite paleisti su komandomis, pvz., Failų pavadinimų įvedimu kaip komandų eilutės argumentais.

0
20 сент. Atsakymą pateikė „ Krishnadas PC 20 sep“ . 2018-09-20 16:15 '18, 16:15 pm 2018-09-20 16:15

Kiti atsakymai yra geri, bet jei negalite derinti PDF failų vietoje, nesvarbu, ar esate bendrai naudojamoje hostingo aplinkoje, ar dėl kitų priežasčių, jie jums nepadės.

Jei ieškote API, skirtą nuotoliniu būdu sujungti PDF failus, galite pabandyti api2pdf, kuris turi galutinį tašką sujungti PDF failus. Dokumentacija yra čia .

0
22 июля '18 в 16:55 2018-07-22 16:55 atsakymą pateikė apexdodge liepos 22 d. 18 val. 15:55 2018-07-22 16:55