Jump to content

print pdf


Recommended Posts

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:

 

 
; 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

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 Codefor 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 APIErrorLog.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 TaskSchedulerIE 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 stuffOnHungApp handlerAvoid "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"
:naughty:  :ranting:, 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

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 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:

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 APIErrorLog.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 TaskSchedulerIE 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 stuffOnHungApp handlerAvoid "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"
:naughty:  :ranting:, 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

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

Here is the Debenu Quick PDF Library Lite website

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My 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

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

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 Codefor 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 APIErrorLog.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 TaskSchedulerIE 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 stuffOnHungApp handlerAvoid "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"
:naughty:  :ranting:, 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

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
 Share

  • Recently Browsing   0 members

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