Jump to content

Recommended Posts

Posted

I have several Autotit scripts that print documents to PDFCreator (1.7.3). THis has worked very well but I am concerned with  the long term viability of the apps since PDFCreator is now several versions beyond  1.7.3.  Unfortuantely the dialog box for the new version of PDF creator  doesn't seem to work well with AutoIT. Has anyone been able to get this to work  or come up with a way to control PDFCreater version 2.+ via COM?

Thanks

Posted (edited)

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

Here is working exmple:

#include <AutoItConstants.au3>
; http://docs.pdfforge.org/pdfcreator/latest/en/pdfcreator/com-interface/user-manual/basics/convert-single-file/
;~ "c:\Program Files\PDFCreator\COM Scripts\JS Scripts\Basics\TestPage2JPG.js"

_Example()
Func _Example()


    ; Error monitoring. This will trap all COM errors while alive.
    ; This particular object is declared as local, meaning after the function returns it will not exist.
    Local $oErrorHandler = ObjEvent('AutoIt.Error', '_ErrFunc')

    Local $oPDFCreatorQueue = ObjCreate('PDFCreator.JobQueue')
    $oPDFCreatorQueue.Initialize()

    Local $sTXT_FileFullPath = @ScriptDir & '\PDFCreator_test.txt'
    FileWrite($sTXT_FileFullPath,'Testing PDFCreator')
    ConsoleWrite('PRINT: ' & $sTXT_FileFullPath  & @CRLF)
    ShellExecute($sTXT_FileFullPath,'', @ScriptDir, $SHEX_PRINT)


    Local $sPDF_FileFullPath = @ScriptDir & '\TestPage.pdf'


    ConsoleWrite('WaitForJob' & @CRLF)
    If Not $oPDFCreatorQueue.WaitForJob(10) Then
        ConsoleWrite('The print job did not reach the queue within 1 seconds' & @CRLF)
    EndIf


    ConsoleWrite('$oPDFCreatorQueue.Count=' & $oPDFCreatorQueue.Count & @CRLF)
    Local $oJob = Null
    If $oPDFCreatorQueue.Count = 0 Then
        Return SetError(1)
    Else
        $oJob = $oPDFCreatorQueue.NextJob
    EndIf


;~  $oJob.SetProfileByGuid('JpegGuid')
    $oJob.SetProfileByGuid('PdfaGuid')
    $oJob.ConvertTo($sPDF_FileFullPath)
    If Not $oJob.IsFinished Or Not $oJob.IsSuccessful Then
        ConsoleWrite('Could not convert the file: ' & $sPDF_FileFullPath & @CRLF)
    Else
        ConsoleWrite('Job finished successfully' & @CRLF)
    EndIf

    $oPDFCreatorQueue.ReleaseCom()
    $oPDFCreatorQueue = Null

EndFunc    ;==>_Example


; User's COM error function. Will be called if COM error occurs
Func _ErrFunc($oError)
    ; Do anything here.
    ConsoleWrite(@ScriptName & ' (' & $oError.scriptline & ') : ==> COM Error intercepted !' & @CRLF & _
            @TAB & 'err.number is: ' & @TAB & @TAB & '0x' & Hex($oError.number) & @CRLF & _
            @TAB & 'err.windescription:' & @TAB & $oError.windescription & @CRLF & _
            @TAB & 'err.description is: ' & @TAB & $oError.description & @CRLF & _
            @TAB & 'err.source is: ' & @TAB & @TAB & $oError.source & @CRLF & _
            @TAB & 'err.helpfile is: ' & @TAB & $oError.helpfile & @CRLF & _
            @TAB & 'err.helpcontext is: ' & @TAB & $oError.helpcontext & @CRLF & _
            @TAB & 'err.lastdllerror is: ' & @TAB & $oError.lastdllerror & @CRLF & _
            @TAB & 'err.scriptline is: ' & @TAB & $oError.scriptline & @CRLF & _
            @TAB & 'err.retcode is: ' & @TAB & '0x' & Hex($oError.retcode) & @CRLF & @CRLF)
EndFunc    ;==>_ErrFunc

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)

So rolled up their sleeves, and work ... and share the results.

Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...