API Reference

Complete class and method reference for DroidPDF.

com.droidpdf.core

PdfDocument

MethodDescription
PdfDocument(outputStream)Create a new PDF for writing
PdfDocument(reader)Open an existing PDF for reading
PdfDocument(reader, outputStream)Open for modification
addNewPage(pageSize?)Add a blank page (default A4)
getPage(index)Get page by 0-based index
numberOfPagesTotal page count
removePage(index)Remove a page
movePage(from, to)Move a page
close()Write and close the document

PdfPage

MethodDescription
width / heightPage dimensions in points
setRotation(degrees)Set rotation (0/90/180/270)
addAnnotation(dict)Add an annotation
addFont(dict)Register a font resource
addXObject(obj)Register an image resource

PageSize

ConstantSize (points)
PageSize.A4595 × 842
PageSize.A3842 × 1191
PageSize.A5420 × 595
PageSize.LETTER612 × 792
PageSize.LEGAL612 × 1008
PageSize(w, h)Custom size

PdfReader

MethodDescription
PdfReader(inputStream)Parse an existing PDF
getObject(objNum)Get a parsed object by number
resolve(obj)Resolve indirect references
getCatalog()Get the document catalog

TextExtractor

MethodDescription
TextExtractor(reader)Create from a PdfReader
extractAll()Extract text from all pages
extractFromPage(index)Extract text from one page
search(query)Search text (case-insensitive)

com.droidpdf.content

PdfFont

MethodDescription
PdfFont.helvetica()Helvetica (standard)
PdfFont.helveticaBold()Helvetica Bold
PdfFont.timesRoman()Times Roman
PdfFont.courier()Courier
PdfFont.createFromTtf(stream)Load TTF font
PdfFont.createFromOtf(stream)Load OTF font
registerOn(page)Register on page, returns name
getTextWidth(text, size)Measure text width in points

com.droidpdf.layout

Document

MethodDescription
Document(pdfDoc, pageSize?)Create layout document
add(element)Add a layout element
setMargins(top, right, bottom, left)Set page margins
close()Finalize and close

Paragraph / Table / Image

See the Text, Images & Tables documentation for usage details.

com.droidpdf.manipulation

PdfMerger

val merger = PdfMerger(outputStream)
merger.merge(inputStream1)          // all pages
merger.merge(inputStream2, 2, 5)    // pages 2-5
merger.close()

PdfSplitter

val splitter = PdfSplitter(inputStream)
splitter.extractPages(1, 3, outputStream)     // pages 1-3
splitter.extractPages(listOf(1,3,5), output)  // specific pages
splitter.splitByPage { page -> getOutputStream(page) }

com.droidpdf.annotations

ClassType
PdfTextAnnotationSticky note
PdfHighlightAnnotationText highlight
PdfUnderlineAnnotationText underline
PdfStrikeoutAnnotationStrikethrough
PdfFreeTextAnnotationText box
PdfStampAnnotationStamp (Approved, Draft, etc.)
PdfSquareAnnotationRectangle
PdfCircleAnnotationCircle / Ellipse
PdfLineAnnotationLine
PdfInkAnnotationFreehand drawing
PdfLinkAnnotationHyperlink

com.droidpdf.forms

ClassType
TextFieldText input
CheckboxFieldCheckbox
RadioButtonFieldRadio button group
DropdownFieldDropdown / Combo box
PdfAcroFormForm field manager

com.droidpdf.security

PdfEncryption.Builder

val encryption = PdfEncryption.Builder()
    .setUserPassword("user123")
    .setOwnerPassword("admin456")
    .setKeyLength(256)         // 128 or 256
    .allowPrinting(true)
    .allowCopying(false)
    .build()