Skip to content
huzpsb edited this page Oct 25, 2026 · 1 revision

Pages

Insert blank pages and remove pages.

Command line

Insert

pdfcpu2 pages insert [-p pageSelection] ['description'] inFile [outFile]

Inserts one blank page before each selected page (mode before, default) or after (-m after — see pdfcpu2 pages insert -h). Without -p, one page is inserted before every existing page.

<description> — defaults "dim:595 842, f:A4":

  • dim: <w> <h> — page size in display units
  • f: — form/paper size, L/P enforce orientation (see Paper)
pdfcpu2 pages insert in.pdf                       # blank page before every page
pdfcpu2 pages insert 'f:A5L' in.pdf --pages 3     # blank A5 landscape before page 3
pdfcpu2 pages insert 'dim: 10 5' in.pdf -u cm     # 10x5 cm separator pages

Remove

pdfcpu2 pages remove -p pageSelection inFile [outFile]
pdfcpu2 pages remove in.pdf out.pdf -p odd       # remove all odd pages
pdfcpu2 pages remove in.pdf out.pdf -p 2,5-      # remove page 2 and everything from 5

Go API

package main

import (
	"context"

	"github.com/huzpsb/pdfcpu2/pkg/api"
	"github.com/huzpsb/pdfcpu2/pkg/pdfcpu"
	"github.com/huzpsb/pdfcpu2/pkg/pdfcpu/model"
)

func main() {
	ctx := context.Background()
	conf := model.NewDefaultConfiguration()

	// Insert one blank page before page 3 (nil pageConf = current page size)
	err := api.InsertPagesFile(ctx, "in.pdf", "out.pdf", []string{"3"}, true, nil, conf)
	if err != nil {
		panic(err)
	}

	// Remove pages
	err = api.RemovePagesFile(ctx, "in.pdf", "out.pdf", []string{"odd"}, conf)
	if err != nil {
		panic(err)
	}

	_ = pdfcpu.DefaultPageConfig() // description-string based configuration
}

before=true inserts before the first selected page; pass false for after. The pageConf *pdfcpu.PageConfiguration parameter controls size/orientation of inserted pages.

Clone this wiki locally