Validez un PDF/A
checkpdfa
POST https://tesseractor.com/api/v1/checkpdfa?login=&password=
login | Votre code d'identification. |
---|---|
password | Votre mot de passe. |
multipart/form-data | |
file | Contenu du PDF en binaire. |
profile | Niveau de conformité. |
Mettez profile
à 1a
, 1b
, 2a
, 2b
, 2u
, 3a
, 3b
, 3u
ou 4
.
$ curl -D - -X POST "https://tesseractor.com/api/v1/checkpdfa?login=abcdef&password=ABCDEF" -F "profile=2b" -F "file=@fox.pdf"
{"status":"fail","data":{"rules":["6.2.4.3-2","6.6.2.1-1"]}}
Téléchargez le code des fonctions sendpost
et file_mime_type
de la librairie iZend.
Copiez les fichiers dans l'espace de votre application.
NOTE : Reportez-vous à la page Appelez l'API du service pour une description des fonctions sendpost
et file_mime_type
.
Ajoutez le fichier checkpdfa.php avec le contenu suivant :
- require_once 'sendhttp.php';
- require_once 'filemimetype.php';
Charge le code des fonctions sendpost
et file_mime_type
.
- function checkpdfa($login, $password, $file, $profile='2b') {
Définit la fonction checkpdfa
.
$login
est votre code d'identification. $password
est votre mot de passe.
$file
est le chemin d'accès du fichier PDF à valider.
$profile
est le niveau de conformité à vérifier, i. e. '1a'
, '1b'
, '2a'
, '2b'
, '2u'
, '3a'
, '3b'
, '3u'
ou '4'
.
- $curl = 'https://tesseractor.com/api/v1/checkpdfa' . '?' . 'login=' . urlencode($login) . '&' . 'password=' . urlencode($password);
Met $curl
à l'URL de l'action checkpdfa avec le code d'identification et le mot de passe du compte de l'utilisateur.
$login
et $password
doivent être échappés.
- $args = array(
- 'profile' => $profile,
- );
Prépare la liste des arguments du POST : profile
- le niveau de conformité à vérifier.
- $files=array('file' => array('name' => basename($file), 'tmp_name' => $file, 'type' => file_mime_type($file)));
Prépare la liste des fichiers attachés au POST : file
- le PDF à valider avec le nom du fichier, le chemin d'accès au fichier et son type MIME.
- $response=sendpost($curl, $args, $files);
Envoie la requête HTTP avec sendpost
.
Les arguments login
et password
sont déjà dans $curl
.
- if (!$response or $response[0] != 200) {
- return false;
- }
Si $response
vaut false
, le serveur est inaccessible.
Si $response[0]
ne contient pas le code de retour HTTP 200 Ok, une erreur d'exécution s'est produite.
En cas d'erreur, checkpdfa
retourne false.
- $r=json_decode($response[2], true);
Décode les données retournées en JSON.
- if ($r['status'] == 'success') {
- return true;
- }
Retourne true
si le document est un PDF/A valide pour le niveau de conformité spécifié.
- if ($r['status'] == 'fail') {
- return $r['data']['rules'];
- }
Retourne un tableau des codes des règles qui ne sont pas respectées si le PDF n'est pas un PDF/A valide pour le niveau de conformité spécifié.
- return false;
- }
Retourne false
en cas d'erreur.
EXEMPLE
En supposant que vous avez sauvé les fichiers sendhttp.php, filemimetype.php et checkpdfa.php dans le répertoire courant, lancez PHP en mode interactif, chargez la fonction checkpdfa
et appelez-la avec votre code d'identification et votre mot de passe, le chemin d'accès à un fichier PDF et un niveau de conformité en argument :
$ php -a
php > require_once 'checkpdfa.php';
php > print_r(checkpdfa('abcdef', 'ABCDEF', 'file.pdf', '2b'));
Array
(
[0] => 6.2.4.3-2
[1] => 6.6.2.1-1
)
php > quit
Le document n'est pas valide. Les règles 6.2.4.3-2 et 6.6.2.1-1 ne sont pas respectées.
VOIR AUSSI
Appelez l'API du service, Générez un PDF/A, Recherchez des virus
Commentaires
Pour ajouter un commentaire, cliquez ici.