Има ли начин да зададете име на файл, когато jspdf output()

Моят сайт рисува колонна диаграма. Имам бутон за запазване като PDF файл, показващ го преди записване.

Начинът, по който работи сега, е следният.

  1. google.visualization чертае диаграмата.
  2. html2canvas прави екранна снимка на диаграмата.
  3. jsPDF вмъква екранната снимка в PDF файл и я показва на потребителя.

Проблемът е името на PDF файла. Това е нещо като 5d78c1eb-0829-4e7e-8ffc-71cf1f102f56.pdf и url адресът е blob:http://example.com/5d78c1eb-0829-4e7e-8ffc-71cf1f102f56 Когато потребителят види PDF файла и щракне върху запазване, той получава това ужасно име на файл.

Сега показвам PDF файла по следния начин:

window.open(doc.output('bloburl'), '_blank');

Мога да задам желаното име на файл, ако променя този ред на това:

doc.save('sample-file.pdf');

Но в такъв случай файлът просто се изтегля, но първо трябва да го покажа.

Има ли начин да покажете PDF файла и да му дадете желано име? Опитах това:

window.open(doc.output('bloburl', {filename: 'myFileName.pdf'}), '_blank');

Но това не помогна.

Друг начин, който виждам, не е показването на PDF от jsPDF, а изпращането на изображения до сървъра и създаването на PDF файл там с помощта на TCPDF. Файловете, направени с TCPDF, могат да имат име, което аз му давам, но мисля, че е тъпо да изпращате изображенията там и обратно.

Така че въпросът е как мога да направя PDF и да го покажа на потребителя с името, което искам?


person Роман Забигалюк    schedule 09.08.2020    source източник
comment
Можете да зададете заглавието така: pdf.setProperties({ title: 'test' });   -  person Weihui Guo    schedule 12.08.2020
comment
Използвам тази команда и тя показва заглавието в раздела на браузъра и в лентата с инструменти на приставката за pdf, но не и в адресния ред и когато натисна изтегляне, използва тази абракадабра като име на файла. Сега търся начин да ви покажа снимка.   -  person Роман Забигалюк    schedule 15.08.2020
comment
Ето снимката ic.pics.livejournal.com/llill/8858779/ 1953/1953_900.png   -  person Роман Забигалюк    schedule 15.08.2020
comment
това е bloburl. Не съм сигурен, че можете да промените това. новата версия на jsPDF има изход с име pdfjsnewwindow. може да успеете да актуализирате кода и да добавите дефинирано от потребителя име на файл за изтегляне.   -  person Weihui Guo    schedule 17.08.2020
comment
@РоманЗабигалюк здравей приятел, намери ли решение? имам същия проблем...   -  person Sergio Cano    schedule 05.01.2021
comment
Всякакви решения Имам същия проблем   -  person Yash.S.Narang    schedule 19.01.2021


Отговори (1)


В момента отговорът е не. Можете да го изтеглите директно, както е споменато в приетия отговор на този въпрос: Изтегляне с име на файл

Но вие създавате objectUrl и следователно името на файла винаги е url. Може би бихте могли да създадете разширение за браузър за това...но все още не съм имал време да опитам. Освен това не можете да очаквате вашите посетители да имат инсталирано разширението.

person Nikolaus    schedule 04.02.2021