On this page
Guides
Configure Measurement Properties
Setting the measurement scale and precision by configuring the measureInfo
property in CPDFLineAnnotation
, CPDFPolylineAnnotation
, and CPDFPolygonAnnotation
annotations.
Below is an example code for configuring measurement properties:
swift
// Get the page object where the annotation needs to be created
if let page = document?.page(at: 0) {
// Create a line annotation
var anotation = CPDFLineAnnotation(document: document)
// Set the start and end points
anotation?.startPoint = CGPoint(x: 350, y: 270)
anotation?.endPoint = CGPoint(x: 260, y: 370)
// Create measurement properties, set measurement scale and precision (default scale 1 cm = 1 cm)
var measureInfo = CPDFDistanceMeasureInfo()
measureInfo.rulerBase = 1.0
measureInfo.rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfCm
measureInfo.rulerTranslate = 1.0;
measureInfo.rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfKm
// Set precision to 0.01
measureInfo.precision = CPDFMeasureConstants.sharedInstance().precisionValueTwo
// Set the length of the leader line at both ends (this property is unique to CPDFDistanceMeasureInfo)
measureInfo.leadLength = 5.0
// Set the measurement properties for the line annotation
// Set MeasureInfo: This information will not be effective until it is added to the page
anotation?.measureInfo = measureInfo;
// Update the appearance of the annotation to display it on the document
page.addAnnotation(anotation!)
}
objective-c
// Get the page object where the annotation needs to be created
CPDFPage *page = [document pageAtIndex:0];
// Create a line annotation
CPDFLineAnnotation *anotation = [[CPDFLineAnnotation alloc] initWithDocument:document];
// Set the start and end points
anotation.startPoint = CGPointMake(350, 270);
anotation.endPoint = CGPointMake(260, 370);
// Create measurement properties, set measurement scale and precision (default scale 1 cm = 1 cm)
CPDFDistanceMeasureInfo *measureInfo = [[CPDFDistanceMeasureInfo alloc] init];
measureInfo.rulerBase = 1.0;
measureInfo.rulerBaseUnit = [CPDFMeasureConstants sharedInstance].cpdfCm;
measureInfo.rulerTranslate = 1.0;
measureInfo.rulerTranslateUnit = [CPDFMeasureConstants sharedInstance].cpdfKm;
// Set precision to 0.01
measureInfo.precision = [CPDFMeasureConstants sharedInstance].precisionValueTwo;
// Set the length of the leader line at both ends (this property is unique to CPDFDistanceMeasureInfo)
measureInfo.leadLength = 5.0;
// Set the measurement properties for the line annotation
// Set MeasureInfo: This information will not be effective until it is added to the page
[anotation setMeasureInfo:measureInfo];
// Update the appearance of the annotation to display it on the document
[page addAnnotation:anotation];
Supported Measurement Units
You can set the units for measuring distances on the PDF file and the units for real-world objects using measureInfo.rulerBaseUnit
and measureInfo.rulerTranslateUnit
. The supported units and their corresponding constant values are listed in the table below:
Unit | Constant | Value |
---|---|---|
Point | [CPDFMeasureConstants sharedInstance].cpdfPt | pt |
Inch | [CPDFMeasureConstants sharedInstance].cpdfIn | in |
Millimeter | [CPDFMeasureConstants sharedInstance].cpdfMm | mm |
Centimeter | [CPDFMeasureConstants sharedInstance].cpdfCm | cm |
Meter | [CPDFMeasureConstants sharedInstance].cpdfM | m |
Kilometer | [CPDFMeasureConstants sharedInstance].cpdfKm | km |
Foot | [CPDFMeasureConstants sharedInstance].cpdfFt | ft |
Yard | [CPDFMeasureConstants sharedInstance].cpdfYd | yd |
Mile | [CPDFMeasureConstants sharedInstance].cpdfMi | mi |