SplitDocument

Create multiple new PDF-documents by extracting pages from the source PDF-document.

func SplitDocument(document *Document, pagerange string) ([]*Document, error)

Parameters:

  • document - pointer to document
  • pagerange - string that defines how to split the PDF-document. Each segment, separated by ;, specifies the page range for a separate output PDF document. The page range syntax supports individual pages, ranges, and open-ended intervals. For example: “1,3,5;7-10”, “-3;4-”, or “1;2-3;5-”

Return:

  • []*Document - slice of new PDF-documents, each containing the pages defined by a corresponding segment of the specified page range
  • error - contains an error or nil if absent

Example:

package main

import (
	"fmt"
	"log"
	"github.com/aspose-pdf/aspose-pdf-go-cpp"
)

func main() {
	// Open(filename string) opens a PDF-document with filename
	pdf_split, err := asposepdf.Open("sample.pdf")
	if err != nil {
		log.Fatal(err)
	}
	// Close() releases allocated resources for PDF-document
	defer pdf_split.Close()

	// SplitDocument(document *Document, pagerange string) creates multiple new PDF-documents
	pdfs, err := asposepdf.SplitDocument(pdf_split, "1-2;3;4-")
	if err != nil {
		log.Fatal(err)
	}

	// Save each split PDF-document as a separate file
	for i, pdf := range pdfs {
		defer pdf.Close()
		filename := fmt.Sprintf("sample_SplitDocument_part%d.pdf", i+1)
		// SaveAs(filename string) saves previously opened PDF-document with new filename
		err := pdf.SaveAs(filename)
		if err != nil {
			log.Fatal(err)
		}
	}
}