Apertura automatica PDF

domenica 28 ottobre 2007 - 21.26

squilibrio Profilo | Expert

Ciao a tutti, se creo al volo un PDF tramite qualche cosa del tipo

string pdfFileName = "Et.pdf";
Document document = new Document(PageSize.A4.Rotate(), 50, 50, 50, 50); //margins: left, right, top, bottom
PdfWriter.GetInstance(document, new FileStream(Server.MapPath(pdfFileName), FileMode.Create));

document.Open();

.....
document.Close();

Come posso far aprire il PDF automaticamente??

con questo codice viene solo salvato il PDF, io non vorrei salvarlo ma aprirlo!

Grazie

freeteo Profilo | Guru

ciao,
quando apri il writer gli passi uno stream, che nel tuo caso è quello che serve per scrivere su un file su disco.
Invece di usare quello, puoi usare direttamente lo stream di output della pagina per scriverci dentro il pdf generato da codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

squilibrio Profilo | Expert

Ci avevo già provato ma senza successo

avevo messo


string pdfFileName = "Etichetta.pdf";
Document document = new Document(PageSize.A4.Rotate(), 50, 50, 50, 50); //margins: left, right, top, bottom

PdfWriter.GetInstance(document, Response.OutputStream);

document.Open();

...

document.Close();

e nella pagina HTML solo:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Etichetta.aspx.cs" Inherits="Etichetta" %>

freeteo Profilo | Guru

ciao,
scusa ma che errore ti dava?

Ti posto una pagina di esempio che va (ovviamente con itextsharp.dll nella bin):


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

squilibrio Profilo | Expert

ufffff non apre!!!!!!

cosa sbaglio??? (vedo solo una pagina HTML bianca)


ma se "scommento" questa parte

//PdfWriter.GetInstance(document, new FileStream(Server.MapPath(pdfFileName), FileMode.Create));

il file viene creato

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Etichetta.aspx.cs" Inherits="Etichetta" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">

</form>
</body>
</html>




public partial class Etichetta : System.Web.UI.Page
{

int idRiga; //ID spedizione

protected void Page_Load(object sender, EventArgs e)
{
idRiga = Convert.ToInt32(Request.QueryString["idSpedizione"]);

Response.ContentType = "application/pdf";

//Viene visualizzato il dettaglio della riga selezionata
if (idRiga != 0)
{
//************************************************************
//******************* GENERAZIONE PDF ***********************
//************************************************************

dbm = dbConnection.OpenDB();
//Vengono caricati i dati nel DataSet
dbm.DatabaseDisconnesso = tbl;
string qrySelect = "dsfdsfdfd";
dbm.CaricaTabella(tbl.web, qrySelect, true);


int colli = (int)tbl.web[0].colli;

string pdfFileName = "Etichetta.pdf";
Document document = new Document(PageSize.A4.Rotate(), 50, 50, 50, 50); //margins: left, right, top, bottom
//PdfWriter.GetInstance(document, new FileStream(Server.MapPath(pdfFileName), FileMode.Create));
PdfWriter.GetInstance(document, Response.OutputStream);

document.Open();

//page header
Phrase headerPhrase = new Phrase("fdsfdsfds", FontFactory.GetFont("Verdana", 20));
HeaderFooter header = new HeaderFooter(headerPhrase, false);
header.Alignment = Element.ALIGN_LEFT;
document.Header = header;
document.Add(headerPhrase);

//page footer
HeaderFooter footer = new HeaderFooter(new Phrase("fdsafsfsafdsa "), false);
document.Footer = footer;

.....

document.Close();

//************************************************************
//***************** FINE GENERAZIONE PDF *********************
//************************************************************

}

}
}

freeteo Profilo | Guru

ciao,
ma hai provato a fare copia-incolla della pagina che ti ho postato io? dovrebbe funzionare nel tuo progetto

L'unica cosa che vedo che potrebbe dare fastidio è il codice:
Response.ContentType = "application/pdf";

che io nella mia pagina non faccio...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5