![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol-poser/dom/printer.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.exportPoserElementAsPDF = exportPoserElementAsPDF; exports.PoserSerializer = exports.PoserPrintSerialHandlers = void 0; require("../css/print.css"); var _FileSaver = require("absol/src/Network/FileSaver"); var _PrintSerializer = _interopRequireDefault(require("absol/src/Print/PrintSerializer")); var _PaperPrinter = _interopRequireDefault(require("absol/src/Print/PaperPrinter")); var _Rectangle = _interopRequireDefault(require("absol/src/Math/Rectangle")); var _PrintSerialHandlers = require("absol/src/Print/PrintSerialHandlers"); var _Vec = _interopRequireDefault(require("absol/src/Math/Vec2")); /*** * * @type {PSHandler[]} */ var PoserPrintSerialHandlers = []; exports.PoserPrintSerialHandlers = PoserPrintSerialHandlers; PoserPrintSerialHandlers.push({ id: 'RibbonText', match: (elt, scope, stack) => elt.classList && elt.classList.contains('as-ribbon-button-text'), exec: (printer, elt, scope, stack, accept) => { var content = elt.getAttribute('data-text'); content = content.replace(/^" |"$/g, ''); var rect = _Rectangle.default.fromClientRect(elt.getBoundingClientRect()); rect.x -= printer.O.x; rect.y -= printer.O.y; rect.width *= 2; var attr = (0, _PrintSerialHandlers.computePrintAttr)(elt); printer.text(content, rect, attr.style); } }); PoserPrintSerialHandlers.push({ id: 'MaterialIcon', match: (elt, scope, stack) => elt.classList && elt.classList.contains('material-icons'), exec: (printer, elt, scope, stack, accept) => { var style = getComputedStyle(elt); var font = style.getPropertyValue('font'); var rect = _Rectangle.default.fromClientRect(elt.getBoundingClientRect()); if (rect.width * rect.height === 0) return; var canvas = document.createElement('canvas'); canvas.width = rect.width * 3; canvas.height = rect.height * 3; var ctx = canvas.getContext('2d'); ctx.font = "18px \"Material Icons\""; ctx.textBaseline = "top"; rect.x -= printer.O.x; rect.y -= printer.O.y; rect.width *= 3; rect.height *= 3; ctx.fillStyle = style.getPropertyValue('color'); ctx.fillText(elt.innerText, 10, 10); printer.image(canvas, rect); } }); // ap-editable-short-text-answer-text-field PoserPrintSerialHandlers.push({ id: "APTextField", match: (elt, scope, stack) => elt.classList && elt.classList.contains('ap-editable-short-text-answer-text-field') || elt.parentElement && elt.parentElement.classList.contains('ap-editable-long-text-answer-text-field'), exec: (printer, elt, scope, stack, accept) => { var rect = _Rectangle.default.fromClientRect(elt.getBoundingClientRect()); rect.x -= printer.O.x; rect.y -= printer.O.y; var C = rect.C().sub(new _Vec.default(0, 5)); var D = rect.D().sub(new _Vec.default(0, 5)); printer.line(D, C, { stroke: 'black', strokeWidth: 1 }); } }); var PoserSerializer = new _PrintSerializer.default(); exports.PoserSerializer = PoserSerializer; PoserSerializer.addHandlers(PoserPrintSerialHandlers); function exportPoserElementAsPDF(elt, opt) { var printer = new _PaperPrinter.default(); return PoserSerializer.serialize(elt, printer).then(printer => printer.exportAsPDF()).then(doc => { var blob = doc.output('blob'); (0, _FileSaver.saveAs)(blob, (opt.title || 'export') + '.pdf'); }); }