Page width difference between XP and 98

This Forum is for the use of Software Developers requiring help and assistance for Tracker Software's PDF-Tools SDK of Library DLL functions(only) - Please use the PDF-XChange Drivers API SDK Forum for assistance with all PDF Print Driver related topics.

Moderators: TrackerSupp-Daniel, Tracker Support, Vasyl-Tracker Dev Team, Sean - Tracker, Chris - Tracker Supp, Tracker Supp-Stefan, Ivan - Tracker Software, Andrew - Tracker Support, Tracker - Clarion Support, John - Tracker Supp, Support Staff, moderators

Post Reply
ken66
User
Posts: 50
Joined: Mon May 16, 2005 5:10 pm

Page width difference between XP and 98

Post by ken66 » Thu Jun 16, 2005 11:34 pm

I have attached another test app that draws a thick line from the left edge of the page to the right edge of the page. On Win 98, the line is drawn all the way from edge to edge. On Win XP, the line is not drawn clear to the edge. Is there a way to force these to match?

Also, GetDeviceCaps() with the parameter of VERTRES and HORZRES should return the width and height of the page in pixels (I believe). HORZRES should be the equivalent of 8.5 * GetDeviceCaps(LOGPIXELSX) and VERTRES should be the equivalent of 11 *
GetDeviceCaps(LOGPIXELSY). At least this is my understanding. However, HORZRES and VERTRES seem to be returning the resolution of from display settings.

Thanks for you time and help.
Attachments
pagewidth.zip
(1004.17 KiB) Downloaded 102 times

John - Tracker Supp
Site Admin
Posts: 8202
Joined: Tue Jun 29, 2004 10:34 am
Location: Vancouver Island - Canada
Contact:

Post by John - Tracker Supp » Fri Jun 17, 2005 9:44 am

Hi Ken,

Please see the attached zip and the files files test_me.pdf and test_xp.pdf, as you can see the differences we see here are minor and these are beyond our control - down to the different OS's and the way the Metafiles are created I am afraid (during ContentDC/ReleaseContentDC)

The metafiles created are different - hence the slight variation in output.

With regards HORZRES and VERTRES, again, down to the management of the DC for each OS and it returns all values for use.
Attachments
Compare test.zip
Comparison
(4.84 KiB) Downloaded 96 times
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com

ken66
User
Posts: 50
Joined: Mon May 16, 2005 5:10 pm

Post by ken66 » Fri Jun 17, 2005 3:57 pm

Here is the difference I am seeing between win 98 and win xp. XP has a much larger difference than what you are seeing. I have never seen a difference like this on different os's. It seems odd the XP system is the one in question.

The system is an XP professional service pack 2. Running on a Dell 610 laptop.
Attachments
pdfs.zip
(4.82 KiB) Downloaded 100 times

John - Tracker Supp
Site Admin
Posts: 8202
Joined: Tue Jun 29, 2004 10:34 am
Location: Vancouver Island - Canada
Contact:

Post by John - Tracker Supp » Sat Jun 18, 2005 8:13 am

Is this result as an example of the same code posted earlier or has this changed ?

If not - please alter your code to use the previously detailed mapping mode "HIMETRIC" and the difference in output will be much less dramatic as in the files uploaded by me.
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com

ken66
User
Posts: 50
Joined: Mon May 16, 2005 5:10 pm

Post by ken66 » Mon Jun 20, 2005 3:58 pm

These PDF files are from the code I posted earlier in this thread.

I do not understand why I need to change my code to use HIMETRIC. If I use the functions dc.GetDeviceCaps(LOGPIXELSX) and dc.GetDeviceCaps(LOGPIXELSY) to get the number of pixels per inch, this should be the same from OS to OS. We have an application that currently does everything this way and it works on all Microsoft OS's. We would rather not have to change all our code to HIMETRIC since this code is working for us. I am assuming that if I can use the hDC I get from PXC_GetContentDC() just like I would use a DC in my windows application.

John - Tracker Supp
Site Admin
Posts: 8202
Joined: Tue Jun 29, 2004 10:34 am
Location: Vancouver Island - Canada
Contact:

Post by John - Tracker Supp » Mon Jun 20, 2005 5:27 pm

You are wrong in your assumption that the result should be the same from one OS to another,- especially true when dealing with metafiles - we work with these every day and I can assure that a considerable amount of our time is taken up working around this very issue:

Try this sample code in both Win9x and XP :


HDC dc = ::GetDC(NULL);
int or_dc_lpx = GetDeviceCaps(dc, LOGPIXELSX);
int or_dc_lpy = GetDeviceCaps(dc, LOGPIXELSY);
RECT metarect;
metarect.left = metarect.top = 0;
metarect.right = 8 * 2540 / 72;
metarect.bottom = 11 * 2540 / 72;
HDC metadc = CreateEnhMetaFile(dc, NULL, &metarect, NULL);
int meta_dc_lpx = GetDeviceCaps(metadc, LOGPIXELSX);
int meta_dc_lpy = GetDeviceCaps(metadc, LOGPIXELSY);

Are there any differences between or_dc_lpx and meta_dc_lpx values ?
metadc and dc have different contents but the returned values are the SAME!

With respect questions such as : "I do not understand why I need to change my code to use HIMETRIC" should be directed at Microsoft support, but not us.

Trying to help you resolve a compatibility issue here between 2 MS products - but you are making it very hard to do so. I appreciate it is inconvenient - but we have to do it almost daily and I am afraid if you want a satisfactory result - you will, in this instance, have to do the same.
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com

ken66
User
Posts: 50
Joined: Mon May 16, 2005 5:10 pm

Post by ken66 » Mon Jun 20, 2005 6:04 pm

I didn't intend to be difficult. I'm sorry it came across this way. I just wanted to understand why. I am used to the Printer DC giving me a pixels per inch which works on all OSs.

Sorry for bothering you

John - Tracker Supp
Site Admin
Posts: 8202
Joined: Tue Jun 29, 2004 10:34 am
Location: Vancouver Island - Canada
Contact:

Post by John - Tracker Supp » Mon Jun 20, 2005 6:13 pm

No problem Ken,

but I promise we would not suggest you to do something or advise it was necessary - were it not so ;)

Good luck !
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com

Post Reply