Работа с документами в javascript

33
ДОКУМЕНТЫ В JAVASCRIPT И НЕ ТОЛЬКО ДМИТРИЙ РАДЫНО

Upload: -

Post on 01-Jul-2015

218 views

Category:

Internet


0 download

DESCRIPTION

Работать с документами в JavaScript легко!

TRANSCRIPT

Page 1: Работа с документами в JavaScript

ДОКУМЕНТЫ В JAVASCRIPT И НЕ ТОЛЬКО

ДМИТРИЙ РАДЫНО

Page 2: Работа с документами в JavaScript

ВИДЫ ДОКУМЕНТОВ

• Текстовые документы – DOCX, DOC, RTF

• Таблицы – XLSX, XLS, CSV

• Portable document format - PDF

Page 3: Работа с документами в JavaScript

DOCX

Page 4: Работа с документами в JavaScript

RENDERING DOCX

MAMMOTH.JS - .DOCX TO HTML CONVERTER

• Headings

• Lists

• Images

• Bold, italics, underlines, superscript and subscript

• Links

• Line breaks

Clone on GitHub

Page 5: Работа с документами в JavaScript

RENDERING DOCX

MAMMOTH.JS - .DOCX TO HTML CONVERTERmammoth.convertToHtml({arrayBuffer: arrayBuffer}) .then(function(result) { output.innerHTML = result.value; }).done();

Page 6: Работа с документами в JavaScript

GENERATING DOCX

DOCXTEMPLATER

DocxTemplater

{#products} {name}, {price} €{/products}

Hello {name} !

{#repo} <b>{name}</b>{/repo}{^repo} No repos :({/repo}

Page 7: Работа с документами в JavaScript

GENERATING DOCX

DOCXTEMPLATER

var doc = new DocxGen().loadFromFile("template.docx", {});doc.applyTags({ "author": "MyFirstAuthorName", "products": [ {name:"Windows",price:100}, {name:"Mac OSX",price:200}, {name:"Ubuntu",price:0} ]});doc.output({ "download": true, name: "file.docx" });

Page 8: Работа с документами в JavaScript

GENERATING DOCX

DOCXTEMPLATER

Page 9: Работа с документами в JavaScript

DOCX.JS

Page 10: Работа с документами в JavaScript

DOC

Page 11: Работа с документами в JavaScript

RTF – RICH TEXT FORMAT

Page 12: Работа с документами в JavaScript

RTF – RICH TEXT FORMAT

Text: 43 bytesFile size: 41 667 bytes

Page 13: Работа с документами в JavaScript

RTF – RICH TEXT FORMAT

Page 14: Работа с документами в JavaScript

XLSX

Page 15: Работа с документами в JavaScript

JS-XLSX – PARSING FILEvar data = e.target.result, workbook = XLSX.read(data, {type: 'binary'}), name = workbook.SheetNames[0], data = workbook.Sheets[name], range = XLSX.utils.decode_range(data["!ref"]), json = XLSX.utils.sheet_to_json(data);

Page 16: Работа с документами в JavaScript

JS-XLSX – UTILS

decode_cell/range/row/colencode_cell/range/row/colsheet_to_csvsheet_to_jsonsheet_to_formulae

Page 17: Работа с документами в JavaScript

EXCEL-BUILDER.JS – GENERATE FILE

var data = [ ['Artist', 'Album', 'Price'], ['Buckethead', 'Albino Slug', 8.99], ['Buckethead', 'Electric Tears', 13.99], ['Buckethead', 'Colma', 11.34], ['Crystal Method', 'Vegas', 10.54], ['Crystal Method', 'Tweekend', 10.64], ['Crystal Method', 'Divided By Night', 8.99]];var workbook = EB.createWorkbook(), worksheet = workbook.createWorksheet({name: 'MyFirstWorkingSheet'}); worksheet.setData(data);var base64 = EB.createFile(workbook)

Page 18: Работа с документами в JavaScript

XLS

JS-XLSX = JS-XLS

Page 19: Работа с документами в JavaScript

CSV

Page 20: Работа с документами в JavaScript

CSV – PARSING FILE

var parseCSV = function(csvText) { var lines = csvText.split("\n"), line, i, data = [];

for (i = 0; i < lines.length; i++) { line = lines[i]; if (line.length > 0) { data.push(line.split(",")); } } return data;};

Page 21: Работа с документами в JavaScript

CSV – GENERATING FILE

var generateCSV = function(csvData) { var lines = [], i; for (i = 0; i < csvData.length; i++) { lines.push(csvData[i].join(",")); } return lines.join("\n");}

Page 22: Работа с документами в JavaScript

HTML TO XLSX

Page 23: Работа с документами в JavaScript

HTML TO XLSX

Page 24: Работа с документами в JavaScript

HTML TO XLSX

Page 25: Работа с документами в JavaScript

PDF.JS – PORTABLE DOCUMENT FORMATvar url = './helloworld.pdf';PDFJS.workerSrc = "scripts/pdf.worker.js";PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) { pdf.getPage(1).then(function getPageHelloWorld(page) { var desiredWidth = document.body.offsetWidth; var viewport = page.getViewport(1); var scale = desiredWidth / viewport.width; var viewport = page.getViewport(scale); var canvas = document.getElementById('the-canvas'); var context = canvas.getContext('2d'); canvas.height = viewport.height; canvas.width = viewport.width; var renderContext = { canvasContext: context, viewport: viewport }; page.render(renderContext); });});

Page 26: Работа с документами в JavaScript

GOOGLE DOCS VIEWER

Page 27: Работа с документами в JavaScript

GOOGLE DOCS VIEWER

<iframe class="docBox" src="http://docs.google.com/viewer?url=http://pathtofile.pdf&embedded=true"></iframe>

Page 28: Работа с документами в JavaScript

GOOGLE DOCS VIEWER

Page 29: Работа с документами в JavaScript

CLOUDCONVERT.ORG

Page 30: Работа с документами в JavaScript

CLOUDCONVERT.ORG

<form action=https://api.cloudconvert.org/convert method="POST" enctype="multipart/form-data"> <input type="hidden" name="apikey" value="…"> <input type="hidden" name="input" value="upload"> <input type="hidden" name="download" value="inline"> <input type="hidden" name="inputformat" value="docx"> <input type="hidden" name="outputformat" value="html"> <input type="file" name="file"> <input type="submit" value="Convert!"></form>

Page 31: Работа с документами в JavaScript

CLOUDCONVERT.ORG

Page 32: Работа с документами в JavaScript

ASPOSE.COM

Page 33: Работа с документами в JavaScript

QUESTIONS?

Дмитрий Радыно:

Twitter: @radyno Facebook: dmitry.radyno Email: [email protected]