2013-04-11 15 views
10

Amaç .pdf Aç:Nasıl yeni Tab'de

Bazı görevler doğru bitirdikten sonra yeni bir sekmede bir PDF yazdırmak gerekiyor. Adımlar

: Ben, sunucuya gidin PDF alıp yeni bir Tab'de açmalıyız usulü yerine getirmesini istiyorum, bunlarla çalışıyordum ama çalışmıyor:

Kontrolörü: Dışa

public ActionResult PrintPdf() 
    { 
     Response.AppendHeader("Content-Disposition", "inline; filename= " + MyClassPdfWriter.GetFileName); 
     return File(MyClassPdfWriter.GetMemoryStream, "application/pdf"); 
    } 

Görünüm:

function TasksSucced(){ 
     $.get('@Url.Action("PrintPdf", "Export", "new {target = _blank}")'); 
} 
+0

belki çalıştığını ama .. ben daha iyi bir seçenek var olmasa ben emin seçeneği için kullanacaksanız, bir göz alacağım biraz kirli .. jeje var: – user1520494

+0

evet aslında D kirli bir hack. : D Daha iyi bir şey bulursanız da haberim olsun. :) – Raman

+0

Raman Ty !! Onu buldum! :) – user1520494

cevap

11

çözüldü! Beni

window.open('/Export/PrintPdf'); 
+2

Pop-up engelleyici pdf chrome indirirken önlüyor, bunu önlemek için bir yol var mı? (Bu sayfaya kullanıcı tarafından izin verileceğini bildirmek, onların kavrayışlarının ötesindedir: / – cpacheco

1
$("a[target!='_blank'][href$='.pdf']").attr("target", "_blank"); 
1

Aşağıdaki çözümü URL pdf url

jQuery('<form target="_blank" action="' + URL + '" method="get"></form>').appendTo('body').submit().remove(); 

...

0

kimse benzer bir sorun yaşıyorsa kullanabilirsiniz için bu, hiçbiri çalışır Yukarıdaki çözümler benim için Google Chrome'da çalıştı (Firefox'ta çalıştılar)

Bu kod, tüm önemli rowsers:

var a = document.createElement('A'); 
var filePath = 'https://pathtopdf.com/file.pdf'; 
a.href = filePath; 
a.download = filePath.substr(filePath.lastIndexOf('/') + 1); 
document.body.appendChild(a); 
a.click(); 
document.body.removeChild(a);