MediaWiki:CardToDocx.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
Linha 2: | Linha 2: | ||
function Export2Docx() { |
function Export2Docx() { |
||
const decodeEntities = (function () { |
const decodeEntities = (function () { |
||
// https://stackoverflow.com/questions/5796718/ |
// https://stackoverflow.com/questions/5796718/ |
||
// this prevents any overhead from creating the object each time |
// this prevents any overhead from creating the object each time |
||
const element = document.createElement('div'); |
const element = document.createElement('div'); |
Edição atual tal como às 13h40min de 21 de abril de 2024
/* jshint esversion: 10 */
function Export2Docx() {
const decodeEntities = (function () {
// https://stackoverflow.com/questions/5796718/
// this prevents any overhead from creating the object each time
const element = document.createElement('div');
function decodeHTMLEntities(str) {
let string = str;
if (str && typeof str === 'string') {
// strip script/html tags
string = string.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim, '');
string = string.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim, '');
// add by jaideraf:
string = str.replace(/ /g, String.fromCharCode(32));
element.innerHTML = str;
string = element.textContent;
element.textContent = '';
}
return string;
}
return decodeHTMLEntities;
})();
// Create document
const doc = new Document({
creator: 'Wikincat',
title: 'Ficha catalográfica',
description: 'Ficha catalográfica gerada pelo Wikincat',
});
const card = document.getElementById('card');
const p = card.getElementsByTagName('p');
doc
.createParagraph(document.getElementById('cipParagraph').textContent)
.center();
const borderParagraphStartCard = new Paragraph('').createBorder();
borderParagraphStartCard.Borders.addBottomBorder();
doc.addParagraph(borderParagraphStartCard);
doc.createParagraph('');
doc.createParagraph(decodeEntities(p[0].textContent)); // 1XX
doc.createParagraph('');
const arrayP1 = p[1].innerHTML.split('<br>'); // 24X
arrayP1.forEach((item) => {
doc.createParagraph(decodeEntities(item));
});
doc.createParagraph('');
const arrayP2 = p[2].innerHTML.split('<br>');
arrayP2.forEach((item) => {
doc.createParagraph(decodeEntities(item));
});
doc.createParagraph('');
doc.createParagraph(decodeEntities(p[3].textContent)); // Track
doc.createParagraph('');
if (p[4] !== undefined) {
const arrayP4 = p[4].innerHTML.split('<br>');
arrayP4.forEach((item) => {
doc.createParagraph(decodeEntities(item)).right();
});
}
doc.createParagraph('');
const borderParagraphEndCard = new Paragraph('').createBorder();
borderParagraphEndCard.Borders.addTopBorder();
doc.addParagraph(borderParagraphEndCard);
doc.createParagraph(document.getElementById('credit').textContent).center();
// Used to export the file into a .docx file
const packer = new Packer();
packer.toBlob(doc).then((blob) => {
saveAs(blob, 'Ficha.docx');
// console.log( "Documento criado com sucesso" );
});
}