cs_gabay
Messages postés25Date d'inscriptionlundi 10 décembre 2007StatutMembreDernière intervention29 juin 2010
-
26 mai 2008 à 16:25
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
26 mai 2008 à 18:57
bonjour,
voila j'essaye d'imprimmer une page web stocké sur le disque dure mais j'y arrive pas, tous ce que j'ais pu faire c imprimer le code html de la page !!
voici le code:
'dans le bouton imprimer par exemple:
Private
Sub ToolStripMenuItem3_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ToolStripMenuItem3.Click
Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
Dim linesPerPage As Single = 0
Dim yPos As Single = 0
Dim count As Integer = 0
Dim leftMargin As Single = ev.MarginBounds.Left
Dim topMargin As Single = ev.MarginBounds.Top
Dim Line As String = Nothing ' Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
' Print each line of the file.
While count < linesPerPage
Line = streamToPrint.ReadLine()
If Line Is Nothing Then
Exit While
End If
yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
ev.Graphics.DrawString(Line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
ev.PageSettings.Landscape = True
count += 1
End While
' If more lines exist, print another page.
If Not (Line Is Nothing) Then
ev.HasMorePages = True
ev.PageSettings.Landscape = True
Else
ev.HasMorePages = False
End If
End Sub
ps: ce code imprime le code html de la page web et non pas le format afficher sur le browser !
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 26 mai 2008 à 16:34
Salut,
Oui c'est normal, dans ton cas tu imprime le fichier, et non le rendu de la page html. Tu es obligé de passer par un moteur de rendu si tu veux imprimer l'aspect graphique de ta page. Cherche si la classe WebBrowser n'a pas une fonction permettant d'imprimer sont contenu (je ne sais pas)...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 mai 2008 à 16:38
Dim myProcess As New Process()
myProcess.StartInfo.FileName = "d:\bulletin de paie.htm"
myProcess.StartInfo.Verb = "Print"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
cs_gabay
Messages postés25Date d'inscriptionlundi 10 décembre 2007StatutMembreDernière intervention29 juin 2010 26 mai 2008 à 17:28
c bon ca marche maintenat je te remerci
g just fai de IE le navigateur par default pour visualisé les fichier HTML au lieu de FF
donc aprement c'etai FF l'origine du probleme !
merci encore
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 26 mai 2008 à 18:57
Re,
Tu peux aussi prendre toujours le même navigateur au lieu de prendre celui par défaut, ceci en accèdant directement à l'éxécutable. Ca donnerait un truc du genre pour IE:
Process.Start("IExplorer.exe -print C:\fichier.htm") (ce n'est qu'un exemple, ce n'est surement pas la bonne ligne de commande)
L'inconvénient c'est que ça ne fonctionne que si Internet Explorer est installé.
Je viens d'aller voir la ligne de commande Print pour Firefox (mon navigateur par défaut):
"C:\Program Files\Microsoft Office\OFFICE11\msohtmed.exe" /p %1
Etrange... c'est donc office qui est utilisé pour imprimer les page web sur mon système.
Pour connaitre la ligne de commande: Poste de travail > Outils > Options des dossiers > Types de fichiers > HTM > Avancé > Print > Modifier