如何通过改变页面方向从JavaScript生成Word文档?(从肖像到风景)
是否可以从JavaScript创建一个Word文档,其中包含两个不同方向的页面(在同一文档中)?即第一页=肖像,第二页=风景?这正是我想要的。我试过很多东西。。如mso断开类型:分段断开;mso特殊字符:换行符;前分页符:始终;等等,但是运气不好。提前谢谢你!以下是我到目前为止的情况:如何通过改变页面方向从JavaScript生成Word文档?(从肖像到风景),javascript,ms-word,ms-office,landscape,portrait,Javascript,Ms Word,Ms Office,Landscape,Portrait,是否可以从JavaScript创建一个Word文档,其中包含两个不同方向的页面(在同一文档中)?即第一页=肖像,第二页=风景?这正是我想要的。我试过很多东西。。如mso断开类型:分段断开;mso特殊字符:换行符;前分页符:始终;等等,但是运气不好。提前谢谢你!以下是我到目前为止的情况: <script> function export_to_word() { var link, blob, url; blob = new Blob(['\ufeff', document.
<script>
function export_to_word() {
var link, blob, url;
blob = new Blob(['\ufeff', document.getElementById("docx").innerHTML], {
type: 'application/msword'
});
url = URL.createObjectURL(blob);
link = document.createElement('A');
link.href = url;
link.download = 'Document'; // default name without extension
document.body.appendChild(link);
if (navigator.msSaveOrOpenBlob )
navigator.msSaveOrOpenBlob( blob, 'Document.doc'); // IE10-11
else link.click(); // other browsers
document.body.removeChild(link);
};
</script>
<html xmlns:office="urn:schemas-microsoft-com:office:office"
xmlns:word="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<br>
<button onclick="export_to_word()">Export</button>
<div id="docx">
<style>
@page portrait_A4_page {
size:595.45pt 841.7pt;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;
}
div.portrait_A4_page { page:portrait_A4_page; }
@page landscape_A4_page {
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.landscape_A4_page { page:landscape_A4_page; }
</style>
<div class=portrait_A4_page>
<p>standard A4 portrait page information</p>
</div>
<div class=landscape_A4_page>
<table border=1>
<tr>
<td>a table that goes really wide</td>
</tr>
</table>
</div>
</div>
函数导出到单词(){
var链接、blob、url;
blob=新blob(['\ufeff',document.getElementById(“docx”).innerHTML]{
键入:“应用程序/msword”
});
url=url.createObjectURL(blob);
link=document.createElement('A');
link.href=url;
link.download='Document';//不带扩展名的默认名称
document.body.appendChild(链接);
如果(navigator.msSaveOrOpenBlob)
navigator.msSaveOrOpenBlob(blob,'Document.doc');//IE10-11
else链接。单击();//其他浏览器
document.body.removeChild(link);
};
出口
@页面纵向\ U A4 \页面{
尺寸:595.45磅841.7磅;
余量:1.0英寸1.25英寸1.0英寸1.25英寸;
mso收割台边距:.5in;
mso页脚边距:.5英寸;
mso论文来源:0;
}
第四页{第页:第四页;}
@页面横向\u A4\u页面{
尺寸:841.7磅595.45磅;
mso页面定位:横向;
余量:1.25英寸1.0英寸1.25英寸1.0英寸;
mso收割台边距:.5in;
mso页脚边距:.5英寸;
mso论文来源:0;
}
div.landscape_A4_页面{页面:landscape_A4_页面;}
标准A4纵向页面信息
一张非常宽的桌子
找到了解决方案!下面的代码在相同的JavaScript生成的Word文档中从纵向(第1页)更改为横向(第2页)。它可能会进一步简化,但这是可行的:
<script>
function export_to_word() {
var link, blob, url;
blob = new Blob(['\ufeff', document.getElementById("docx").innerHTML], {
type: 'application/msword'
});
url = URL.createObjectURL(blob);
link = document.createElement('A');
link.href = url;
link.download = 'Document'; // default name without extension
document.body.appendChild(link);
if (navigator.msSaveOrOpenBlob )
navigator.msSaveOrOpenBlob( blob, 'Document.doc'); // IE10-11
else link.click(); // other browsers
document.body.removeChild(link);
};
</script>
<html xmlns:office="urn:schemas-microsoft-com:office:office"
xmlns:word="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<br>
<button onclick="export_to_word()">Export</button>
<div id="docx">
<style>
table, tr, td, th{
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
text-align: left;
}
.normal {
font-family:"Calibri",sans-serif;
line-height:107%;
font-size:11.0pt;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
}
@page portrait_A4_page {
size:595.3pt 841.9pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;
}
div.portrait_A4_page { page:portrait_A4_page; }
@page landscape_A4_page {
size:841.9pt 595.3pt;
mso-page-orientation:landscape;
margin:72.0pt 72.0pt 72.0pt 72.0pt;
mso-header-margin:35.45pt;
mso-footer-margin:35.45pt;
mso-paper-source:0;
}
div.landscape_A4_page { page:landscape_A4_page; }
</style>
<div class=portrait_A4_page>
<span class=normal>
<p>standard A4 portrait page information</p>
</span>
<br clear=all style='mso-special-character:line-break; page-break-before:always'>
</div>
<br clear=all style='page-break-before:always; mso-break-type:section-break'>
<div class=landscape_A4_page>
<table class=normal>
<tr>
<td>a table that goes really wide</td>
</tr>
</table>
</div>
</div>
函数导出到单词(){
var链接、blob、url;
blob=新blob(['\ufeff',document.getElementById(“docx”).innerHTML]{
键入:“应用程序/msword”
});
url=url.createObjectURL(blob);
link=document.createElement('A');
link.href=url;
link.download='Document';//不带扩展名的默认名称
document.body.appendChild(链接);
如果(navigator.msSaveOrOpenBlob)
navigator.msSaveOrOpenBlob(blob,'Document.doc');//IE10-11
else链接。单击();//其他浏览器
document.body.removeChild(link);
};
出口
表,tr,td,th{
边框:1px纯黑;
边界塌陷:塌陷;
填充物:5px;
文本对齐:左对齐;
}
.正常{
字体系列:“Calibri”,无衬线;
线高:107%;
字体大小:11.0pt;
mso ascii字体系列:Calibri;
mso ascii主题字体:小拉丁文;
}
@页面纵向\ U A4 \页面{
尺寸:595.3磅841.9磅;
保证金:72.0分72.0分72.0分72.0分72.0分;
mso页眉边距:35.4吨;
mso页脚边距:35.4吨;
mso论文来源:0;
}
第四页{第页:第四页;}
@页面横向\u A4\u页面{
尺寸:841.9磅595.3磅;
mso页面定位:横向;
保证金:72.0分72.0分72.0分72.0分72.0分;
mso页眉边距:35.45磅;
mso页脚边距:35.45磅;
mso论文来源:0;
}
div.landscape_A4_页面{页面:landscape_A4_页面;}
标准A4纵向页面信息
一张非常宽的桌子
这是可能的,但我不确定是否使用您展示的方法。。。这似乎是Word的往返HTML文件格式?这是没有文档记录的,因此您最好使用Word创建一个具有所需功能的简单文档,将其保存为完整的HTML格式,然后查看HTML以了解它如何处理更改页面方向所需的分节符。谢谢-您的解决方案成功了!:)您应该回滚对问题的编辑,并将信息作为答案发布。Stack Overflow是一个问答网站,而不是论坛。问题应包含问题,答案应放在答案中-您可以回答自己的问题并进行标记(单击答案左侧的复选标记)。目前的情况是,经过一段时间后,这个问题将从网站上消失。如果有答案,将留给其他可能搜索相同信息的人。