Lelikkeo Posted April 15, 2015 Share Posted April 15, 2015 Hello! Sorry for my English! I need help!)))faced with the problem, when you use the function to print to the pdf printer '?do=embed' frameborder='0' data-embedContent>>.. [nofollow] can't set the sheet size is A3, A2, A1, A0 (default A4). I tried to combine with the function '?do=embed' frameborder='0' data-embedContent>>/ Here's what I got: expandcollapse popup ; UDF for printing using printmg.dll #include-once #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y #AutoIt3Wrapper_AU3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include-once #include <GDIPlus.au3> #include <Misc.au3> #include <File.au3> ; #INDEX# ======================================================================================================================= ; Title .........: MIPDF ; AutoIt Version : 3.3.6.1 ; Description ...: Generate pdf using just AutoIt functions. ; Author(s) .....: Mihai Iancu (taietel at yahoo dot com) ; Version .......: 1.0.3 ; Last Rev. .....: August 10, 2011 ; =============================================================================================================================== ; #CHANGES# ===================================================================================================================== ; 1.0.3 Rewrote _LoadResImage function - optimize for speed (GDI+ stuff) ; Thanks to xavierh for finding a missing space in the _LoadFontTT function (even it looks insignificant, that solved ; an issue with text justification when using Adobe Reader) ; ------------------------------------------------------------------------------------------------------------------------------- ; 1.0.2 Fixed a bug (a big one) related with objects. Foxit Reader worked well, but Adobe Reader gave some errors. Now both ; work fine. ; Added individual page rotation ; Dennis Sandstrom (aka StuffByDennis) added two more functions (_Draw_Path and _Draw_Polygon) ; ------------------------------------------------------------------------------------------------------------------------------- ; 1.0.1 Added more page formats ; Added two more fonts (Calibri and Garamond) ; Changed $PDF_PAGE_A4/~ to "a4","letter" etc (it's not case-sensitive) ; Fixed Txt2PDF function from the example. ; Added another function for table. ; ------------------------------------------------------------------------------------------------------------------------------- ; 1.0.0 Fixed the name af the saved pdf ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ; _BeginPage ; _ClosePDFFile ; _DrawArc ; _DrawCircle ; _DrawCurve ; _DrawLine ; _DrawText ; _Draw_Path ; _Draw_Polygon ; _Draw_Rectangle ; _EndObject ; _EndPage ; _GetMargin ; _GetPageHeight ; _GetPageWidth ; _GetTextLength ; _GetUnit ; _InitPDF ; _InsertDCube ; _InsertDPie ; _InsertImage ; _InsertRenderedText ; _LineTo ; _LoadFontStandard ; _LoadFontTT ; _LoadResImage ; _MoveTo ; _OpenAfter ; _Pages ; _Paragraph ; _Path ; _Rectangle ; _SetCharSpacing ; _SetColourFill ; _SetColourStroke ; _SetDash ; _SetKeywords ; _SetLayoutMode ; _SetLineCap ; _SetLineJoin ; _SetLineWidth ; _SetMargin ; _SetMiterLimit ; _SetOrientation ; _SetPageHeight ; _SetPageWidth ; _SetPaperSize ; _SetSubject ; _SetTextHorizontalScaling ; _SetTextRenderingMode ; _SetTextRiseMode ; _SetTitle ; _SetUnit ; _SetWordSpacing ; _SetZoomMode ; _StartObject ; =============================================================================================================================== ;~ #region CONSTANTS Global $PDF_VERSION = "%PDF-1.5" & @CRLF & "%" & ChrW(199) & ChrW(200) & ChrW(201) & ChrW(202) Global $PDF_AUTHOR = "Mihai Iancu" Global $PDF_CREATOR = "MIPDF" Global $PDF_COPYRIGHT = "© 1973-" & @YEAR & " Mihai Iancu" Global $PDF_TITLE = "" Global $PDF_SUBJECT = "" Global $PDF_KEYWORDS = "" Global $PDF_NAME = "" Global Const $PDF_STYLE_NONE = 0x0 Global Const $PDF_STYLE_STROKED = 0x1 Global Const $PDF_STYLE_CLOSED = 0x2 Global Const $PDF_STYLE_FILLED = 0x4 Global Const $PDF_FONT_NORMAL = "" Global Const $PDF_FONT_BOLD = ",Bold" Global Const $PDF_FONT_ITALIC = ",Italic" Global Const $PDF_FONT_BOLDITALIC = ",BoldItalic" Global $PDF_FONT_STD_HELVETICA = "Helvetica" Global $PDF_FONT_STD_COURIER = "Courier" Global $PDF_FONT_STD_SYMBOL = "Symbol" Global $PDF_FONT_STD_ZAPFDINGBATS = "ZapfDingbats" Global $PDF_FONT_STD_ARIAL = "Helvetica";looks the same Global $PDF_FONT_STD_TIMES = "Times Roman" Global $PDF_FONT_COURIER = $PDF_FONT_STD_COURIER & " New" Global $PDF_FONT_ARIAL = $PDF_FONT_STD_ARIAL Global $PDF_FONT_TIMES = "Times New Roman" Global $PDF_FONT_SYMBOL = $PDF_FONT_STD_SYMBOL Global $PDF_FONT_CALIBRI = "Calibri" Global $PDF_FONT_GARAMOND = "Garamond" Global Const $PDF_ALIGN_LEFT = 1 Global Const $PDF_ALIGN_RIGHT = 2 Global Const $PDF_ALIGN_CENTER = 3 Global Const $PDF_UNIT_PT = 1 Global Const $PDF_UNIT_INCH = 2 Global Const $PDF_UNIT_MM = 4 Global Const $PDF_UNIT_CM = 8 Global Const $PDF_ZOOM_FULLPAGE = 0 Global Const $PDF_ZOOM_FULLWIDTH = 1 Global Const $PDF_ZOOM_REAL = 2 Global Const $PDF_ZOOM_DEFAULT = 4 Global Const $PDF_ZOOM_CUSTOM = 8 Global Const $PDF_LAYOUT_SINGLE = 0 Global Const $PDF_LAYOUT_CONTINOUS = 1 Global Const $PDF_LAYOUT_TWO = 2 Global Const $PDF_LAYOUT_DEFAULT = 4 Global Const $PDF_ORIENTATION_PORTRAIT = 0 Global Const $PDF_ORIENTATION_LANDSCAPE = 1 Global $PDF_OBJECT_NAME = "" Global $PDF_OBJECT_OPTIONS = "" Global Const $PDF_OBJECT_NONE = 0 Global Const $PDF_OBJECT_FIRSTPAGE = 0x1 Global Const $PDF_OBJECT_EVENPAGES = 0x2 Global Const $PDF_OBJECT_ODDPAGES = 0x4 Global Const $PDF_OBJECT_NOTFIRSTPAGE = 0x8 Global Const $PDF_OBJECT_ALLPAGES = BitAND($PDF_OBJECT_EVENPAGES, $PDF_OBJECT_ODDPAGES, $PDF_OBJECT_FIRSTPAGE) Global $BaseFont Global $FirstChar Global $LastChar Global $Param Global $MissingWidth Global $Widths[256] Global $__SetUnit Global $_PaperSize = "A0" Global $_Orientation = $PDF_ORIENTATION_PORTRAIT Global $__SetMargin = 0 Global $_Pages = 0 Global $_CharSpacing Global $_WordSpacing Global $_TextScaling Global $_PageWidth Global $_PageHeight Global $_FileName Global $_Offset = 0 Global $_Font = "" Global $_ZoomMode Global $_LayoutMode Global $_sPage=" " Global $_sFONT Global $_sFONTNAME Global $_Image="" Global $_sObject Global $_iResource Global $_iPages Global $_iObject = 0 Global $_iMaxObject Global $_iTmpOffset Global $_iImageW Global $_iImageH Global $_Buffer = "" Global $_bOpen = False Global $iWidth Global $iHeight Global $aXREF[1000] Global $aOBJECTS[2] = [$PDF_OBJECT_NAME, $PDF_OBJECT_OPTIONS] ;~ #endregion CONSTANTS Const $fpbold = 1, $fpitalic = 2, $fpunderline = 4, $fpstrikeout = 8; Const $sUDFVersion = 'PrintMG.au3 V2.68' ;V2 add missing '$fPrinterOpen = false' to _PrintDllClose ; added style to SetFont ; added GetTextHeight, GetTextWidth, Line ;V2.1 added _PrintImage ;V2.2 added _printEllipse, _PrintArc, _PrintPie ;V2.3 fix error in _PrintRectangle ; comment in _PrintPageOrientation added to reflect new behaviour of dll ; which now ignores orientation if printing started and returns -2 ;V2.4 Added _PrintSelectPrinter. Needs printmg.dll V2.42 or later ;V2.45 Added _PrinGetPrinter. Needs printmg.dll V2.45 or later ;V2.6 Added _PrintListPrinters. Needs printmg.dll V2.46 ;V2.61 Added _PrintRoundedRectangle to have 2 extra parameters for rounded corners ;V2.62 Added _PrintSetTitle ;V2.63 Add $vPath parameter to _PrintDllStart. Thanks to ChrisL ;V2.64 Add _PrintBytesDirect thanks to DeDeep00 ;V2.65 Add PrintImageFromDC thanks to YellowLab ;V2.66 Add _PrintGetPaperHeight, _PrintGetPaperWidth. Needs dll V2.52 or later ;V2.67 Add copies parameter to _PrintStartPrint. Thanks to YellowLab. Needs dll 2.53 or later ;V2.68 add para to _PrintSelectPrinter to decide if the selected printer becomes the default. ; - needs dll v2.54 or later #cs AutoIt Version: 3.2.3++ Description: Functions for printing using printmg.dll Functions available: _PrintVersion _PrintDllStart _PrintDllClose _PrintSetPrinter _PrintGetPageWidth _PrintGetPageHeight _PrintGetHorRes _PrintGetVertRes _PrintStartPrint _PrintSetFont _PrintNewPage _PrintEndPrint _PrintText _PrintGettextWidth _PrintGetTextHeight _PrintLine _PrintGetXOffset _PrintGetYOffset _PrintSetLineCol _PrintSetLineWid _PrintImage _PrintEllipse _PrintArc _PrintPie _PrintRectangle _PrintGetPageNumber _PrintPageOrientation _PrintSelectPrinter _PrintGetPrinter _printListPrinters _PrintBytesDirect _PrintImageFromDC _PrintSetTitle _PrintGetPaperHeight _PrintGetPaperWidth _PrintAbort Author: Martin Gibson #ce ;PrintVersion ;parameters - $type ;returns ; on success - if $type = 1 returns version of printmg.dll on success And @error =0 ; - If $type <> 1 Returns version of this UDF and @error = 0 ; on failure - empty String and @error set to 1 Func _PrintVersion($hDll, $type) If $type <> 1 Then Return $sUDFVersion $vDllAns = DllCall($hDll, 'str', 'version'); If @error = 0 Then Return $vDllAns[0] Else SetError(1) Return '' EndIf EndFunc ;==>_PrintVersion ;_PrintGetPrinter ;parameters - $hDll a handle to the dll obtained from _PrintDllStart ;returns on success a string with the printer name to be used ; if no printer then returns an empty string ; on failure an empty string and @error is set to 1 ;Requirements - Needs printmg.dll V2.44 or later ; ;Remarks Can be used to check the result of _PrintSelectPrinter Func _PrintGetPrinter($hDll) $vDllAns = DllCall($hDll, 'str', 'GetPrinterName'); If @error = 0 Then Return $vDllAns[0] Else SetError(1) Return '' EndIf EndFunc ;==>_PrintGetPrinter ;aborts printing ;returns 0 on success ;returns -1 if not already printing ;returns -2 if could not execute the dll call Func _PrintAbort($hDll) $vDllAns = DllCall($hDll, 'int', 'AbortPrint'); If @error = 0 Then Return $vDllAns[0] Else Return -2 EndIf EndFunc ;==>_PrintGetPrinter ;=============================================================================== ; Function Name: _PrintBytesDirect ; Description: Sends the bytes from array $aData directly to the printer ; Parameters: $aData array of bytes to be sent the first byte is $aData[0] ; ;============================================================================== Func _PrintBytesDirect($hDll, $sPrinter,$aData) If Not IsArray($aData) Then Return -1;error Local $n, $iNum = UBound($aData) Local $structCodes = DllStructCreate("byte[" & $iNum & "]") Local $pData = DllStructGetPtr($structCodes) For $n = 1 To $iNum DllStructSetData($structCodes, $n, $aData[$n - 1]) Next $vDllAns = DllCall($hDll, 'int', 'PrintBytesDirect', 'str',$sPrinter, 'ptr', $pData, 'int', $iNum) Return $vDllAns[0] EndFunc ;==>_PrintBytesDirect ;to print a raw file to a printer use ;copy fullfilepath /b prn # if not on usb ;copy fullfilepath /b //computername/printersharename ;if on the local pc then can use 127.0.0.1 instead of computername ;get printername from control panel, printers and faxes ;PrintDllStart ;opens the dll. Use PrintDllClose to close the dll ;by using PrintDllStart the settings made in other functions will be valid ;parameters - $sErr a string to hold the error message if any ; - $vPath the full path to the printmg.dll. If not given then the dll must be ; in the csript folder or one of the folders searched by Windows ;returns ; handle to the dll on success - $sErr is empty string And @error =0 ; the handle must be used in all other calls ; -1 on failure , and @error set to -1 and $sErr contains an error message Func _PrintDllStart(ByRef $sErr, $vPath = 'printmg.dll') $hDll = DllOpen($vPath) If $hDll = -1 Then SetError(1) $sErr = 'Failed to open ' & $vPath Return -1;failed EndIf Return $hDll;ok EndFunc ;==>_PrintDllStart ;PrintDllClose ;closes the dll. Use PrintDllClose to open the dll ;by using PrintDllStart the settings made in other functions will remain valid for other functions ;parameters - $hDll a handle to the dll obtained from _PrintDllStart ;returns ; 0 on success - @error =0 ; on failure ; -1 if $hDll is invalid ; -2 if could not execute _PrintDllClose ;NB script will terminate if it fails to close printmg.dll Func _PrintDllClose($hDll) If $hDll = -1 Then Return -1 $vDllAns = DllCall($hDll, 'int', 'ClosePrinter'); If @error <> 0 Then Return -2 DllClose($hDll) Return 0 EndFunc ;==>_PrintDllClose ;_PrintSetPrinter ;parameters - $hDll a handle to the dll obtained from _PrintDllStart ;Brings up a dialog box for choosing the printer ;returns ; 1 if printer chosen success ; 0 if printer selection cancelled ; -1 if failed Func _PrintSetPrinter($hDll) $vDllAns = DllCall($hDll, 'int', 'SetPrinter') If @error = 0 Then Return $vDllAns[0] Else Return -1 EndIf EndFunc ;==>_PrintSetPrinter ;_PrintSelectPrinter ;selects the printer to use ; ;parameters - $hDll - a handle to the dll obtained from _PrintDllStart ; - $printer -name as in WIndows printer list ;returns ; 1 if printer chosen successfully - ; -1 if failed ;Requirements - Needs printmg.dll V2.42 or later ;NB selction does not alter the default printer but selects $PrinterName for the ; current print job. ; _PrintGetPrinter will return the selected printer and can be used to ; check the result of _PrintSelectPrinter Func _PrintSelectPrinter($hDll, $PrinterName, $fSetAsDefault=false) $vDllAns = DllCall($hDll, 'int', 'SelectPrinter', 'str', $PrinterName,'int',$fSetAsDefault) If @error = 0 Then Return $vDllAns[0] Else Return -1 EndIf EndFunc ;==>_PrintSelectPrinter ;_PrintGetHorRes ;parameters - $hDll, the handle for printmg.dll ;returns no of pixels across printer page and @error = 0 ; ;on failure returns -1 and @error = 1 Func _PrintGetHorRes($hDll) $vDllAns = DllCall($hDll, 'int', 'GetHorRes') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetHorRes ;_PrintGetVertRes ;parameters - $hDll, the handle for printmg.dll ;returns no of pixels down printer page and @error = 0 ; ;on failure returns -1 and @error = 1 Func _PrintGetVertRes($hDll) $vDllAns = DllCall($hDll, 'int', 'GetVertRes') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetVertRes ;_PrintSetBrushCol ;parameters - $hDll, the handle for printmg.dll ; %bcol the colour for the brush ie the color used for filling enclosed shapes ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintSetBrushCol($hDll, $bcol) $vDllAns = DllCall($hDll, 'int', 'SetBrushCol', 'int', $bcol) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintSetBrushCol ;_PrintEllipse ;parameters - $hDll a handle to the dll obtained from _PrintDllStart. $iTopx,$iTopy,$iBotX,$iBotY explained below ;prints an enclosed (ie full) ellipse in the current line colour amd width, filled with the current brush colour ; ellipse is drawn on the rectangle $iTopx,$iTopy at the top left, $iBotx,$iBoty at the bottom right ;if the rectangle is a square then the ellipse is a circle ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintEllipse($hDll, $iTopx, $iTopy, $iBotX, $iBotY) $vDllAns = DllCall($hDll, 'int', 'Ellipse', 'int', $iTopx, 'int', $iTopy, 'int', $iBotX, 'int', $iBotY) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintEllipse ;_PrintRectangle ;prints an enclosed rectangle in the current line colour amd width, filled with the current brush colour ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintRectangle($hDll, $iTopx, $iTopy, $iBotX, $iBotY) $vDllAns = DllCall($hDll, 'int', 'Rectangle', 'int', $iTopx, 'int', $iTopy, 'int', $iBotX, 'int', $iBotY) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintRectangle ;_PrintRoundedRectangle ;prints an enclosed rectangle in the current line colour amd width, filled with the current brush colour ;if $Icornerx and $iCornery are both greater than zero the cornes will be elliptical curves with height $iCornery and width $iCornerx. ;(This means the full ellipse would have height $iCornery * 2, width $iCornerx * 2) ; If both $iCornerx and $iCornery are zero then this function is equivalent to _PrintRectangle ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintRoundedRectangle($hDll, $iTopx, $iTopy, $iBotX, $iBotY, $iCornerx = 0, $iCornery = 0) $vDllAns = DllCall($hDll, 'int', 'RoundedRectangle', 'int', $iTopx, 'int', $iTopy, 'int', $iBotX, 'int', $iBotY, 'int', $iCornerx, 'int', $iCornery) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintRoundedRectangle ;_PrintPie ;prints an enclosed ie elliptical segment in the current line colour amd width, filled with the current brush colour ; ellipse is drawn on the rectangle $iTopx,$iTopy at the top left, $iBotx,$iBoty at the bottom right ;if the rectangle is a square then the ellipse is a circle ;the start of the ellipse is at the point where the line from the centre of the rectangle through the point $iAx,$iAy ; intersects the ellipse. The ellipse is drawn clockwise untill the point is reached where the line from the centre ; of the rectangle through the point $iAx,$iAy intersects the ellipse. ;If the end point is also the start point then a full ellipse is drawn. ;if the rectangle is a square then the ellipse is a circle ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintPie($hDll, $iTopx, $iTopy, $iBotX, $iBotY, $iAx, $iAy, $iBx, $iBy) $vDllAns = DllCall($hDll, 'int', 'Pie', 'int', $iTopx, 'int', $iTopy, 'int', $iBotX, 'int', $iBotY, 'int', $iAx, 'int', $iAy, 'int', $iBx, 'int', $iBy) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintPie ;_PrintArc ;prints an enclosed ie elliptical arc in the current line colour amd width. ; ellipse is drawn on the rectangle $iTopx,$iTopy at the top left, $iBotx,$iBoty at the bottom right ;if the rectangle is a square then the ellipse is a circle ;the start of the ellipse is at the point where the line from the centre of the rectangle through the point $iAx,$iAy ; intersects the ellipse. The ellipse is drawn clockwise untill the point is reached where the line from the centre ; of the rectangle through the point $iAx,$iAy intersects the ellipse. ;If the end point is also the start point then a full ellipse is drawn. ;if the rectangle is a square then the ellipse is a circle ;returns 1 on success and @error - 0 ; -1 on failure And @error = 1 Func _PrintArc($hDll, $iTopx, $iTopy, $iBotX, $iBotY, $iAx, $iAy, $iBx, $iBy) $vDllAns = DllCall($hDll, 'int', 'Arc', 'int', $iTopx, 'int', $iTopy, 'int', $iBotX, 'int', $iBotY, 'int', $iAx, 'int', $iAy, 'int', $iBx, 'int', $iBy) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintArc ;_PrintGetPageHeight ;parameters - $hDll, the handle for printmg.dll ;returns page height in tenths of a millimetre and @error = 0 ;The page ht is the printable ht ;on failure returns -1 and @error = 1 ;Related: _PrintGetPaperHeight Func _PrintGetPageHeight($hDll) $vDllAns = DllCall($hDll, 'int', 'GetPageHeight') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetPageHeight ;_PrintGetPaperHeight ;parameters - $hDll, the handle for printmg.dll ;returns physical paper height in tenths of a millimetre and @error = 0 ;The page ht is the printable ht which will not be greater than the paper ht ;on failure returns -1 and @error = 1 Func _PrintGetPaperHeight($hDll) $vDllAns = DllCall($hDll, 'int', 'GetPaperHeight') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetPaperHeight ;_PrintGetPageWidth ;parameters - $hDll, the handle for printmg.dll ;returns page width in tenths of a millimetre and @error = 0 ;The page width is the printable width ;on failure returns -1 and @error = 1 Func _PrintGetPageWidth($hDll) $vDllAns = DllCall($hDll, 'int', 'GetPageWidth') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetPageWidth ;_PrintGetPaperWidth ;parameters - $hDll, the handle for printmg.dll ;returns physical paper width in tenths of a millimetre and @error = 0 ;The page width is the printable width which will not be more than the paper width ;on failure returns -1 and @error = 1 Func _PrintGetPaperWidth($hDll) $vDllAns = DllCall($hDll, 'int', 'GetPaperWidth') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetPaperWidth ;_PrintStartPrint ;initialises the printer ready to print. ;Must be called before any printing functions ;parameters - $hDll, the handle for printmg.dll ; - $print copies = the number of times each page will be printed. ;returns 1 on success and @error = 0 ;returns -1 if failed to start printer and sets @error to 1 ;returns -2 if number of copies is set to less than 1 and @error =2 ; ;on failure returns -1 and @error = 1 Func _PrintStartPrint($hDll,$printCopies=1) if $printCopies < 1 then return SetError(-2,0,-2) $vDllAns = DllCall($hDll, 'int', 'PrinterBegin','int',$printCopies) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintStartPrint ;_PrintGetPageNumber ;Returns the current page number ;Can be used to see if printing has been started with _PrintBeginDoc ;parameters - $hDll, the handle for printmg.dll ;returns 0 if not printing ; the page number if printing in progress ie the page being ; created which is not the page actually being printed. ;on success @error = 0 ;on failure returns -1 and @error = 1 Func _PrintGetPageNumber($hDll) $vDllAns = DllCall($hDll, 'int', 'GetPageNumber') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintGetPageNumber ;_PrintEndPrint ;Ends the printing operations ;parameters - $hDll, the handle for printmg.dll ;returns 1 on success and @error = 0 ; ;on failure returns -1 and @error = 1 Func _PrintEndPrint($hDll) $vDllAns = DllCall($hDll, 'int', 'PrinterEnd') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintEndPrint ;_PrintNewPage ;ends the last page; any further printing will be done on the next page ;parameters - $hDll, the handle for printmg.dll ;returns 1 on success and @error = 0 ; ;on failure returns -1 and @error = 1 ;if you use this function there will be another page printed even if it is blank! Func _PrintNewPage($hDll) $vDllAns = DllCall($hDll, 'int', 'NewPage') If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintNewPage ;~ Func _PrintPageOrientation($hDll, $iPortrait = 1) ;~ $vDllAns = DllCall($hDll, 'int', 'Portrait', 'int', $iPortrait) Func _PrintPaperSize($hDll, $_PaperSize) $vDllAns = DllCall($hDll, 'int', $iWidth = 1, 'int', $iHeight = 1) $_PaperSize = StringUpper($hDll) Switch $hDll Case "A0" $_PageWidth = 2383.937 $_PageHeight = 3370.394 Case "A1" $_PageWidth = 1683.780 $_PageHeight = 2383.937 Case "A2" $_PageWidth = 1190.551 $_PageHeight = 1683.780 Case "A3" $_PageWidth = 841.890 $_PageHeight = 1190.551 Case "A4" $_PageWidth = 595.276 $_PageHeight = 841.890 Case "CUSTOM" If $iWidth = -1 Or $iHeight = -1 Then $_PageWidth = 595.276 $_PageHeight = 841.890 Else $_PageWidth = $iWidth $_PageHeight = $iHeight EndIf Case Else $_PageWidth = 595.2 $_PageHeight = 842 EndSwitch ;~ If @error = 0 Then Return $vDllAns[0] ;~ SetError(1) ;~ Return -1 EndFunc ;==>_PrintNewPage ;_PrintSetFont ;Parameters ; $hDll handle to the printmg.dll ; $FontName the font to use in any later _PrintText functions ; $FontSize the size of the font ; $FontCol the colour of the font, defaults to 0 (black). -1 is taken as the default colour. ; $Fontstyle String which contains any of 'bold', 'underline', 'italic', 'strikeout' ; In any Order and case independant ; default is '' which means regular ; a value for $FontCol must be given if $FontStyle is used. Func _PrintSetFont($hDll, $FontName, $FontSize, $FontCol = 0, $Fontstyle = '') Local $iStyle = 0 If $FontCol = -1 Then $FontCol = 0 If $Fontstyle = -1 Then $Fontstyle = '' If $Fontstyle <> '' Then If StringInStr($Fontstyle, "bold", 0) Then $iStyle = 1 If StringInStr($Fontstyle, "italic", 0) Then $iStyle += 2 If StringInStr($Fontstyle, "underline", 0) Then $iStyle += 4 If StringInStr($Fontstyle, "strikeout", 0) Then $iStyle += 8 EndIf $vDllAns = DllCall($hDll, 'int', 'SetFont', 'str', $FontName, 'int', $FontSize, 'int', $FontCol, 'int', $iStyle) Return $vDllAns[0] EndFunc ;==>_PrintSetFont ;_PrintImage ;Parameters ; $hDll handle to the printmg.dll ; $sImagePath full path to prints bmp, jpg or ico file to print ; $TopX,$TopY, the x,y coords of the top left corner of the rectangle to print in ; $wid is the width of the rectangle to print the image in ; $ht is the height of the rectangle to print the image in ; all dims in tenths of mm ;returns 1 on success and @error = 0 ; on error @error = 1 and value returned is -1 if error calling dll ; -2 If file not found ; -3 if file is not jpg or bmp ; -4 if unsupported icon file ;NB File type is determined purely by file extension ie .bmp or .jpg or .ico Func _PrintImage($hDll, $sImagePath, $TopX, $TopY, $wid, $ht) $vDllAns = DllCall($hDll, 'int', 'Image', 'str', $sImagePath, 'int', $TopX, 'int', $TopY, 'int', $wid, 'Int', $ht) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintImage ;_PrintImageFromDC ;Parameters ; $hDC handle to a bitmap ; $TopX,$TopY, the x,y coords of the top left corner of the bitmap to copy from ; $wid,$ht the width and ht of the rectangle to copy from the bitmap ; $PrintX,$PrintY the topleft corner on the page for the picture in units of 0.1mm ; $printWId, $PrintHt the width and height of the image on the paper in units of 0.1mm ;returns 1 on success and @error = 0 ; on error @error = 1 and value returned is -1 if error calling dll Func _PrintImageFromDC($hDll, $hDC, $TopX, $TopY, $wid, $ht,$printTopX, $printTopY, $printWidth, $printHeight) ;_PrintImageFomDC($hDll, $hDC, $TopX, $TopY,$Width, $Height,$PrintTopX,$PrintTopY,$PrintWidth,$PrintHeight) $vDllAns = DllCall($hDll, 'int', 'ImageFromHandle', 'hwnd', $hDC, 'int', $TopX, 'int', $TopY, 'int', $wid, 'Int', $ht,'Int', $PrintTopX,'Int', $PrintTopY,'Int', $PrintWidth,'Int', $PrintHeight) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintImage ;_PrintPageOrientation ;sets printer to portrait or landscape ;parameters ; $hDll handle to the printmg.dll ; $iPortrait = 1 to set portrait (default) ; = 0 to set landscape ;returns 1 on success and @error = 0 ; -2 if printing has been started and orientation cannot be changed ; (_PrintStartPrint starts printing even if nothing has been sent to print.) ;NB File type is determined purely by file extension ie .bmp or .jpg or .ico Func _PrintPageOrientation($hDll, $iPortrait = 1) $vDllAns = DllCall($hDll, 'int', 'Portrait', 'int', $iPortrait) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 ConsoleWrite("ppoend" & @CRLF) EndFunc ;==>_PrintPageOrientation ;_PrintText ;prints the text $sText at position $ix,$iy at an angle $iAngle using the last set font, size,style and colour. ;$ix and $iy are in units of 0.1 mm i.e $ix=476 for 47.6mm ;for inches multiply by 25.4 i.e. $ix=254 for one inch ;returns 1 on success and @error = 0 ; -1 on failure ;parameters ; $hDll handle to the printmg.dll ; $sText the string to print on the line starting at $ix,$iy ; $iAngle in degrees. 0 = default ie normal left to right, 90 = vertically up, 270 = vertically down ; 180 degrees bug which is overcome by changing 180 to 179 until solution found ;To check that the text will fit a space use _PrintGEtTextHeight and _PrintGetTextWidth Func _PrintText($hDll, $sText, $ix = -1, $iy = -1, $iAngle = 0) If $iAngle = 180 Then $iAngle = 179; 180 doesn't work so maybe this won't get noticed EndIf $vDllAns = DllCall($hDll, 'int', 'printText', 'str', $sText, 'int', $ix, 'int', $iy, 'int', $iAngle) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintText ;_PrintGetXOffset ;gets the width of a margin at the side side of the page in tenths of mm which will cannot be printed on. ; can be 0 for some printers. ;paramter $dDll handle to the printmg.dll Func _PrintGetXOffset($hDll) Local $vDllAns = DllCall($hDll, 'int', 'GetXOffset') If @error = 0 Then Return $vDllAns[0];tenths of mm EndIf SetError(1) Return -1 EndFunc ;==>_PrintGetXOffset ;_PrintGetYOffset ;gets the heigth of a margin at the top of the page in tenths of mm which will cannot be printed on. ; can be 0 for some printers. ;paramter $dDll handle to the printmg.dll Func _PrintGetYOffset($hDll) Local $vDllAns = DllCall($hDll, 'int', 'GetYOffset') If @error = 0 Then Return $vDllAns[0];tenths of mm SetError(1) Return -1 EndFunc ;==>_PrintGetYOffset ;_PrintGetTextWidth ;parameters - $hDll, the handle for printmg.dll ; $sWText the text to find the width for ;returns on success the width in tenths of mm taken by the text if printed using the current font settings. ; and @error = 0 ; ; on failure returns -1 and @error = -1 Func _PrintGetTextWidth($hDll, $sWText) Local $vDllAns = DllCall($hDll, 'int', 'TextWidth', 'str', $sWText) If @error = 0 Then Return $vDllAns[0];tenths of mm SetError(1) Return -1 EndFunc ;==>_PrintGetTextWidth ;_PrintGetTextHeight ;parameters - $hDll, the handle for printmg.dll ;returns on success the height in tenths of mm taken by the text if printed using the current font settings. ; actually the height is only determined by the font settings not by the text in $sHText ; and @error = 0 ; on failure returns -1 and @error = 1 ; Func _PrintGetTextHeight($hDll, $sHText) Local $vDllAns = DllCall($hDll, 'int', 'TextHeight', 'str', $sHText) If @error = 0 Then Return $vDllAns[0];tenths of mm SetError(1) Return -1 EndFunc ;==>_PrintGetTextHeight ;_PrintSetLineWid ;parameters - $hDll, the handle for printmg.dll ; - $iWid the width in tenths of mm for the line ;returns on success the width in tenths of mm taken by the text if printed using the current font settings. ; and @error = 0 ; on failure returns -1 and @error = 1 ; Func _PrintSetLineWid($hDll, $iWid) Local $vDllAns $vDllAns = DllCall($hDll, 'int', 'SetLineWid', 'int', $iWid) If @error = 0 Then Return $vDllAns[0];tenths of mm SetError(1) Return -1 EndFunc ;==>_PrintSetLineWid ;_PrintSetLineCol ;parameters - $hDll, the handle for printmg.dll ; - $iCol colour for the line ;returns 1 success and @error = 0 ; on failure returns -1 and @error = 1 Func _PrintSetLineCol($hDll, $iCol) Local $vDllAns = DllCall($hDll, 'int', 'SetLineCol', 'int', $iCol) ;ConsoleWrite("set line col to " & $iCol & @CRLF) If @error = 0 Then Return $vDllAns[0]; SetError(1) Return -1 EndFunc ;==>_PrintSetLineCol ;_PrintLine ;parameters - $hDll, the handle for printmg.dll ; $iXStart the x coord for the start of the line in tenths of mm ; $iYStart the y coord for the start of the line ; $iXEnd the x coord for the end of the line ; $iYEnd the y coord for the end of the line ; 0,0 is top left of page ;returns on success the height in tenths of mm taken by the text if printed using the current font settings. ; actually the height is only determined by the font settings not by the text in $sHText ; and @error = 0 ; on failure returns -1 ; ;on failure returns -1 and @error = 1 Func _PrintLine($hDll, $iXStart, $iYStart, $iXEnd, $iYEnd);start x,y, end x,y in tenths of mm $vDllAns = DllCall($hDll, 'int', 'Line', 'int', $iXStart, 'int', $iYStart, 'int', $iXEnd, 'int', $iYEnd) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintLine ;_PrintListPrinters ;parameters - $hDll, the handle for printmg.dll ;returns on success ; a string with a list of installed printers separated by '|' and @error = 0 ; on failure returns an empty string and @error = 1 Func _PrintListPrinters($hDll) $vDllAns = DllCall($hDll, 'str', 'ListPrinters') If @error = 0 Then Return $vDllAns[0] SetError(1) Return '' EndFunc ;==>_PrintListPrinters ;_PrintSetDocTitle ;Sets the document title. Must be used before _PrintStartPrint or after _PrintEndPrint ;returns 1 on success and @error = 0 ; -1 on failure ;parameters ; $hDll handle to the printmg.dll ; $sTitle the string to be used for the document title ;Requires printmg.dll v Func _PrintSetDocTitle($hDll, $sTitle) $vDllAns = DllCall($hDll, 'int', 'SetTitle', 'str', $sTitle) If @error = 0 Then Return $vDllAns[0] SetError(1) Return -1 EndFunc ;==>_PrintSetDocTitle Prompt please if who faced with such, how to solve this problem? Link to comment Share on other sites More sharing options...
mLipok Posted April 15, 2015 Share Posted April 15, 2015 Please look in my signature for Debenu Qucik PDF UDF Cheers, and welcome here on the forum. 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 Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
Lelikkeo Posted April 15, 2015 Author Share Posted April 15, 2015 Please look in my signature for Debenu Qucik PDF UDF Cheers, and welcome here on the forum. mLipok Prompt, where I can download a free version DebenuPDFLibraryLite1012.dll or how to fix this error? Link to comment Share on other sites More sharing options...
mLipok Posted April 15, 2015 Share Posted April 15, 2015 (edited) Oh I see I have old UDF and but new libraries are available . If you want to use any print method (functions) from this library / UDF you must us commercial/evaluation version. And then you can use _QPDF_NewLibraryPath_Commercial($sLibrary_NewFileFullPath, $sNewClassName, $sNewCLSID, $sNewIID) to select new DLL file . btw. I think it is time to update my UDF. Edited April 15, 2015 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 Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
Lelikkeo Posted April 15, 2015 Author Share Posted April 15, 2015 Oh I see I have old UDF and but new libraries are available . If you want to use any print method (functions) from this library / UDF you must us commercial/evaluation version. And then you can use _QPDF_NewLibraryPath_Commercial($sLibrary_NewFileFullPath, $sNewClassName, $sNewCLSID, $sNewIID) to select new DLL file . btw. I think it is time to update my UDF. I can't understand You. Please throw me the latest free version. I greatly need. I'm not an experienced programmer. It's easier for me to see a ready option. Link to comment Share on other sites More sharing options...
MikahS Posted April 15, 2015 Share Posted April 15, 2015 Here is the Debenu Quick PDF Library Lite website Snips & Scripts My Snips: graphCPUTemp ~ getENVvarsMy Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4 Feel free to use any of my code for your own use. Forum FAQ Link to comment Share on other sites More sharing options...
Lelikkeo Posted April 16, 2015 Author Share Posted April 16, 2015 Oh I see I have old UDF and but new libraries are available . If you want to use any print method (functions) from this library / UDF you must us commercial/evaluation version. And then you can use _QPDF_NewLibraryPath_Commercial($sLibrary_NewFileFullPath, $sNewClassName, $sNewCLSID, $sNewIID) to select new DLL file . btw. I think it is time to update my UDF. mLipok, please send me latest and full version files QuickPDF.au3 and QuickPDF_Examples.au3. Thanks in advance. Link to comment Share on other sites More sharing options...
mLipok Posted April 16, 2015 Share Posted April 16, 2015 I just submit new intermediate version. 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 Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now