In diesem Beispiel erfahren sie, wie sie ein vorhandenes PDF-Dokument in ein TIFF umwandeln. Das in diesem Beispiel gezeigte Prinzip kann verwendet werden, um noch andere, weitere Dateitypen zu erzeugen. Es kann leicht geändert werden um beispielsweise PDF Dateien in JPEG-, PNG- oder BMP Dateien umzuwandeln.

Die Idee dabei ist, dass wir die PrintPdf Methode in der Utility Klasse verwenden. Diese Methode ist sowohl in der COM- als auch im Microsoft.NET Assembly verfügbar. Es können viele Parameter genutzt werden, wie sie dem unten angegebenen Quellcode entnehmen können.

Bevor die PrintPdf-Methode aufgerufen wird, erstellt der Code eine runonce.ini zum Steuern des PDF Druckers. Die Einstellungen in der Datei runonce.ini steuern das Ausgabeformat, den Dateinamen und die Statusdatei und blenden die Dialogfelder aus. Es definiert auch ein Beispiel-Wasserzeichen, das das aktuelle Datum und die aktuelle Uhrzeit der Umwandlung ins TIFF rendert.

Bevor der Druckauftrag erstellt wird, werden die alte Statusdatei und die Ausgabedatei gelöscht. Nach dem Druckauftrag wartet der Code auf eine neue Statusdatei, um festzustellen, ob der Vorgang erfolgreich war oder fehlgeschlagen ist.

    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
    

Sie können das Beispiel selbst herunterladen und ausführen. Die von Ihnen benötigte Datei finden sie hier.

Downloads

Anhang Größe
Codebeispiel herunterladen 174.5 KB

Top