Convertir un PDF en TIFF avec une VBScript / Imprimante PDF
Dans cet exemple, vous apprendrez à convertir un document PDF existant en TIFF. Le principe illustré dans cet exemple peut être utilisé pour créer d'autres types de fichiers supplémentaires. Il peut facilement être modifié pour convertir des fichiers PDF en fichiers JPEG, PNG ou BMP, par exemple.
L'idée est que nous utilisons la méthode PrintPdf
dans la classe utilitaire. Cette méthode est disponible dans les assemblys COM et Microsoft .NET. De nombreux paramètres peuvent être utilisés, comme vous pouvez le voir dans le code source ci-dessous.
Avant d'appeler la méthode PrintPdf, le code crée un runonce.ini pour contrôler l'imprimante PDF. Les paramètres du fichier runonce.ini contrôlent le format de sortie, le nom du fichier et le fichier d'état et masquent les boîtes de dialogue. Il définit également un exemple de filigrane qui rend la date et l'heure actuelles de la conversion au format TIFF.
Avant la création du travail d'impression, l'ancien fichier d'état et le fichier de sortie sont supprimés. Après le travail d'impression, le code attend un nouveau fichier d'état pour déterminer si l'opération a réussi ou échoué.
Option Explicit Dim pdfFileName, printerSelection, printToPrinterName Dim pdfPrinterName, showProgress, bitsPerPixel Dim documentName, maxResolution, scaleToFit Dim firstPage, lastPage, timeoutMilliseconds Dim currentdir, util, fso, settings Dim printername, statusfile, outFileName Dim resolution, device resolution = 300 device = "tiff24nc" Rem -- Get current path of this script. Set fso = CreateObject("Scripting.FileSystemObject") currentdir = fso.GetAbsolutePathName(".") Rem -- Create the COM helper object. Set util = CreateObject("pdf7.PdfUtil") Rem -- Create the COM settings object to control the printer. set settings = CreateObject("pdf7.PdfSettings") printername = util.DefaultPrinterName pdfFileName = currentdir & "\test page.pdf" outFileName = currentdir & "\test page.tiff" Rem -- Set parameters for the conversion Rem -- Settings are documented at https://www.7-pdf.com/products/pdf-printer/documentation/settings statusfile = currentdir & "\status.ini" settings.PrinterName = printername settings.SetValue "Output", outFileName settings.SetValue "Device", device settings.SetValue "ResX", resolution settings.SetValue "ResY", resolution settings.SetValue "TextAlphaBits ", "4" settings.SetValue "GraphicsAlphaBits ", "4" settings.SetValue "WatermarkText", Now settings.SetValue "WatermarkColor", "#FF9900" settings.SetValue "ShowSettings", "never" settings.SetValue "ShowPDF", "no" settings.SetValue "ShowProgress", "no" settings.SetValue "ShowProgressFinished", "no" settings.SetValue "ConfirmOverwrite", "no" settings.SetValue "StatusFile", statusfile settings.SetValue "StatusFileEncoding", "unicode" Rem -- Write settings to the runonce.ini to control the next print job. settings.WriteSettings True Rem -- Remove old output and status files if fso.FileExists(outFileName) then fso.DeleteFile(outFileName) if fso.FileExists(statusfile) then fso.DeleteFile(statusfile) Rem -- Send the PDF to the printer printerSelection = "specific" pdfPrinterName = printername printToPrinterName = printername showProgress = False bitsPerPixel = 24 documentName = "Example" maxResolution = resolution scaleToFit = True firstPage = 0 lastPage = 0 timeoutMilliseconds = 30000 util.PrintPdf pdfFileName, printerSelection, printToPrinterName, _ pdfPrinterName, showProgress, bitsPerPixel, documentName, _ maxResolution, scaleToFit, firstPage, lastPage, timeoutMilliseconds Rem -- Wait for the status file. Rem -- The printing has finished when the status file is written. if util.WaitForFile(statusfile, 30000) then wscript.echo "Print job finished." else wscript.echo "Print job timed out." end if
Vous pouvez télécharger et exécuter l'exemple vous-même. Vous pouvez trouver le fichier dont vous avez besoin ici.
Téléchargements
appendice | taille |
---|---|
Télécharger l'exemple de code | 174.5 KB |