Bonjour, je dois creer un programme en Visual c++ 6.0 qui imprime des pages HTML automatiquement.
J explique: J'ai un repertoire avec 5 000 pages HTML et je dois les imprimer toutes d'un coup!
J'ai reussi a imprimer un seul fichier html avec la fonction "ShellExecute(NULL,"print",fileName, NULL, NULL, SW_SHOWNORMAL)". Mais je dois appeler cette fonction autant de fois qu il y a de fichiers et je n'ai pas envie de voir apparaitre 5000 fois la boite de dialogue "printdlg"!!!
J'ai trouve un autre bout de code mais je n'arrive a imprimer qu'une feuille blanche!
[CODE]
void Print()
{
FILE *f = fopen("c:\\fichiers-html.txt","r"); //fichier contenant les url des fichiers html
char fileName[255];
fgets(fileName,255,f);
for (int i = 0; i<255 && strcmp(&fileName[i],"\0")!=0; i++ );
if (i<250) strcpy(&fileName[i-1],"."); //filename = url fichier html
RECT rect ;
HDC hdcPrn ;
DOCINFO di = { sizeof (DOCINFO), fileName } ;
HENHMETAFILE hemf;
PRINTDLG printdlg = { sizeof (PRINTDLG) } ;
// Affiche la boîte de dialogue Imprimer et récupère le contexte de périphérique imprimante
printdlg.Flags = PD_RETURNDC | PD_NOPAGENUMS | PD_NOSELECTION ;
if (!PrintDlg (&printdlg))
return ;
if (NULL == (hdcPrn = printdlg.hDC))
return ;
// Récupère la zone imprimable de la page
rect.left = 0 ;
rect.right = GetDeviceCaps (hdcPrn, HORZRES) ;
rect.top = 0 ;
rect.bottom = GetDeviceCaps (hdcPrn, VERTRES) ;
// Imprime
SetCursor (LoadCursor (NULL, IDC_WAIT)) ;
ShowCursor (TRUE) ;
if ((StartDoc (hdcPrn, &di) > 0) && (StartPage (hdcPrn) > 0))
{
hemf = GetEnhMetaFile (fileName) ;
PlayEnhMetaFile (hdcPrn, hemf, &rect) ;
if (EndPage (hdcPrn) > 0)
EndDoc (hdcPrn) ;
}
ShowCursor (FALSE) ;
SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
DeleteDC (hdcPrn) ;
}
[/CODE]
Mon code est-il sur la bonne voie???
Je suis un peu perdu, ca fait un bout de temps que je cherche... :(
Merci infiniment d'avance....