Impression sans marges ?

steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 2 sept. 2009 à 21:34
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 15 sept. 2009 à 16:44
Bonjour,

Voilà quelques temps déjà j'ai acheté une imprimante HP Photosmart

Je cherche un moyen de sélectionner l'impression
- au format A4
- haute qualité
- sur papier glacé
- ... sans bordure... (???!)

et là, j'ai beau chercher je ne trouve pas de documentation sur ce paramètre.

Pour ceux que ça intéresse, une partie du code:

"
DEVMODE *printerDeviceMode = ( DEVMODE * ) GlobalLock( ( void * ) printerDeviceModeHandle );
if( printerDeviceMode != NULL )
{

printerDeviceMode->dmFields = DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH;

//printerDeviceMode->dmPaperSize = DMPAPER_A4; //A4

printerDeviceMode->dmPaperSize = DMPAPER_USER;
printerDeviceMode->dmPaperLength = 2970;
printerDeviceMode->dmPaperWidth = 2100;

printerDeviceMode->dmFields = DM_COLOR;
printerDeviceMode->dmColor = DMCOLOR_COLOR; //Couleur

printerDeviceMode->dmFields = DM_PRINTQUALITY ;
printerDeviceMode->dmPrintQuality = DMRES_HIGH; //Qualité haute

printerDeviceMode->dmFields = DM_MEDIATYPE;
printerDeviceMode->dmMediaType = DMMEDIA_GLOSSY;

printerDeviceMode->dmFields = DM_ORIENTATION;
printerDeviceMode->dmOrientation = DMORIENT_LANDSCAPE;

//Impression sans bordure ?????
//printerDeviceMode->dmFields = ???

GlobalUnlock( printerDeviceMode );
Printer( )->PrinterIndex = Printer( )->PrinterIndex;
}
"

Je suis bloqué.
Si quelqu'un s'est déjà penché sur le sujet et a la soluce...

D'avance merci

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 sept. 2009 à 13:16
Salut,

Jette un oeil là dessus, DEVMODE se termine par des membres privés. Je sais pas à quel point s'est fiable par contre...
0
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
7 sept. 2009 à 16:39
Bonjour

et merci rt15 pour le lien qui a l'air très intéressant .
Je vais tester dès que possible et reviendrai sur le sujet si ça marche !

a bientôt.
0
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
15 sept. 2009 à 14:13
Bonjour

En fait je n'ai pas pu exploiter le lien: pas su comment m'y prendre...

J'ai juste trouvé une autre piste (besoin similaire) où on évoque la possibilité de "balayer" les formats de l'imprimante en regardant les marges physiques correspondantes
jusqu'à ce qu'on tombe sur A4 sans marges (marge physique top et left à 0 je suppose).

Mais je n'ai pas pu tester...

Ce qui m'étonne c'est que la boite de dialogue de propriétés de l'impression
me propose "a4 sans marge" d'un côté et "impression sans marge" sur un autre onglet

Si quelqu'un a une meilleure idée, je suis preneur

cordialement
0
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
15 sept. 2009 à 16:44
Rebonjour

J'ai trouvé ça mais ça me fait une belle jambe !

Marges physiques, taille physique etc.
mais ça ne résoud pas mon problème...

Enfin ça peut intéresser quelqu'un:

"
int FPhysWidthPix=GetDeviceCaps(Printer()->Handle,PHYSICALWIDTH);
//This is the actual width of the page in printer pixels
ListBox->Items->Add("FPhysWidthPix: "+AnsiString(FPhysWidthPix));

int FPhysHeightPix=GetDeviceCaps(Printer()->Handle,PHYSICALHEIGHT);
//This is the actual height of the page in printer pixels
ListBox->Items->Add("FPhysHeightPix: "+AnsiString(FPhysHeightPix));

int FActWidthPix=GetDeviceCaps(Printer()->Handle,HORZRES);
//This is the printable width of the page in printer pixels
ListBox->Items->Add("FActWidthPix: "+AnsiString(FActWidthPix));

int FActHeightPix =GetDeviceCaps(Printer()->Handle,VERTRES);
//This is the printable height of the page in printer pixels
ListBox->Items->Add("FActHeightPix: "+AnsiString(FActHeightPix));

int FPhysleftOffsetpix=GetDeviceCaps(Printer()->Handle,PHYSICALOFFSETX);
//This is the physical left margin i.e. the non printable left side of the page
ListBox->Items->Add("FPhysleftOffsetpix: "+AnsiString(FPhysleftOffsetpix));

int FPhysTopOffsetPix=GetDeviceCaps(Printer()->Handle,PHYSICALOFFSETY);
//This is the physical top margin i.e. the non printable top side of the page
ListBox->Items->Add("FPhysTopOffsetPix: "+AnsiString(FPhysTopOffsetPix));

int FHorzPi=GetDeviceCaps(Printer()->Handle,LOGPIXELSX);
//Number of printer pixels per inch across the page
ListBox->Items->Add("FHorzPi: "+AnsiString(FHorzPi));

int FVertPi=GetDeviceCaps(Printer()->Handle,LOGPIXELSY);
ListBox->Items->Add("FVertPi: "+AnsiString(FVertPi));
"

Voilà !
0
Rejoignez-nous