Dans
ce nouvel article, je vais vous présenter un module que j’ai crée afin
de répondre à un besoin exprimé par un certain nombre de clients. Mon
module permet de convertir un fichier PDF en un fichier TIF ou JPEG sous
ZwCAD.
Pour
pouvoir réaliser la conversion d’un fichier PDF en un autre format,
j’ai utilisé le SDK GFL développé par la société XnSoft.
Vous pouvez télécharger le SDK en suivant le lien suivant: http://www.xnview.com/fr/GFL/#downloads
Cependant
pour pouvoir convertir des fichiers à l’aide de ce SDK, il faut
installer les librairies Ghotscript. Pour ceux qui ne connaissent pas
Ghostscript, il s’agit d’un interprète qui offre la possibilité de
convertir des fichiers PostScript vers de nombreux formats raster, en
permettant de les visualiser et de les imprimer.
Il permet de réaliser les mêmes types de conversion pour les fichiers PDF.
Ces logiciels sont totalement gratuit.
Maintenant
que nous avons tout les outils installés, nous allons voir comment
permettre la conversion d’un fichier PDF en un fichier TIF.
Tout d’abord, nous allons créer une boite de dialogue semblable à celle-ci:
Dans ma classe principale, je définis juste des options à ma boite de dialogue:
Class Program
<CommandMethod("PDFTOTIF")> _
Public Sub Main()
Dim dlName As String = "Selectionnez votre fichier PDF"
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor
Dim dlg As recherchepdf = New recherchepdf()
dlg.ComboBoxCompression.Items.Add("TIF")
dlg.ComboBoxCompression.Items.Add("JPEG")
ZcadAp.ShowModalDialog(dlg)
End Sub
End Class
Ensuite,
je configure ma fenêtre parcourir à partir de ma boite de dialogue.
Lors du clic sur le bouton parcourir, je souhaite que ma fenêtre souvre
directement dans le disque “C:”, et qu’il ouvre seulement des fichiers
PDF.
Private Sub Button_Parcourir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Parcourir.Click
Dim doc As Document = ZwSoft.ZwCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor
Dim selectedFile As String = String.Empty
Dim ofd As OpenFileDialog = New OpenFileDialog()
ofd.InitialDirectory = "c:\"
ofd.Filter = "pdf files (*.pdf)|*.pdf"
ofd.FilterIndex = 2
ofd.RestoreDirectory = True
If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
selectedFile = ofd.FileName
End If
If (selectedFile IsNot Nothing) Then
' Pour insérer l'emplacement du fichier choisi dans la TextBox ‘selectedFile’
TextBoxChemin.Text = selectedFile
End If
End Sub
Désormais
nous allons voir comment utiliser le SDK. En un premier temps,
n’oublliez d’ajouter la référence à la dll ‘GflAx.dll’ à partir de
l’onglet ‘COM’ ou en allant la chercher dans le dossier ‘GflSDK’.
Dim chemin As String = Mid(Me.TextBoxChemin.Text, 1, Me.TextBoxChemin.TextLength - 4)
Dim g As New GflAx.GflAx
g.Page = 1
g.EpsDpi = FormatNumber(Convert.ToInt16(dlg.TextBoxDPI.Text))
g.LoadBitmap(chemin & ".pdf")
Select Case Me.ComboBoxCompression.SelectedItem.ToString
Case "TIF"
g.SaveFormat = GflAx.AX_SaveFormats.AX_TIFF
g.EnableLZW = True
g.UseTransparency = True
g.SaveBitmap(chemin & ".tif")
chemin = Replace(chemin, "\", "\\")
doc.SendStringToExecute("(command ""_.-image"" ""_attach"" """ & chemin & ".tif"") ", True, False, False)
Case "JPEG"
g.SaveFormat = GflAx.AX_SaveFormats.AX_JPEG
g.SaveBitmap(chemin & ".jpg")
chemin = Replace(chemin, "\", "\\")
doc.SendStringToExecute("(command ""_.-image"" ""_attach"" """ & chemin & ".jpg"") ", True, False, False)
Pour
expliqué, je créer tout d’abord une variable ‘chemin’ qui va contenir
le chemin du fichier PDF mais sans l’extension PDF: car je souhaite
enregistrer le fichier TIF dans le même dossier que le fichier PDF (un
peu plus tard dans le code).
g.SaveBitmap(chemin & ".tif")
Ainsi je crée un fichier TIF portant le même nom que le fichier PDF et dans le même dossier.
Ensuite, je crée une nouvelle instance d’une classe du SDK utilisé.
Dim g As New GflAx.GflAx
Cette
instance me sert donc à définir les options de mon fichier TIF: le
fichier PDF à convertir, le fichier TIF à générer, le nombre de DPI (ici
je convertis le nombre contenu dans ma textbox en entier afin d’être
sur qu’il soit bien reconnu).
Après,
je filtre le choix du format en fonction de l’élément sélectionné dans
le ComboBox: soit je génère un fichier TIF soit un fichier JPEG.
Enfin, je lance une commande Lisp, qui va charger le fichier qui lui est passé en paramètre.
Pour
pouvoir renseigner le chemin du fichier TIF ou JPEG, vous devez
remplacer chaque \ par \\ : \\ sont interpretés comme \. C’est pourquoi
j’ai utilisé la ligne de code suivante:
chemin = Replace(chemin, "\", "\\")
Maintenant, nous avons finis de coder, il ne nous reste plus qu’à tester le module.
Après validation de la fenêtre, vous avez accès au dessin ZwCAD où l'on vous demande de renseigner le point d'insertion de l'image, la taille de l'image, un facteur d'échelle et l'angle de rotation.
Après avoir validé ces données, nous avons notre image qui s'affiche à l'écran:
Aucun commentaire:
Enregistrer un commentaire