imageToPdf.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. export function printCurrentPage() {
  2. return new Promise((resolve, reject) => {
  3. let remote = window.nodeRequire("electron").remote;
  4. document.querySelector("#app").style = "display: none";
  5. remote.getCurrentWindow().webContents.printToPDF(
  6. {
  7. marginsType: 1,
  8. pageSize: "A4",
  9. printBackground: false,
  10. landscape: false,
  11. },
  12. (error, data) => {
  13. document.querySelector("#app").style = "display: block";
  14. if (error) {
  15. reject(error);
  16. }
  17. // this.isPrint = false;
  18. //Synchronous
  19. // let filename = dialog.showSaveDialog(WIN, options);
  20. // // console.log(filename);
  21. // if (!filename) return;
  22. const tmpFolder = window.nodeRequire("os").tmpdir();
  23. const filename = tmpFolder + "/提交答案-" + Date.now() + ".pdf";
  24. const fs = window.nodeRequire("fs");
  25. // TODO: choose pdf file name
  26. // 按数据模型文档,此处没有file name,所以暂时只能是固定的名称
  27. fs.writeFile(filename, data, (error) => {
  28. if (error) {
  29. // this.$alert(error, "失败", {
  30. // confirmButtonText: "确定",
  31. // });
  32. // throw error;
  33. reject(error);
  34. }
  35. console.log("Write PDF successfully." + filename);
  36. resolve(filename);
  37. // this.$alert("导出PDF成功", "成功", {
  38. // confirmButtonText: "确定",
  39. // });
  40. });
  41. }
  42. );
  43. });
  44. }