CUPS uses the ppd file to store the default paper size, so we'll read
it from here.
If the ppd doesn't contain an explicit resolution then default to
300dpi.
diff --git a/dlls/wineps/init.c b/dlls/wineps/init.c
index ab692b9..91e2c5d 100644
--- a/dlls/wineps/init.c
+++ b/dlls/wineps/init.c
@@ -588,6 +588,10 @@
goto closeprinter;
}
+ /* Some gimp-print ppd files don't contain a DefaultResolution line
+ set it to 300 if it's not specified */
+ if(pi->ppd->DefaultResolution == 0)
+ pi->ppd->DefaultResolution = 300;
if(using_default_devmode) {
DWORD papersize;
@@ -604,6 +608,13 @@
REG_BINARY, (LPBYTE)pi->Devmode, sizeof(DefaultDevmode) );
}
+ if(pi->ppd->DefaultPageSize) { /* We'll let the ppd override the devmode */
+ PSDRV_DEVMODEA dm;
+ memset(&dm, 0, sizeof(dm));
+ dm.dmPublic.dmFields = DM_PAPERSIZE;
+ dm.dmPublic.u1.s1.dmPaperSize = pi->ppd->DefaultPageSize->WinPage;
+ PSDRV_MergeDevmodes(pi->Devmode, &dm, pi);
+ }
/*
* This is a hack. The default paper size should be read in as part of