Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

encapsuler un pdf dans IE

17 réponses
Avatar
Ambassadeur Kosh
bonjour,

je cherche à encapsuler un document pdf dans IE. cad que AcrobatReader
s'ouvre dans IE, et me permette de naviguer dans un document resultant d'une
requete.
de ce que j'ai compris, ça tourne autours de Response, mais il me manque des
éléments.
j'imagine que ça va me permettre de m'affranchir de fichiers temporaires pdf
sur le server, mais comment on fait ?

merci d'avance pour votre aide.

ps : je debute grave en ASP.

10 réponses

1 2
Avatar
PAN
Salut,

Voici en gros ce que j'ai utilisé:

****************************************************************************
**

Dim sFile As String = "c:lerepertoirelefichier.pdf"
Dim MyFileStream As FileStream
Dim FileSize As Long

MyFileStream = New FileStream(sFile, FileMode.Open)
FileSize = MyFileStream.Length

Dim Buffer(CInt(FileSize)) As Byte

MyFileStream.Read(Buffer, 0, CInt(FileSize))
MyFileStream.Close()

Response.ContentType = "Application/pdf"
' Est utilisé si on veut avoir un popup "sauvegarder sous..."
' Response.AddHeader("content-disposition", "attachment;
filename=lefichier.pdf")

Response.BinaryWrite(Buffer)

Response.End()

****************************************************************************
*************

Bien du courage
Pierre-André



"Ambassadeur Kosh" a écrit dans le message de
news:%
bonjour,

je cherche à encapsuler un document pdf dans IE. cad que AcrobatReader
s'ouvre dans IE, et me permette de naviguer dans un document resultant


d'une
requete.
de ce que j'ai compris, ça tourne autours de Response, mais il me manque


des
éléments.
j'imagine que ça va me permettre de m'affranchir de fichiers temporaires


pdf
sur le server, mais comment on fait ?

merci d'avance pour votre aide.

ps : je debute grave en ASP.




Avatar
Ambassadeur Kosh
> Voici en gros ce que j'ai utilisé:


[...]

royal. c'est pile ça... j'essaye dans la minute
merci tout plein
Avatar
Ambassadeur Kosh
bon, ça le fait pas.
voila mon code. et je m'en sors pas.
le save as fonctionne bien, mais l'incorporation de Acrobat Reader dans IE,
j'arrive pas.
Help Pleaze!!!

// ça, c'est ok
private byte[] GetPdf()
{
string path = @"W:PersoTest encapsFlowLayoutManagerSample.pdf" ;
FileStream stream = new FileStream(path,FileMode.Open) ;
int filesize = (int)stream.Length ;
byte[] buffer = new byte[filesize] ;
stream.Read(buffer,0,filesize) ;
stream.Close() ;

return buffer ;
}

// j'ai mis ça dans render, mauvaise idée ?
protected override void Render( HtmlTextWriter writer )
{
// si je le met pas, je m'en sors pas...
base.Render(writer) ;

byte[] buffer = GetPdf() ;

Response.ContentType = "Application/pdf" ;
Response.BinaryWrite(buffer) ;
Response.End() ;
}
Avatar
Frederic Melantois
Bonjour Ambassadeur,

Regardez dans les options d'Acrobat Reader, il y a une option qui permet
d'ouvrir le pdf dans le navigateur.
C'est bien évidemment une option côté client.

Il n'y a donc pas moyen de forcer (à partir du serveur) le client à lire le
pdf dans le navigateur.

Frédéric Mélantois

"Ambassadeur Kosh" a écrit dans le message de
news:
bon, ça le fait pas.
voila mon code. et je m'en sors pas.
le save as fonctionne bien, mais l'incorporation de Acrobat Reader dans


IE,
j'arrive pas.
Help Pleaze!!!

