Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.7.0+

Extract Text from a PDF that Forbids Copying

See more PDF Text Extraction Examples

Demonstrates a PDF that opens without a password but whose permissions do not allow copying text. The "text", "markdown", "search" and "tables" operations fail with that reason; "assess" always works. Loading the PDF with the OwnerPassword property set grants owner rights, and extraction works.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // The PDF used in this example (owner password: owner-secret; copying not permitted) is available at no_copy_permission.pdf

  final pdf = CkPdf();
  final json = CkJsonObject();
  final jsonOut = CkJsonObject();

  // The PDF opens without a password.
  try {
    pdf.loadFile('qa_data/pdf/no_copy_permission.pdf');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Extracting text is refused, because the PDF's permissions do not allow copying.
  try {
    pdf.extractText('text', json, jsonOut);
  } on ChilkatException catch (e) {
    print('Extraction refused: ${e.lastErrorText}');
  }

  // "assess" reports only counts and ratings, never text, so it is always allowed.
  try {
    pdf.extractText('assess', json, jsonOut);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('rating: ${jsonOut.stringOf('quality.rating')}');

  // Load with the owner password to get owner rights, which include copying.
  pdf.ownerPassword = 'owner-secret';
  try {
    pdf.loadFile('qa_data/pdf/no_copy_permission.pdf');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  try {
    pdf.extractText('text', json, jsonOut);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print(jsonOut.stringOf('text'));

  // Sample output:

  // Extraction refused: ChilkatLog:
  //   ExtractText:
  //     ...
  //       The PDF's permissions do not allow copying or extracting text (load it with the owner password to extract).
  //     ...
  // rating: good
  // Visitor Leaflet
  // 
  // Welcome to the harbor lighthouse. The tower is open on weekends from July to September.
  // 
  // Please keep to the marked paths and do not climb on the breakwater.
  // 
  // The lantern room is closed in high winds.
}