提取文档中的作者信息
基于js,在用户上传docx等word相关文档时,提取作者和文档创建时间。
提取文档中的作者信息
简述:
因某业务需要,需要在用户上传docx等文件信息时,提取作者信息,进行比对,防止重复提交等等。
库:
需要借组两个库 jszip、docxtemplater
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/docxtemplater/3.13.0/docxtemplater.js"></script>代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upload DOCX and Get Author Info</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/docxtemplater/3.13.0/docxtemplater.js"></script>
</head>
<body>
<input type="file" id="fileInput" />
<p id="authorInfo"></p>
</body>
</html>
<script>
document.getElementById('fileInput').addEventListener('change', function(event) {
const file = event.target.files[0];
if (!file) return;
const reader = new FileReader();
reader.onload = function(e) {
const arrayBuffer = e.target.result;
JSZip.loadAsync(arrayBuffer).then(function(zip) {
zip.file('docProps/core.xml').async('text').then(function(coreXml) {
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(coreXml, "application/xml");
const author = xmlDoc.getElementsByTagName('dc:creator')[0]?.textContent || '未找到作者信息';
const createTime = xmlDoc.getElementsByTagName('dcterms:created')[0]?.textContent || '未找到创建时间';
document.getElementById('authorInfo').innerText= `作者:${author}\n创建时间:${createTime}`;
});
});
};
reader.readAsArrayBuffer(file);
});
</script>
