Как сохранить часть html в word в альбомной ориентации?
Я сохраняю таблицу в word и она по умолчанию сохраняется в портретной ориентации, как сохранять ее в альбомной? Вот код сохранения:
function exportHTML() {
var header = "<html xmlns:o='urn:schemas-microsoft-com:office:office' " +
"xmlns:w='urn:schemas-microsoft-com:office:word' " +
"xmlns='http://www.w3.org/TR/REC-html40'>" +
"<head><meta charset='utf-8'><title>Export HTML to Word Document with JavaScript</title></head><body>"
var footer = "</body></html>"
var sourceHTML = header + document.getElementById("source-html").innerHTML + footer
var source = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(sourceHTML)
var fileDownload = document.createElement("a")
document.body.appendChild(fileDownload)
fileDownload.href = source
fileDownload.download = 'Цифровой отчет.doc'
fileDownload.click()
document.body.removeChild(fileDownload)
}
https://codepen.io/anton-schneider/pen/ZEBxeZy
Ответы (1 шт):
Автор решения: Vladimir Gonchar
→ Ссылка
Класс секции должен быть оформлен строго как хочет Word. То есть Ваш вариант не совсем верный. Правильно будет обернуть вот так (без кавычек, но можете проверить и с ними):
<div class=Section2>...</div>
Потом Вы не подгружаете стили в документ. У Вас они есть в head в Вашем генераторе, но они не попадают в документ. Простым вариантом будет просто дописать их в вашу переменную header:
var header = "<html xmlns:o='urn:schemas-microsoft-com:office:office' " +
"xmlns:w='urn:schemas-microsoft-com:office:word' " +
"xmlns='http://www.w3.org/TR/REC-html40'>" +
"<head><meta charset='utf-8'><title>Export HTML to Word Document with JavaScript</title>" + `<style>
@page Section2 {
size: 841.7pt 595.45pt;
mso-page-orientation: landscape;
margin: 1.25in 1.0in 1.25in 1.0in;
mso-header-margin: .5in;
mso-footer-margin: .5in;
mso-paper-source: 0;
}
div.Section2 {
page: Section2;
}
</style>` + "</head><body>"
После этих исправлений документ отобразился нормально:
(Исправленный codepen: https://codepen.io/erriourru/pen/VwmXbKO)