2013-07-19 12 views

Odpowiedz

3
  1. Szukaj w jspd.js następująco:

    if(type == 'datauri') { 
        document.location.href ='data:application/pdf;base64,' + Base64.encode(buffer); 
    } 
    
  2. Dodaj:

    if(type == 'datauriNew') { 
        window.open('data:application/pdf;base64,' + Base64.encode(buffer)); 
    } 
    
  3. rozmowa ta opcja 'datauriNew' Saludos;)
+0

nie działa na iOS 8. znalazłem soloution z @atroy tutaj: http://stackoverflow.com/a/21629499/2978727 –

+0

Użyj "dataurlnewwindow" z najnowszą wersją. – Majestic12

2

za pomocą javascript można wysłać wygenerowany plik pdf do nowego okna, korzystając z następującego kodu.

var string = doc.output('datauristring'); 

var iframe = "<iframe width='100%' height='100%' src='" + string + "'></iframe>" 

var x = window.open(); 
x.document.open(); 
x.document.write(iframe); 
x.document.close(); 
+1

JsPdf ma również funkcjonalność do tego. Możesz wywołać następującą metodę. doc.output ("dataurlnewwindow"); – rod

67

oparciu o źródła można użyć parametru 'dataurlnewwindow' dla wyjścia():

doc.output('dataurlnewwindow'); 

źródła w github: https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L914

wszystkie możliwe przypadki:

doc.output('save', 'filename.pdf'); //Try to save PDF as a file (not works on ie before 10, and some mobile devices) 
doc.output('datauristring');  //returns the data uri string 
doc.output('datauri');    //opens the data uri in current window 
doc.output('dataurlnewwindow');  //opens the data uri in new window 
+1

Kiedy używam doc.output ("save", "filename.pdf"); Otrzymuję ten błąd: Uncaught ReferenceError: saveAs nie jest zdefiniowany jspdf.js: 975, używam chrome Wersja 29.0.1547.66 m. –

+5

@YaBasha Potrzebujesz również FileSaver.js. –

+0

@mggSoft thx do aktualizacji linii :) – kardave

15

Muszę użyć tego do bezpośredniego załadowania pliku PDF. Używanie doc.output('dataurlnewwindow'); tworzy dla mnie paskudny element iframe. Mac/Chrome.

var string = doc.output('datauristring'); 
    var x = window.open(); 
    x.document.open(); 
    x.document.location=string; 
+2

Nie musisz używać iframe po prostu użyj doc.output ('dataurlnewwindow', {}) –

+0

Bardzo fantazyjnie, dzięki. –

+1

@TheBackBencher 'doc.output ('dataurlnewwindow', {})' konsekwentnie zawiesza przeglądarkę (Firefox). –

1

Etap I: include plik i wtyczki

../jspdf.plugin.addimage.js 

Etap II: budowania zawartości PDF var doc = new jsPDF();

doc.setFontSize(12); 
doc.text(35, 25, "Welcome to JsPDF"); 
doc.addImage(imgData, 'JPEG', 15, 40, 386, 386); 

Etap III: obraz wyświetlacza w nowym oknie

doc.output('dataurlnewwindow'); 

Stepv IV: zapisz dane

var output = doc.output(); 
return btoa(output); 
+0

'doc.output (" dataurlnewwindow ");' otwiera, ale nie renderuje pliku PDF; możesz go jednak zapisać i wydrukować! –

5

Albo ... Można użyć do achive Blob to.

odczuwalna:

pdf.addHTML($('#content'), y, x, options, function() { 
    var blob = pdf.output("blob"); 
    window.open(URL.createObjectURL(blob)); 
}); 

Ten kod pozwala utworzyć obiekt blob w przeglądarce i pokazać je w nowej karcie.

+0

Trochę stara nitka, ale jak mogę wygenerować plik PDF poza addHTML? Wygląda na to, że "blob" jest zmienną lokalną, więc alert (blob) pokazuje "niezdefiniowany". Jakaś wskazówka? – Gene9y

0

kod JavaScript: Dodaj w linii końcowej

$("#pdf_preview").attr("src", pdf.output('datauristring')); 

HTML kod: Wstaw na ciele

<head> 
</head> 
<body> 
<H1>Testing</h1> 
<iframe id="pdf_preview" type="application/pdf" src="" width="800" height="400"></iframe> 
</body> 
</html> 

podglądu w tym samym oknie wewnątrz iframe wraz z innymi treści .

1

Rozwiązanie to działa na mnie

window.open(doc.output('bloburl')) 
+0

window.open (pdf.output ('bloburl'), '_blank'); działa dla mnie w Chrome – Alocus

0

To jak ja sobie z tym poradzić.

window.open(doc.output('bloburl'), '_blank'); 
Powiązane problemy