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)
}
}
}