Pdf et autocad
Si le driver dwg2pdf a été une révolution, la version 2016 à encore amélioré l’export pdf en rendant possible, par exemple l’export d’hyperliens.
Pour ceux qui n’ont pas 2016, ils pourront toujours utiliser cette astuce que j’avais présenté en 2010
Pour le problème de la suppression des zones blanches, vous trouver ce qu’il vous faut avec cette solution de VincenTP
Qu’est-ce-qui manque encore ?
Autocad ne permet toujours pas d’exporter des formulaires, c’est à dire des zones de texte, des cases à cocher, des boutons avec des javascripts …
L’idée de base
Un peu comme dans la solution développée pour les hyperliens, créer une entité qui servira de marqueur pour un post traitement.
Le post traitement sera un exécutable qui transformera le pdf
- Un rectangle dans un calque $CheckBox deviendra un composant Checkbox
- Ou un texte du style $CB servira pour dimensionner un checkbox
Apparemment les anciennes versions d’acrobat reader étaient livrées avec une interface com, AcroPDFLib. Celle-ci ne permettait que la visualisation ou l’impression, mais elle n’est plus déployée avec les dernières versions d’acrobat
A ma connaissance, aucune dll de pdf architect n’est reconnue comme une référence valable
Il y a bien un projet d’utilisation de ghostscript en .net, mais au final, c’est une interface net pour passer des arguments en ligne de commande à ghostscrip
Une vraie librairie pour .net, avec des exemples simples : je pars la dessus …
Installer pdf clown et ses exemples
Il suffit de décompresser l’archive dans le répertoire projet. Ne pas oublier d’ajouter l’archive « bugfix snapshot: source code » , en écrasant les fichier du même nom
Puis pour essayer les exemples, il faut lancer une 1ère fois le run.bat, ensuite on pourra directement lancer PDFClownCLISamples.exe
Le principe :
Les fichiers sources sont dans :
C:\Users\Gerald\Documents\Visual Studio 2013\Projects\PDFClown\main\res\samples\input
Les fichiers transformés dans:
C:\Users\Gerald\Documents\Visual Studio 2013\Projects\PDFClownV2\dotNET\pdfclown.samples.cli\output
Il suffit de les placer dans input/pdf, ils seront automatiquement reconnus
Par un système que je ne connais pas, chaque .cs est ajouté à un menu (il faut qu'il ait le même namespace, et un nom de classe unique) il suffit de lancer le débogage, qui ouvre une fenêtre dos, où l’on choisit le numéro du programme que l'on veut déboguer.
Première tentative : Repérer une entité par son calque
C’était ma 1ère idée, un rectangle dans un calque $CheckBox deviendrait un composant Checkbox
Je suis donc parti de contentscanningsample, et je l’ai modifié
Avec cette version on a un scan total du contenu, mais impossible de trier par le calque
J’ai fait des tests à partir de LayerEditingSample.cs, mais sans succès.
La méthode que décrit l’auteur pour identifier un calque (avec MarkedContent
) ne marche pas chez moi
On trouve sur le site de pdf clown un exemple en vb, que je n’ai pas encore réussi à décortiquer : son auteur en semble satisfait
Deuxième tentative : Repérer une entité par une chaine de caractère
C’est de loin la plus fructueuse.
Je suis parti de l’exemple TextHighlightSample.cs, que j’ai adapté à mon besoin sous TextHighlightSampleGx.cs
Le principe est simple, je cherche le texte .x' (qui a l’avantage de former un carré, et qui a peu de chance d’être utilisé dans une phrase courante
J’en extrais une box, que je transforme en checkbox
Mon idée de départ était que je peux identifier la checkbox (pour un rapport ou une action) en commençant avec le texte .x’, et en suivant avec toute info utile : « .x’ChoixN°1_Oui » par exemple
Dans mon exemple de code, j’ai ajouté également un javascript sur action
- Les pdf générés à partir d’Autocad créent des textes sous forme graphique sans raisons apparente, donc on est pas sûr que tous ses textes soient exportés en tant que text dans le pdf
- Les textes des pdf générés à partir d’Autocad ne sont pas toujours reconnus par pdf clown
Illustration en utilisant l’exemple TextInfoExtractionSample :
Figure 1 les textes graphique sont surlignés
Figure 2 Les textes non reconnus sont surlignés
Certaines entités, bien que non concernées par le traitement, peuvent disparaitre ou changer de couleur
Le fichier pdf de base
Le fichier pdf après traitement
Dans cet exemple, on voit que les regards 1 à 4 on leur étiquette .x’ s’est convenablement transformée en checkbox, mais la vanne 1 est passée du noir au cyan …
Malgré des débuts prometteurs, je ne suis pas arrivé à mes fins avec pdfclown
Il me reste à explorer plus avant la sélection par calque, mais d’autres écueils, comme la disparition d’entités, restent à redouter.
Pdfclown annonce depuis 1an une version 0.2.0 très prometteuse, notamment pour la recherche par calques.
Il faut espérer qu’elle sorte rapidement