The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,953 other followers

Windows – WorldTransform on the Printer’s Canvas can be a challenge…

Posted by jpluimers on 2017/09/05

// Don't use SetWorldTransform [WayBack] on Printer.
// Some drivers don't handle it correct
// We will only use ModifyWorldTransform [WayBack]
// Let Windows and Driver do the Job

Source: Hello, I use a component that do some nice things on the Printer’s Canvas…… [WayBack]


One Response to “Windows – WorldTransform on the Printer’s Canvas can be a challenge…”

  1. jpluimers said

    Joe C Hecht commenting via

    It has been a few years, but If I recall correctly, this is not a driver issue (for any print driver that would count: IE a monolithic driver. I am pretty sure the Uni drivers do not get an opportunity at these kind of calls or data – they just ship bits). It’s been awhile, but in short, it is unlikely the driver would work at all if it did not process its points and XFORM equivalents correctly to begin with (and would likely fail the compatibility test), noting that none of these “World Transform” calls are actually handled at the driver level (GDI handles it, and ships a hand full of very low level render calls to the driver).

    It is also worth noting there is considerable distance between the GDI and a print driver (an insane amount of stuff like spooling process exist in between), and often enough, a driver gets blamed for something that went south way up stream).

    FWIW, it is best to do your own transforms, using the industry standard transform function. In this case: simply send the coordinate as:

    x’ = x * eM11 + y * eM21 + eDx;
    y’ = x * eM12 + y * eM22 + eDy;


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: