簡體   English   中英

使用Javascript,如何將Google文檔轉換為PDF文件,然后將其“切片”為多個PDF?

[英]Using Javascript, how can I convert a Google doc to a PDF file then “slice” it into multiple PDFs?

我想復制我使用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實現中,步驟為:

  1. 將Google文檔轉換為PDF文件。
  2. 通過在整個PDF中搜索切片標簽,將PDF文件“切片”為多個PDF。
  3. 將切片的PDF放在指定的Google雲端硬盤文件夾中。

請注意,我在這里問了類似的問題。

但是,這是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 (eg, PDF) }).catch((err) => { throw new Error(err.message); }); } catch (e) { throw new Error('exportDocument: ' + e.message); } return rtrn; } // end exportDocument 

Blob是原始數據的二進制表示。

通常,使用PDF時,Blob會變成一個文件(文件是Blob),並保存到本地文件系統中。 有關示例,請參見如何在JavaScript中將Blob轉換為File

還有一個“文件保存器” npm庫,如果您不想自己做的話,我相信還有Angular / Typescript版本。

我還沒有做,但是我想如果您要用來處理PDF的庫期望有一個PDF文件,您可能可以將Blob轉換為PDF,而無需將其寫入文件系統,然后從那里開始工作。

順便說一句,您的問題有一個或多個“接近”票,因為您提出了一個非常廣泛的問題(即“我如何編寫整個應用程序”),而不是問您真正需要回答的針對性問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM