Create a single pdf from multiple text, images or pdf files
I have a bunch of text files, images and pdf files which I want to convert into a single pdf file. How do I do it?
Well, you can do `convert image1.jpg image2.png text.txt PDFfile.pdf outputFileName.pdf`. It worked for me, but the problem is it converts the text.txt file into an image, so you can't highlight the text in the resulting pdf.
@Alaa you should post this as an answer rather than a comment. Simple, concise and on the money.
gscan2pdf Is a GUI version also in case the command 'convert' fails and worked for me. (from ifoss.com): Once gscan2pdf is opened, you can select all the required files in it by clicking on the Open Files. By default it is arranged in alphabetical order but you can drag and drop to reorder the images as per your choice. then click on the Save icon to save the files to PDF. if you just want a PDF file, hit the save . Since by default the output file is PDF, you don’t need to bother a lot here. Just choose where to save the converted file. Save the converted images to pdf, That’s it.
See also How to generate a PDF from a series of images? on superuser.
If you're willing to use a terminal, you can use ImageMagick. Install it with
sudo apt install imagemagick
then you can do:
convert image1.jpg image2.png text.txt PDFfile.pdf outputFileName.pdf
It worked for me, but the problem is it converts the
text.txt
file into an image, so you can't highlight the text in the resulting pdf.ImageMagic `convert` reduces quality and increases size in my experience. Try `pdftk`. But not sure how you add images there.
You can tweak with `-quality` flag to increase or decrease the resulting PDF file size. Example: `convert -quality 50 image1.jpeg image2.jpeg image3.jpeg outputFileName.pdf`
Be aware that convert uses ghostscript under the hood and gs will decode and reencode JPEGs which result in a loss of quality, even if speciiy a high quality.
I had to create more than 6000 pdfs starting from 30000 tiffs. `convert` estimate time ~6-7 hours. I used `tiffcp` and `tiff2pdf`, they took few seconds.
You can install it via `sudo apt install imagemagick`. Otherwise you don't have the convert command.
uh... wth?! When I run convert with two png files as input and "Test.pdf" as the output, I get this error: `convert-im6.q16: not authorized \`Test.pdf' @ error/constitute.c/WriteImage/1037.`
@Michael, see https://stackoverflow.com/a/52661288/276052
Install pdftk
sudo apt-get install pdftk
Pdftk
If PDF is electronic paper, then pdftk is an electronic staple-remover, hole-punch, binder, secret-decoder-ring, and X-Ray-glasses. Pdftk is a simple tool for doing everyday things with PDF documents.
You can create pdf files from text or images with Libre Office then to stitch these togeter with other pdf files
pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
It can also
Split PDF Pages into a New Document
Rotate PDF Pages or Documents
and a lot more besides
More details here: Ubuntu Geek: List of PDF Editing tools
There is a GUI for pdftk. See my answer.
This doesn't work for concatenating images with PDFs though, right?
@Garret. No but there are several ways of converting an image to pdf, using covert for example or just print to pdf from many programs. Once the image is a pdf then you can use pdftk to join them together.
Works like a charm and keeps the vectorial text in pdf.
Doesn't appear to be available in the default repos any more?
Try PDF Chain:
PDF Chain is a graphical user interface for the PDF Toolkit (PDFtk). The GUI supports all common features of the command line tool in a comfortable way.
You can install it either from the default repos, or get the latest and greatest from PDF Chain PPA.
sudo apt-get install pdfchain
Or PDF Mod:
PDF Mod is a simple application for modifying PDF documents.
You can reorder, rotate, and remove pages, export images from a document, edit the title, subject, author, and keywords, and combine documents via drag and drop.
sudo apt-get install pdfmod
See also:
But can this concatenate text files, images and PDF files, as in the question?
You can convert the text files (say, Print to PDF) or the images (via `convert`) to PDF, and then use that.
@Garrett - just tried PDF Chain and it works to concatenate pdf files.
For multiple files inside a directory and its subdirectories with different extensions I couldn't find a neat answer, so here it is
convert -quality 85 `find -type f -name '*.png' -or -name '*.jpg' | sort -V` output.pdf
I used command substitution to pass the selected items returned by
find
command as an argument toconvert
command. Unfortunatelysort -n
didn't sort my files correctly so I tried-V
option and it did the trick. Also make sure the name of your files and directories are in natural sort order in advance. For exampledir1, dir2, dir3
notdir1, dir_2, dir3
.Exactly what I needed! Tried multiple tools all had some issue in sorting for example. Perfect!
You can install it via `sudo apt install imagemagick`. Otherwise you don't have the convert command.
Install Master PDF editor. The tool offers creating, merging and extracting PDF files. Check here for details about master PDF editor and installing it on Ubuntu
Master PDF Editor is **not** free.
@Force From their site: The Linux-based version is free for non-commercial use.
@janot Yes, but I don't think it's free.
**It is free** for non-commercial purposes, works great. This is a modern, up-to-date tool, unlike others mentioned here, which are very high voted but are old and rudimentary.
a lot of functions are not allowed in the free version
This is the solution i used to convert multiple TIFFs to PDFs.
I had to create more than 6.000 PDFs starting from 30.000 tiffs.
convert
estimate time: 6 to 7 hours.
I usedtiffcp
andtiff2pdf
, they took few seconds.$ tiffcp 1.tiff 2.tiff ... multi.tiff $ tiff2pdf multi.tiff > final.pdf
This way is really fast because images are not converted, just packed.
Maybe there are some tiff formats that doesn't work so easily, for me it worked perfectly.
Hope it helps.
Hrm, my input tif files are 160M, but the pdf generated by tiff2pdf is about 820M. Not sure if this is really "just packing" things.
I can't believe nobody has mentioned latex (tex) yet. It is specifically designed for producing documents, and can combine text, images, and PDFs into a 'master' document (without any degradation of quality). It is a full suite of libraries and an extensible markup language, basically - it's been around since forever and highly used in the scientific community, still.
Technically, it's a typesetting language.
This seems more a comment then an answer... please review http://askubuntu.com/help/how-to-answer
Probably because nobody expected the OP's question to be about creating a day job-level work flow. Talk about using a nuke to start a camp fire! (I am a TeX fan, BTW, but I would *never* use it for this purpose.)
Adding on the community answer above, you can do
convert 'ls *.jpg -tr'
. To force the PDF file to have the images in chronological order.Try LaTeX with
pdflatex
.I had never used it before but it took me about 10 minutes to start making .PDFs with it and about 40 minutes to get them customized exactly as I wanted. I included the best formatting guides I found, at the end.
sudo apt-get install pdflatex && sudo apt-get install texlive
Basically you create one
.tex
file - for examplehello.tex
- with the LaTeX language, then runpdflatex hello.tex
on that file and it will generate the PDF. The basics of the language can be found here: http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/Here is a barebones example
.tex
file:\documentclass[a4paper,10pt]{article} \begin{document} {\footnotesize YOUR TEXT HERE YOUR TEXT HERE } \end{document}
Optional extra formatting:
To add images: https://www.sharelatex.com/learn/Inserting_Images
For different font sizes: https://www.sharelatex.com/learn/Font_sizes,_families,_and_styles
For different fonts: https://www.sharelatex.com/learn/Font_typefaces
To change page size and margins when using
pdflatex
:\usepackage[pass,paperwidth=148mm,paperheight=210mm,margin=5mm]{geometry}
For multi-page pdf:
Convert all files to pdf, then join using a pdf writer eg. pdftk, pdfill, Microsoft Print to PDF, CutePDF, etcFor single-page pdf:
Convert all files to images eg. PNG, named in sequence. Then join to one page with image converter eg. imgconvimgconv.exe -append *.png out2.pdf
(for vertical)
imgconv.exe +append *.png out2.pdf
(for sideways)There might be some converters that can manipulate in other formats or even process with native input formats before outputting to pdf. All programs mentioned here are free.
License under CC-BY-SA with attribution
Content dated before 6/26/2020 9:53 AM
Radu Rădeanu 7 years ago
Take a look at this answer: http://askubuntu.com/a/302927/147044