おはようございます、私は現在のページをPDFに保存して、itextsharpライブラリを使用してそれを一時フォルダに保存するサンプルコードを見つけました。サイトは自動的に。しかし、それが続けてきたことの1つは、ファイルをダウンロードまたは保存するようにブラウザを起動させ続けることでした。ファイルはすでに一時フォルダに保存されています。そのブラウザのダイアログを何とか無効にしたいだけです。お知らせ下さい。どんな助けでも本当に感謝しています。 ありがとうitextsharp - ページをPDFに変換し、ダウンロードダイアログを開かずに一時フォルダに自動保存する
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=RequestSummaryReport.pdf");
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/pdf";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
iTextSharp.text.Document pdfDocument = new iTextSharp.text.Document(PageSize.A3, 45, 5, 5, 5);
//PdfWriter writer = PdfWriter.GetInstance(pdfDocument, Response.OutputStream);
PdfWriter writer = PdfWriter.GetInstance(pdfDocument, new FileStream(Server.MapPath("~/temps/") + "mypdf.pdf", FileMode.CreateNew));
pdfDocument.Open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(pdfDocument, writer)));
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser xmlParse = new XMLParser(true, worker);
this.Page.RenderControl(htw);
StringReader sr = new StringReader(sw.ToString());
xmlParse.Parse(sr);
xmlParse.Flush();
pdfDocument.Close();
//Response.Write(pdfDocument);
Response.End();
を?返す内容に応じて、Response.ContentTypeを "application/json"または "application/html"ではなく "application/pdf"に変更したい場合があります。また、ヘッダーを変更する必要があります。最初にHttpContextで始まるものすべてを削除してください(最初の4行)。 –
私は@JorgeZuverzaに完全なメソッドの署名があなたの意図を判断するのに役立つことに同意します。 – iCode
より良い質問を書くためのヒント:「おはようございます」(あなたは午後遅くに書きました)、「助言してください」、「どんな助けもありがとう」などを削除してください。テクニカルQ&Aサイトでは、それは実際には逆です。ふわふわした言葉は、雑音を増やして読者の時間を無駄にするため、あまり丁寧ではありません。 –