PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Characteristics of print
  • Combining fonts
  • Combining positions
  • Printing in Java and Android
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Sends the character string passed in parameter to the print buffer.
A line break is automatically inserted at the end of the string: the cursor is positioned on the next line. The move to the next line takes into account the height of the current line (in relation to the font used). The print is not started (only iEndPrinting can be used to start the print).
Notes:
  • To print a character string without going to the next line, use iPrintWord.
  • iPrint must not be used in the opening code of a report.
Versions 18 and later
iPhone/iPad This function is now available for the iPhone/iPad applications.
New in version 18
iPhone/iPad This function is now available for the iPhone/iPad applications.
iPhone/iPad This function is now available for the iPhone/iPad applications.
Versions 19 and later
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
New in version 19
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Example
iPrint(iFont(2) + "Text in font 2")
iSkipPage()
// Customer name on the first line at 50 mm from the border
iPrint(iXPos(50) + Cu.CustName)
iEndPrinting()
Syntax
<Result> = iPrint(<Text to Print> [, <String on Next Page>])
<Result>: Boolean
  • True if the print was performed,
  • False if the print was canceled.
<Text to Print>: Character string (with quotes)
Character string to print as well as its characteristics. This parameter has the following format:
[<Font Identifier> +] [<Vertical Position> +] [<Horizontal Position> +] <Text1>
...
[<Font Identifier> +] [<Vertical Position> +] [<Horizontal Position> +] <TextN>
where:
  • <Font Identifier>: optional integer.
    Identifier of the font used to print the text. This identifier is returned by iFont. If this parameter is not specified, the last font used will be selected.
  • <Vertical Position>: optional integer.
    Y coordinate of the point where the print must be performed. This position is specified in number of rows from the top left border of the sheet (with iYPos). If this parameter is not specified, the text will be printed at the current position.
  • <Horizontal Position>: optional integer.
    X coordinate of the point where the print must be performed. This position is specified in number of columns from the top left border of the sheet (with iXPos). If this parameter is not specified, the text will be printed at the current position.
  • <Text>: Character string with quotes.
    Character string to print.
Example:
Text_to_print = "First part" + iFont(1) + "Second part"
<String on Next Page>: Optional boolean
Specifies whether the text printed at the end of the page must be truncated or whether it must continue over the next page:
  • True (default value): the string will be printed on the next page if it does not fit on a single page.
  • False: the character string is truncated: the rest of the string is not printed on the next page.
Remarks

Characteristics of print

  • The origin (0,0) is located in the top left corner of the sheet. It takes the physical margins of printer into account.
  • The current vertical position when printing a character string points to the upper part of the string. The bottom position depends on the height of the fonts used in the line to print.
  • You can specify several fonts and several positions as parameters in a single call to iPrint. For example:
    iPrint(iXPos(50) + CU.LASTNAME + iXPos(150) + CU.FIRSTNAME)
  • The character corresponding to a line break (Char(10)) is interpreted as a line skip.

Combining fonts

Unexpected results may occur when combining fonts. For example, the following code:
iFont(2)
iPrint("First Part" + iFont(1) + "Second Part")
is not equivalent to:
iPrint(iFont(2) + "First Part" + iFont(1) + "Second Part")
In the first case, the entire character string is printed in font 1. Indeed, in this case, iFont(1) is run when building the string to print and therefore before the "First Part" string is printed.
To get an identical result, all you have to do is use iFont with the False parameter: iFont(1, False) will be actually run during the print.

Combining positions

When combining positions, unexpected results may occur. For example, the following code:
iXPos(50)
iPrint("First Part" + iPrint(30) + "Second Part")
is not equivalent to:
iPrint(iXPos(50) + "First part" + iXPos(30) + "Second part")
In the first case, the entire character string is printed at horizontal position 30. Indeed, in this case, iXPos(30) is run when building the string to print and therefore before the "First Part" string is printed.
To get an identical result, all you have to do is use iXPos with the False parameter: iXPos(30, False) will be actually run during the print.
The same operation can be performed by iYPos.
AndroidAndroid Widget Java

Printing in Java and Android

The prints can be less precise because the print resolution is set to 72 dot per inch (dpi) even if the printer supports higher resolutions.
Consequence: The calculations of points in images and in drawings (lines for example) are rounded during the position calculations when printing, especially for small values. During the print, the calculations are performed in point (according to the print resolution) instead of mm (or cm).
Example: Printing lines: if the spacing between the lines is set to 0.5 mm, how many points will be found between each line (resolution set to 72 ppp)?
The first line is positioned at 0.5 mm which means (0.5/25.4) inches with a resolution of 72 points per inch (ppp): (0.5/25.4) x 72 = 1.42 point. The point being the base unit, it cannot be divided: the result is automatically rounded to 1 point less or greater according to the case.
This is a succession of lines printed with a spacing set to 05 mm:
  • 0.5 mm --> (1.42) 1 point
  • 1.0 mm --> (2.84) 3 points
  • 1.5 mm --> (4.25) 4 points. Caution: the line found at 1.5 mm is stuck to the line found at 1 mm (no spacing between these two lines)
  • 2.0 mm --> (5.67) 6 points
  • 2.5 mm --> (7.09) 7 points. Caution: the line found at 2.5 mm is stuck to the line found at 2 mm (no spacing between these two lines)
  • 3.0 mm --> (8.50) 9 points
  • 3.5 mm --> (9.92) 10 points. Caution: the line found at 3.5 mm is stuck to the line found at 3 mm (no spacing between these two lines)
  • 4.0 mm --> (11.33) 11 points. Caution: the line found at 4 mm is stuck to the line found at 3.5 mm (no spacing between these two lines)
  • etc.
To get a proper representation (no rounding), the size and/or the position in mm for a resolution set to 72 ppp must be a multiple of 127/360.
1 point --> (1/72) pouces --> (1/72) x 25.4 mm = 127/360 = 0.3527778 mm
Components
WINDEVWEBDEV - Server codeReports and Queries wd230prn.dll
Windows Mobile wp230prn.dll
Java wd230java.jar
Linux wd230prn.so
Android wd230android.jar
Minimum required version
  • Version 9
This page is also available for…
Comments
RELATORIO manual
// AULA 1224 BLOG COM VIDEO E EXEMPLO COMPLETO

_LINHA=0
iPrint("Nome Empresa ... ")
iPrint(iXPos(1) + "Relatorio ..."+iXPos(240) +"Pagina"+iPageNum)
iHLine(0,iPageWidth())


http://windevdesenvolvimento.blogspot.com.br/2017/07/aula-1224-windev-051-relatorio-manual.html

https://www.youtube.com/watch?v=9Ax0rInK_bA

De matos
Jul. 27 2017