UNPKG

@froalacharts/features

Version:

Froala Charts - A collection of interactive charts to build data visualizations for web and mobile applications.

1 lines 2.04 kB
"use strict";exports.__esModule=true;exports.addImage=addImage;exports.getDataUrl=getDataUrl;var body=[],bodyLength=0,pageHeight,paperWidth,imageData,UNDEF;var DEFAULT_HEIGHT=500,DEFAULT_WIDTH=500;function setConfig(pH,pW){body=[];bodyLength=0;pageHeight=UNDEF;paperWidth=UNDEF;imageData=UNDEF;pageHeight=pH||DEFAULT_HEIGHT;paperWidth=pW||DEFAULT_WIDTH}function addImage(dataUrl,ph,pw){setConfig(ph,pw);imageData=atob(/base64,(.+?)$/g.exec(dataUrl)[1])}function getDataUrl(){return"data:application/pdf;base64,"+btoa(getThePdfString())}function pdfWrite(data){bodyLength+=data.length+1;body.push(data)}function getThePdfString(){var offset=[],length,i;pdfWrite("%PDF-1.7");offset[1]=bodyLength;pdfWrite("1 0 obj");pdfWrite("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]");pdfWrite("endobj");offset[4]=bodyLength;pdfWrite("4 0 obj");pdfWrite("<< /Length 36>>");pdfWrite("stream");pdfWrite("q "+paperWidth+" 0 0 "+pageHeight+" 0 0 cm /Im3 Do Q");pdfWrite("endstream");pdfWrite("endobj");offset[5]=bodyLength;pdfWrite("5 0 obj");pdfWrite("<</Type /Page /Parent 2 0 R /MediaBox [0 0 "+paperWidth+" "+pageHeight+"] /Contents [4 0 R ] /Resources <</ProcSet 1 0 R /Font <<>> /XObject <</Im3 3 0 R >> >> >>");pdfWrite("endobj");offset[3]=bodyLength;pdfWrite("3 0 obj");pdfWrite("<</Type /XObject /Subtype /Image /Width "+paperWidth+" /Height "+pageHeight+" /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length "+imageData.length+">>");pdfWrite("stream");pdfWrite(imageData);pdfWrite("endstream");pdfWrite("endobj");offset[2]=bodyLength;pdfWrite("2 0 obj");pdfWrite("<</Type /Pages /Kids [5 0 R ] /Count 1>>");pdfWrite("endobj");offset[6]=bodyLength;pdfWrite("6 0 obj");pdfWrite("<</Type /Catalog /Pages 2 0 R >>");pdfWrite("endobj");length=bodyLength;pdfWrite("xref");pdfWrite("0 7");pdfWrite("0000000000 65535 f ");for(i=1;i<=6;i++){pdfWrite(("0000000000"+offset[i]).slice(-10)+" 00000 n ")}pdfWrite("trailer");pdfWrite("<</Size 7 /Root 6 0 R >>");pdfWrite("startxref");pdfWrite(length);pdfWrite("%%EOF");return body.join("\n")}