Günaydın, itextsharp kütüphanesini kullanarak mevcut sayfayı bir pdf'ye kaydetmeme izin ver ve sonra içindeki geçici bir klasöre kaydet site otomatik olarak. Ancak, yapmaya devam ettiği tek şey, dosyayı indirmeyi veya kaydetmem için bana tarayıcıyı tetiklemeyi sürdürmesiydi. Dosya bir geçici klasörde zaten kayıtlı, ben sadece bu tarayıcı iletişim indirme bir şekilde devre dışı bırakmak istiyorum. tavsiye lütfen. Herhangi bir yardım gerçekten takdir edilmektedir. Eğeritextsharp - sayfayı PDF'ye dönüştür ve otomatik olarak bir indirme iletişim kutusu açmadan geçici bir klasöre kaydetme
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();
sen (imzalı) tam yöntemini gönderir misiniz: Eğer aşağıdaki kod satırını kaldırırsanız
, tarayıcı dosyayı kaydetmek için ister olmasın? Geri dönmek istediğinize bağlı olarak Response.ContentType'ı "application/json" veya "application/pdf" yerine "application/pdf" olarak değiştirmek isteyebilirsiniz. Ayrıca, üstbilgiyi değiştirmeniz gerekir. Önce HttpContext ile başlayan her şeyi kaldırmayı deneyin (ilk 4 satır). –
@JorgeZuverza ile, tam yöntem imzasının amacınızı belirlemeye yardımcı olacağına katılıyorum. – iCode
Daha iyi sorular yazmak için bir ipucu: "hepinize günaydın" ı (geç öğleden sonralarımda yazdınız), "lütfen tavsiye edin", "herhangi bir yardımın takdir edilmesi" vb. kişi, ama teknik bir Soru-Cevap sitesinde aslında tam tersi: kabarık sözler, daha az kibar olarak karşımıza çıkıyor çünkü bu, sesi ekliyor ve okuyucunun zamanını harcıyor. –