// ça, c'est ok
private byte[] GetPdf()
{
string path = @"W:PersoTest encapsFlowLayoutManagerSample.pdf" ;
FileStream stream = new FileStream(path,FileMode.Open) ;
int filesize = (int)stream.Length ;
byte[] buffer = new byte[filesize] ;
stream.Read(buffer,0,filesize) ;
stream.Close() ;

return buffer ;
}

// j'ai mis ça dans render, mauvaise idée ?
protected override void Render( HtmlTextWriter writer )
{
// si je le met pas, je m'en sors pas...
base.Render(writer) ;

byte[] buffer = GetPdf() ;

Response.ContentType = "Application/pdf" ;
Response.BinaryWrite(buffer) ;
Response.End() ;
}




Avatar
Ambassadeur Kosh
"Frederic Melantois" wrote in message
news:cmagh4$im5$
Bonjour Ambassadeur,

Regardez dans les options d'Acrobat Reader, il y a une option qui permet
d'ouvrir le pdf dans le navigateur.
C'est bien évidemment une option côté client.

Il n'y a donc pas moyen de forcer (à partir du serveur) le client à lire


le
pdf dans le navigateur.

Frédéric Mélantois



quand je poulpe un fichier sur un site internet quelconque, il m'ouvre bien
un Acrobat reader dans la barre IE...
que faut il que je fasse pour offrir la même possibilité à ceux qui
utilisent ma page aspx ?
et sur l'appel à base.render, je sais pas trop ce qui est bon ou pas...
Avatar
Ambassadeur Kosh
> un Acrobat reader dans la barre IE...



oups, barre... je voulais dire fenetre :)
Avatar
Paul Bacelar
Le plus simple c'est de comparer avec Ethereal les deux flux HTTP envoyés.
--
Paul Bacelar

"Ambassadeur Kosh" wrote in message
news:
> un Acrobat reader dans la barre IE...

oups, barre... je voulais dire fenetre :)




Avatar
Ambassadeur Kosh
> Le plus simple c'est de comparer avec Ethereal les deux flux HTTP envoyés.



j'essaye ça.
merci du coup de pouce.
Avatar
Frederic Melantois
Bonjour,

Ton problème semble venir du fait que tu as peut-être déjà quelque chose
dans ta page.

1/ Tu peux mettre tes Response dans Page_Load.

private void Page_Load(object sender, System.EventArgs e)
{
byte[] buffer = GetPdf() ;

Response.ContentType = "Application/pdf" ;
Response.BinaryWrite(buffer) ;
Response.End() ;
}

ou

2/ Définir toi même un Http Handler pour générer ton pdf. A noter que la
page aspx est un Http Handler (dans le 1, on ne fait que détourner son usage
courant).

voir un article de Fabrice Romelard
http://www.asp-php.net/tutorial/asp.net/httphandlers.php?page=1

Frédéric


"Ambassadeur Kosh" a écrit dans le message de
news:
> un Acrobat reader dans la barre IE...

oups, barre... je voulais dire fenetre :)




Avatar
Sacha
Ou alors effacer le buffer avec Response.Clear() avant d'envoyer le flux
pdf...

.Sacha


"Frederic Melantois" a écrit dans le message de
news:cmcm53$6em$
Bonjour,

Ton problème semble venir du fait que tu as peut-être déjà quelque chose
dans ta page.

1/ Tu peux mettre tes Response dans Page_Load.

private void Page_Load(object sender, System.EventArgs e)
{
byte[] buffer = GetPdf() ;

Response.ContentType = "Application/pdf" ;
Response.BinaryWrite(buffer) ;
Response.End() ;
}

ou

2/ Définir toi même un Http Handler pour générer ton pdf. A noter que la
page aspx est un Http Handler (dans le 1, on ne fait que détourner son


usage
courant).

voir un article de Fabrice Romelard
http://www.asp-php.net/tutorial/asp.net/httphandlers.php?page=1

Frédéric


"Ambassadeur Kosh" a écrit dans le message de
news:
> > un Acrobat reader dans la barre IE...
>
> oups, barre... je voulais dire fenetre :)
>
>




1 2