我想复制我使用Google文档和Javascript为Microsoft Word文档编写的VBA代码。它将用于我正在编写的Angular应用中。
VBA代码在文档中搜索“切片标签”,并在找到它们时生成PDF文件。例如,如果文档由15页组成,并且在第4、7和9页上有切片标记,则代码将生成四个文件:Page1-4.pdf,Page5-7.pdf,Page8-9.pdf和Page10 -15.pdf。
在Javascript实现中,步骤为:
请注意,我问了类似的问题here。
但是,这是Google脚本实现。我意识到,在Google脚本中无法解决页面边界上的文档。如果这样做的话,它将更加简单和整洁。相反,我想采取另一种方法。
下面是部分解决步骤1的Javascript代码。它使用此调用:
gapi.client.drive.files.export
但是,这不会创建PDF文件。相反,它会创建PDF内容的斑点。显然,期望您将Blob转换为实际文件,但Google API似乎没有提供执行此操作的方法。
async function exportDocument(id, mimeType) {
let rtrn;
try {
await gapi.client.drive.files.export(
{'fileId': id,
'mimeType': mimeType,
'fields': 'webViewLink',
})
.then(function(resp) {
// This returns a content blob NOT an actual file
rtrn = resp;
// TODO: How to transform the blob into an actual file (e.g., PDF)
}).catch((err) => {
throw new Error(err.message);
});
} catch (e) {
throw new Error('exportDocument: ' + e.message);
}
return rtrn;
} // end exportDocument
答案 0 :(得分:1)
Blob是原始数据的二进制表示形式。
通常,在处理PDF时,Blob会变成一个文件(文件是Blob), 并保存到本地文件系统。有关示例,请参见How to convert Blob to File in JavaScript
如果您不想自己做的话,还有一个“文件保存器” npm库,我相信还有Angular / Typescript版本。
我还没有做过,但是我想如果您要用来处理PDF的库期望有一个PDF文件,您可能可以将Blob转换为PDF,而无需将其写入文件系统,然后再工作从那里。
顺便说一句,您的问题有一个或多个“接近”票,因为您提出了一个非常广泛的问题(即“我如何编写我的整个应用程序”),而不是问您真正需要回答的针对性问题。