Manipulation · Ruby
Merge PDF files in Ruby
Combine, split, reorder and rotate PDF pages from Ruby. rust-pdf parses each document into an editable model, renumbers and remaps every object correctly on merge, and rebuilds a clean page tree on output.
Why Ruby needs this
Prawn generates beautiful PDFs but has no PDF/A, no digital signatures, no AES-256 and no PDF/UA, so the regulated features have simply been missing from Ruby.
Merging and splitting are list operations on a flat page order: append another document, extract a subset, reverse, rotate or delete pages, then save. Because the parser handles classic and cross-reference streams, object streams and encrypted input, it works on real-world files, not just ones it wrote itself.
- Merge whole documents, extract page subsets, reorder with a permutation, rotate or delete pages.
- Objects are renumbered and references deep-remapped, so merged files stay valid.
- Reads classic and xref streams, object streams and RC4 / AES encrypted input.
Merge PDFs in Ruby with rust-pdf
Install the package, then call the same idiomatic API every rust-pdf binding shares. The snippet below is real Ruby code from the reference docs.
a = RustPdf::EditableDoc.load_file("a.pdf")
b = RustPdf::EditableDoc.load_file("b.pdf")
a.merge(b) # a now has a's pages followed by b's
a.rotate_page(0, 90)
a.reorder_pages((0...a.page_count).to_a.reverse)
a.save("merged.pdf")
b.close
subset = a.extract_pages([0, 2]) # pages 1 and 3
subset.save("subset.pdf")
subset.close
a.close
This is part of the free tier in Ruby. No license required.
Full Ruby reference in the documentation.
Merging in Ruby: FAQ
Can I merge more than two PDFs in Ruby?
Yes. Load each document and call merge for each one; pages are appended in order. You can then reorder, rotate or extract any subset before saving.
Does merging keep the files valid?
Yes. On merge every object from the other document is renumbered and its references are deep-remapped, and the real page tree is rebuilt on output, so the result passes qpdf and mutool.
Is merging free?
Yes. Loading, merging, splitting, reordering and text extraction are all part of the free tier in Ruby. You only need a license for the corporate features such as PDF/A, signatures and encryption.
Merge PDF Files in Ruby
One Rust core, the same output across every language. Prototype for free, license the corporate features when you ship.