Odpowiedzi:
Właśnie napisałem bibliotekę o nazwie jsPDF, która generuje pliki PDF przy użyciu samego Javascript. Jest wciąż bardzo młody i wkrótce dodam funkcje i poprawki błędów. Otrzymałem również kilka pomysłów na obejścia w przeglądarkach, które nie obsługują identyfikatorów URI danych. Jest licencjonowany na podstawie liberalnej licencji MIT.
Natknąłem się na to pytanie, zanim zacząłem je pisać i pomyślałem, że wrócę i dam znać :)
Generuj pliki PDF w JavaScript
Przykład utwórz plik PDF „Hello World”.
// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()
doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
Inną biblioteką javascript, o której warto wspomnieć, jest pdfmake .
Obsługa przeglądarki nie wydaje się być tak silna jak jsPDF, nie ma też opcji kształtów, ale opcje formatowania tekstu są bardziej zaawansowane niż opcje obecnie dostępne w jsPDF.
Utrzymuję PDFKit , który również obsługuje pdfmake (wspomniany już tutaj). Działa zarówno w węźle, jak i przeglądarce, i obsługuje wiele rzeczy, których inne biblioteki nie robią:
Sprawdź http://pdfkit.org/, aby uzyskać pełny samouczek, aby zobaczyć na własne oczy, co potrafi PDFKit. A na przykład, jakie rodzaje dokumentów można wytworzyć, sprawdź dokumenty w formacie PDF wygenerowanym z niektórych plików Markdown za pomocą samego PDFKit: http://pdfkit.org/docs/guide.pdf .
Możesz także wypróbować go interaktywnie w przeglądarce tutaj: http://pdfkit.org/demo/browser.html .
Innym interesującym projektem jest texlive.js .
Pozwala skompilować (La) TeX do PDF w przeglądarce.
Możesz skorzystać z tej bezpłatnej usługi, dodając link, który tworzy pdf z dowolnego adresu URL (np. Http://www.phys.org ):
Nawet jeśli możesz wygenerować plik PDF w pamięci JavaScript, nadal będziesz miał problem z przesłaniem tych danych do użytkownika. JavaScript ma trudności z popchnięciem pliku do użytkownika.
Aby przekazać plik użytkownikowi, należy wykonać przesłanie na serwer, aby przeglądarka otworzyła okno dialogowe zapisywania.
Powiedziawszy to, generowanie plików PDF naprawdę nie jest zbyt trudne. Po prostu przeczytaj specyfikację.