pdf - 如何在没有元数据(即创建时间)的 Office 文档中使用 Add-in 程序获取数据?
问题描述
有一个函数可以逐字节检索 PDF 格式的文档:
Office.initialize = function (reason) {
$(document).ready(function () {
// If not using Word 2016
if (!Office.context.requirements.isSetSupported('WordApi', '1.1')) {
$('#hash-button-text').text("Not supported!");
return;
}
//$('#hash-button').click(calculate_hash);
$('#btn').click(getFile);
});
};
function getFile() {
Office.context.document.getFileAsync(Office.FileType.Pdf, { sliceSize: 99 },
function (result) {
if (result.status == "succeeded") {
var file = result.value;
var sliceCount = file.sliceCount;
var slicesReceived = 0, gotAllSlices = true, docdataSlices = [];
getSliceAsync(file, 0, sliceCount, gotAllSlices, docdataSlices, slicesReceived);
}
else {
console.log("Error");
}
}
);
}
function getSliceAsync(file, nextSlice, sliceCount, gotAllSlices, docdataSlices, slicesReceived) {
file.getSliceAsync(nextSlice, function (sliceResult) {
if (sliceResult.status == "succeeded") {
if (!gotAllSlices) { // Failed to get all slices, no need to continue.
return;
}
docdataSlices[sliceResult.value.index] = sliceResult.value.data;
if (++slicesReceived == sliceCount) {
file.closeAsync();
console.log("Done: ", docdataSlices);
}
else {
getSliceAsync(file, ++nextSlice, sliceCount, gotAllSlices, docdataSlices, slicesReceived);
}
}
else {
gotAllSlices = false;
file.closeAsync();
console.log("getSliceAsync Error:", sliceResult.error.message);
}
});
}
因此,接近 1800 字节的字节"CreationDate(D:20190218150353+02'00..."
在我们的例子中是不必要的。
它检索包含元的整个 PDF 文件,但是没有它是否可以得到它?
此致
解决方案
该document.getFileAsync
方法将始终返回整个文档(包括元数据);不可能让它返回少于整个文档的任何内容。
推荐阅读
- python - 使用 python pandas 我们如何选择非常特定的行和关联的列
- ios - 在 PJSIP 中启用 G711a 和 G711u 编解码器
- c# - 无法在启动配置时从委托访问 DI 服务?
- javascript - 如何增加属性的值(整数)并在猫鼬中使用一些限制进行更新?
- haskell - 在 haskell 标准输入上处理箭头键 ANSI 转义序列
- python - 可以在 Python ctypes 中需要 Windows 句柄的地方传递整数吗
- wordpress - Wordpress:为没有管理员用户隐藏“每页的项目数”选项
- android - 如何将 ImageView 从一个活动更改为另一个活动?
- regex - 正则表达式 - 压缩空格并删除名称中的点
- c# - 有没有办法在代码隐藏中设置容器的第 n 个孩子的样式?