public function LocalServerPdfBackend::parseStream in FillPDF 5.0.x
Same name and namespace in other branches
- 8.4 src/Plugin/PdfBackend/LocalServerPdfBackend.php \Drupal\fillpdf\Plugin\PdfBackend\LocalServerPdfBackend::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 LocalServerPdfBackend::parseStream()
- LocalServerPdfBackend::parseFile in src/
Plugin/ PdfBackend/ LocalServerPdfBackend.php - Parse a PDF and return a list of its fields.
File
- src/
Plugin/ PdfBackend/ LocalServerPdfBackend.php, line 85
Class
- LocalServerPdfBackend
- LocalServer PdfBackend plugin.
Namespace
Drupal\fillpdf\Plugin\PdfBackendCode
public function parseStream($pdf_content) {
$request = [
'pdf' => base64_encode($pdf_content),
];
$json = json_encode($request);
$fields = [];
try {
$fields_response = $this->httpClient
->post($this->configuration['local_service_endpoint'] . '/api/v1/parse', [
'body' => $json,
'headers' => [
'Content-Type' => 'application/json',
],
]);
} catch (RequestException $request_exception) {
if ($response = $request_exception
->getResponse()) {
\Drupal::messenger()
->addError($this
->t('Error %code. Reason: %reason.', [
'%code' => $response
->getStatusCode(),
'%reason' => $response
->getReasonPhrase(),
]));
}
else {
\Drupal::messenger()
->addError($this
->t('Unknown error occurred parsing PDF.'));
}
}
$fields = json_decode((string) $fields_response
->getBody(), TRUE);
return $fields;
}