PdfProjection

interface PdfProjection

Projection between the normalized PDF coordinates and raw PDF coordinates. To retrieve an instance of this, use getPdfProjection. For more information on coordinate spaces and coordinate conversions, please refer to our Coordinate Space Conversion online guide.

When working with coordinates on a PDF, PSPDFKit for Android will use a normalized coordinate space for simplified handling. This normalized coordinate space follows the WYSWIG principle ("What you see is what you get"). Within the normalized coordinate space, the coordinate `[0,0]` denotes the bottom left corner of the displayed page, and `[page width, page height]` denotes the top right corner of the displayed page. Note that PSPDFKit already accounts for any rotation that might be applied to the page, as well as page cropping using the page's `CropBox`. This means that `[0,0]` will always mark the bottom left corner of a page, independent of its rotation or cropping.

While normalized coordinates greatly simplify coordinate handling for most scenarios, some use cases might require access to raw PDF coordinates. For those cases, this projection can be used to convert between PDF coordinates used by PSPDFKit, and the raw PDF coordinates that will be written into the underlying PDF document.

Functions

Link copied to clipboard
abstract fun getNormalizedToRawTransformation(@IntRange(from = 0) pageIndex: Int): Matrix
Returns a transformation matrix for converting normalized page coordinates (for the given pageIndex) to raw page coordinates.
Link copied to clipboard
abstract fun getRawToNormalizedTransformation(@IntRange(from = 0) pageIndex: Int): Matrix
Returns a transformation matrix for converting raw page coordinates (for the given pageIndex) to normalized page coordinates.
Link copied to clipboard
abstract fun toNormalizedPoint(@NonNull point: PointF, @IntRange(from = 0) pageIndex: Int): PointF
Maps a raw PDF point to a normalized PDF point.
Link copied to clipboard
abstract fun toPdfRect(@NonNull rect: RectF, @IntRange(from = 0) pageIndex: Int): RectF
Maps a raw PDF rect to a normalized PDF rect.
Link copied to clipboard
abstract fun toRawPoint(@NonNull point: PointF, @IntRange(from = 0) pageIndex: Int): PointF
Maps a normalized PDF point to a raw PDF point.
Link copied to clipboard
abstract fun toRawRect(@NonNull rect: RectF, @IntRange(from = 0) pageIndex: Int): RectF
Maps a normalized PDF rect to a raw PDF rect.