utilvo-pdf-merger
Lightweight, zero-dependency library for inspecting PDF binary headers, counting /Type /Page objects, validating cross-reference (xref) tables, and merging multiple PDF byte streams into a single document with renumbered indirect objects.
Installation
Node.js (npm)
npm install utilvo-pdf-merger
Python (PyPI)
pip install utilvo-pdf-merger
Rust (Cargo)
cargo add utilvo-pdf-merger
Go
go get github.com/utilvo/utilvo-pdf-merger
Quick Start
JavaScript / TypeScript
import { inspectPdf, countPdfPages, mergePdfBuffers } from 'utilvo-pdf-merger';
const info = inspectPdf(pdfBytes);
console.log(info.version, info.pageCount, info.isValid);
const mergedBytes = mergePdfBuffers([pdfBufferA, pdfBufferB]);
Python
from utilvo_pdf_merger import inspect_pdf, count_pdf_pages, merge_pdf_bytes
info = inspect_pdf(pdf_bytes)
print(info["version"], info["page_count"], info["is_valid"])
merged = merge_pdf_bytes([pdf_a, pdf_b])
API Reference
| Function | Parameters | Returns | Description |
|---|---|---|---|
inspectPdf / inspect_pdf |
bytes: Uint8Array | bytes |
PdfInspectionResult |
Extracts PDF specification version (1.4–2.0), page count, startxref offset, and %%EOF integrity status. |
countPdfPages / count_pdf_pages |
bytes: Uint8Array | bytes |
number |
Counts leaf /Type /Page dictionary entries (excluding /Type /Pages parent nodes). |
mergePdfBuffers / merge_pdf_bytes |
documents: Array<Uint8Array | bytes> |
Uint8Array | bytes |
Extracts page content streams and constructs a consolidated PDF document with a unified /Pages root and rebuilt xref table. |
License
MIT