@ckeditor/ckeditor5-export-pdf
Version:
Export to PDF feature for CKEditor 5.
23 lines • 9 kB
JavaScript
/*
* Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
*
*
*
*
* +---------------------------------------------------------------------------------+
* | |
* | Hello stranger! |
* | |
* | |
* | What you're currently looking at is the source code of a legally protected, |
* | proprietary software. Any attempts to deobfuscate / disassemble this code |
* | are forbidden and will result in legal consequences. |
* | |
* | |
* +---------------------------------------------------------------------------------+
*
*
*
*
*/
import{Command as _0x1a56e5,Plugin as _0x128e5a}from'@ckeditor/ckeditor5-core/dist/index.js';import{ButtonView as _0x1d83c3,MenuBarMenuListItemButtonView as _0x2014f1,SpinnerView as _0x608212,Notification as _0x29991b}from'@ckeditor/ckeditor5-ui/dist/index.js';import{collectStylesheets as _0x32d069}from'@ckeditor/ckeditor5-utils/dist/index.js';import{IconExportPdf as _0x4dcdec}from'@ckeditor/ckeditor5-icons/dist/index.js';function n(_0xc202f0,_0x542b4e){const t=_0xc202f0['t'];switch(_0x542b4e){case'Export\x20to\x20PDF':return t('Export\x20to\x20PDF');case'An\x20error\x20occurred\x20while\x20generating\x20the\x20PDF.':return t('An\x20error\x20occurred\x20while\x20generating\x20the\x20PDF.');case'PDF\x20export\x20started':return t('PDF\x20export\x20started');case'PDF\x20export\x20failed':return t('PDF\x20export\x20failed');case'PDF\x20export\x20successful':return t('PDF\x20export\x20successful');case'Exporting\x20PDF\x20document':return t('Exporting\x20PDF\x20document');default:return _0x542b4e;}}class e extends _0x1a56e5{constructor(_0x53fe3f){super(_0x53fe3f),this['set']('isBusy',!0x1),this['affectsData']=!0x1;}['refresh'](){this['isEnabled']=!this['isBusy'],this['value']=this['isBusy']?'pending':void 0x0;}['execute'](_0x2930c7={}){const _0x5da1ff=this['editor'],_0x7f94cb=_0x2930c7['converterUrl']||'https://pdf-converter.cke-cs.com/v1/convert/',_0x9f7c4e=_0x2930c7['dataCallback']||(_0x3c5147=>_0x3c5147['data']['get']()),_0x1a39c7=_0x5da1ff['plugins']['get']('ExportPdf'),_0x2fd846=_0x2930c7['token']||_0x1a39c7['_token'];return this['isBusy']=!0x0,this['refresh'](),_0x32d069(_0x2930c7['stylesheets']||['EDITOR_STYLES'])['then'](async _0x18f425=>{if(_0x5da1ff['ui']['ariaLiveAnnouncer']['announce'](n(_0x5da1ff['locale'],'PDF\x20export\x20started')),_0x5da1ff['plugins']['has']('MergeFields')){_0x2930c7['converterOptions']||(_0x2930c7['converterOptions']={});const _0x179c28=_0x5da1ff['plugins']['get']('MergeFieldsEditing'),_0x3a12c2=_0x179c28['previewMode'],{prefix:_0x854ace,suffix:_0x11bf54}=_0x5da1ff['config']['get']('mergeFields'),_0x3d8bf7='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP88B8AAuUB8e2ujYwAAAAASUVORK5CYII=',_0x5b442d={'prefix':_0x854ace,'suffix':_0x11bf54,'data':{}};if('$labels'===_0x3a12c2){for(const _0xd0ee54 of _0x179c28['getMergeFieldsIds']())'image'===_0x179c28['getMergeFieldType'](_0xd0ee54)?_0x5b442d['data'][_0xd0ee54]=_0x3d8bf7:_0x5b442d['data'][_0xd0ee54]=_0x179c28['wrapInAffixes'](_0x179c28['getLabel'](_0xd0ee54)||_0xd0ee54);}else{const _0x4647ba='$defaultValues'===_0x3a12c2?_0x179c28['getDefaultValues']():_0x179c28['getDataSetValues'](_0x3a12c2,!0x0);for(const _0x5da459 of Object['entries'](_0x4647ba)){const [_0x12d4b3,_0x37da65]=_0x5da459;'image'===_0x179c28['getMergeFieldType'](_0x12d4b3)?_0x5b442d['data'][_0x12d4b3]=null!==_0x37da65?_0x37da65:_0x3d8bf7:_0x5b442d['data'][_0x12d4b3]=null!==_0x37da65?_0x37da65:_0x179c28['getLabel'](_0x12d4b3)||_0x12d4b3;}}_0x2930c7['converterOptions']['merge_fields']=_0x5b442d;}const _0x1a82c3=function(_0x3efdc4){const _0x136c2e=(_0x1ac058=_0x3efdc4?.['format']||'A4',{'letter':['21.6cm','27.9cm'],'legal':['21.6cm','35.6cm'],'tabloid':['27.9cm','43.2cm'],'ledger':['43.2cm','27.9cm'],'a0':['84.1cm','118.9cm'],'a1':['59.4cm','84.1cm'],'a2':['42.0cm','59.4cm'],'a3':['29.7cm','42.0cm'],'a4':['21.0cm','29.7cm'],'a5':['14.8cm','21.0cm'],'a6':['10.5cm','14.8cm']}[_0x1ac058['toLowerCase']()][0x0]),_0x12c1fe=_0x3efdc4?.['margin_left'],_0x59cd34=_0x3efdc4?.['margin_right'];var _0x1ac058;return'width:calc('+[_0x136c2e,..._0x12c1fe?[_0x12c1fe]:[],..._0x59cd34?[_0x59cd34]:[]]['join']('\x20-\x20')+');';}(_0x2930c7['converterOptions']),_0x1e51f6={'html':('\x0a\x09\x09\x09\x09\x09<!DOCTYPE\x20html>\x0a\x09\x09\x09\x09\x09<html>\x0a\x09\x09\x09\x09\x09\x09<head>\x0a\x09\x09\x09\x09\x09\x09\x09<title>CKEditor\x205\x20PDF\x20document</title>\x0a\x09\x09\x09\x09\x09\x09\x09<meta\x20charset=\x22utf-8\x22>\x0a\x09\x09\x09\x09\x09\x09</head>\x0a\x09\x09\x09\x09\x09\x09<body>\x0a\x09\x09\x09\x09\x09\x09\x09<div\x20class=\x22ck-content\x22\x20dir=\x22'+_0x5da1ff['locale']['contentLanguageDirection']+'\x22\x20style=\x22'+_0x1a82c3+'\x22>\x0a\x09\x09\x09\x09\x09\x09\x09\x09'+await _0x9f7c4e(_0x5da1ff)+'\x0a\x09\x09\x09\x09\x09\x09\x09</div>\x0a\x09\x09\x09\x09\x09\x09</body>\x0a\x09\x09\x09\x09\x09</html>\x0a\x09\x09\x09\x09')['trim'](),'css':_0x18f425,'options':_0x2930c7['converterOptions']},_0x5c42df={'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/pdf',..._0x2fd846?{'Authorization':_0x2fd846['value']}:null,'x-cs-app-id':_0x2930c7['appID']||'cke5'},'body':JSON['stringify'](_0x1e51f6)};return window['fetch'](_0x7f94cb,_0x5c42df)['then'](_0xdf4ae6=>{if(0xc8!==_0xdf4ae6['status'])throw _0xdf4ae6;return _0xdf4ae6['blob']();})['then'](_0x39bc65=>{_0x5da1ff['ui']['ariaLiveAnnouncer']['announce'](n(_0x5da1ff['locale'],'PDF\x20export\x20successful'));const _0x11c744='function'==typeof _0x2930c7['fileName']?_0x2930c7['fileName']():_0x2930c7['fileName'];this['_downloadFile'](_0x39bc65,_0x11c744||'document.pdf');});})['catch'](_0xdfbe31=>{const _0x5d7109=_0x5da1ff['plugins']['get']('Notification');throw _0x5da1ff['ui']['ariaLiveAnnouncer']['announce'](n(_0x5da1ff['locale'],'PDF\x20export\x20failed'),{'politeness':'assertive'}),_0x5d7109['showWarning'](n(_0x5da1ff['locale'],'An\x20error\x20occurred\x20while\x20generating\x20the\x20PDF.')),_0xdfbe31;})['finally'](()=>{this['isBusy']=!0x1,this['refresh']();});}['_downloadFile'](_0x4c0d27,_0x46e362){const _0x4fc11e=document['createElement']('a');_0x4fc11e['href']=window['URL']['createObjectURL'](_0x4c0d27),_0x4fc11e['download']=_0x46e362,_0x4fc11e['click'](),_0x4fc11e['remove']();}}class o extends _0x128e5a{static get['pluginName'](){return'ExportPdfUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x155c1c=this['editor'];_0x155c1c['ui']['componentFactory']['add']('exportPdf',()=>{const _0xde79a7=this['_createButton'](_0x1d83c3),_0x32ffe9=_0x155c1c['commands']['get']('exportPdf');return _0xde79a7['set']({'tooltip':!0x0}),_0xde79a7['bind']('isOn')['to'](_0x32ffe9,'isBusy'),_0xde79a7;}),_0x155c1c['ui']['componentFactory']['add']('menuBar:exportPdf',()=>this['_createButton'](_0x2014f1));}['_createButton'](_0x530761){const _0x159e37=this['editor'],_0x33252d=_0x159e37['config']['get']('exportPdf')||{},_0x244b48=_0x159e37['commands']['get']('exportPdf'),_0x1298ae=new _0x530761(_0x159e37['locale']),_0x5ed3db=new _0x608212();return _0x1298ae['children']['add'](_0x5ed3db),_0x5ed3db['bind']('isVisible')['to'](_0x244b48,'isBusy'),_0x1298ae['iconView']['bind']('isVisible')['to'](_0x244b48,'isBusy',_0x42c1c3=>!_0x42c1c3),_0x1298ae['set']({'icon':_0x4dcdec}),_0x1298ae['bind']('isEnabled')['to'](_0x244b48,'isEnabled'),_0x1298ae['bind']('label')['to'](_0x244b48,'isBusy',_0x1ff17d=>n(_0x159e37['locale'],_0x1ff17d?'Exporting\x20PDF\x20document':'Export\x20to\x20PDF')),this['listenTo'](_0x1298ae,'execute',()=>{_0x159e37['execute']('exportPdf',_0x33252d),_0x159e37['editing']['view']['focus']();}),_0x1298ae;}}class a extends _0x128e5a{['_token'];static get['pluginName'](){return'ExportPdf';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return['CloudServices',_0x29991b,o];}['init'](){const _0x2deb0d=this['editor'],_0x2089b0=_0x2deb0d['config']['get']('exportPdf')||{};_0x2deb0d['commands']['add']('exportPdf',new e(_0x2deb0d));const _0x484d3d=_0x2deb0d['plugins']['get']('CloudServices');!0x1===_0x2089b0['tokenUrl']?this['_token']=null:_0x2089b0['tokenUrl']?_0x484d3d['registerTokenUrl'](_0x2089b0['tokenUrl'])['then'](_0x28c551=>{this['_token']=_0x28c551;}):this['_token']=_0x484d3d['token'];}}export{a as ExportPdf,e as ExportPdfCommand};