You are here

public function FillPdfServicePdfBackend::parseStream in FillPDF 5.0.x

Same name and namespace in other branches
  1. 8.4 src/Plugin/PdfBackend/FillPdfServicePdfBackend.php \Drupal\fillpdf\Plugin\PdfBackend\FillPdfServicePdfBackend::parseStream()

Parse a PDF and return a list of its fields.

@todo Replace output array by a value object.

Parameters

string $pdf_content: The PDF template whose fields are to be parsed. This should be the contents of a PDF loaded with something like file_get_contents() or equivalent.

Return value

string[][] An array of associative arrays. Each sub-array contains a 'name' key with the name of the field and a 'type' key with the type. These can be iterated over and saved by the caller.

Overrides PdfBackendInterface::parseStream

See also

\Drupal\fillpdf\Plugin\PdfBackendInterface::parseFile()

1 call to FillPdfServicePdfBackend::parseStream()
FillPdfServicePdfBackend::parseFile in src/Plugin/PdfBackend/FillPdfServicePdfBackend.php
Parse a PDF and return a list of its fields.

File

src/Plugin/PdfBackend/FillPdfServicePdfBackend.php, line 42

Class

FillPdfServicePdfBackend
FillPDF Service PdfBackend plugin.

Namespace

Drupal\fillpdf\Plugin\PdfBackend

Code

public function parseStream($pdf_content) {
  $result = $this
    ->xmlRpcRequest('parse_pdf_fields', base64_encode($pdf_content));
  if ($result->error == TRUE) {

    // @todo: Throw an exception, log a message etc.
    return [];
  }

  // after setting error message
  $fields = $result->data;
  return $fields;
}