2017-09-12 66 views
0
的NodeJS

我創建一個應用程序,其目的是要填寫一份長表,其中的細節都保存到遠程數據庫,使他們能夠回憶起/後編輯。當表單準備發出時,我需要將其轉換爲PDF並將其發送出去。最好,我想這樣做,而不使用用戶的文件系統,但如果這是不可行的,我可以使用它。使用陣營通過電子郵件發送生成的PDF文件/

我一直在尋找轉換爲PDF的解決方案,例如jsPDF,而對於電子郵件功能,它看起來像標準是使用nodemailer。但是,我不確定如何將一個鉤入另一箇中,特別是如果我要避開文件系統。

這是將與iPad和手機進行訪問,主要的web應用程序。我的應用程序內置在React中,使用Apollo/GraphQL進行查詢,並使用Express服務器,顯然它們都位於節點上。

是否有這個問題什麼好的解決辦法?在這一點上這是一個關鍵時刻的問題,任何幫助將不勝感激。我一直在撕掉我的頭髮。

+0

似乎這裏有些混亂......你想生成PDF,並從服務器(可能由應用程序的請求觸發)通過電子郵件發送,對不對?如果這是您想要的,請使用pdfkit,保存到緩衝區,然後將其附加到具有nodemailer的電子郵件。 – jcaron

+0

你說_「我最好不用**用戶的**文件系統來做這件事」_ - 後來 - _「我不確定如何將一個鉤入另一個,特別是如果我是將避免文件系統「_ ...請注意,在您的服務器上使用jsPDF(或pdfkit)和nodemailer,所以即使您編寫的文件不在_user的系統上,它也在您的系統上。 –

+0

@StephenP這是一個很好的觀點,我完全忘記了保存它在服務器端,嘿。一個「唔」的時刻,謝謝你指出。 – JayBauer

回答

0

我做的一切你所需要的東西,但它是不一樣的過程,它本質上是相同的。

首先,你會做在後端這一切。用戶將提交表單,您將從那裏獲取數據並開始工作。一旦你有數據,你會想創建一個PDF文件。要做到這一點,我使用這個:https://www.npmjs.com/package/html-pdf它的功能就像魅力一樣。爲了使用它,你需要有一些HTML。我使用ejs獲取HTML,更具體地說,使用render函數。 (你將你的數據傳遞給你想渲染的ejs文件,獲取html)。

一旦你有了html,把它轉換成pdf與該模塊(保存到某個tmp文件夾,覆蓋任何有或無論你想做什麼),你可以使用nodemailer發送文件(檢查文檔,發送附件只是添加數據的問題)。

這就是我所做的。當然,還必須有其他方式來做同樣的事情。

+1

我必須一直盯着這個太長的時間,因爲你剛剛描述的所有內容在你把它放出來的時候都顯得非常明顯。雖然很高興能夠獲得關於PDF創建工具的建議,但我遇到了很多選項。 我沒有在我的應用程序中使用ejs,只是JSX,儘管這不應該改變我的過程。感謝您將它放下,我會給它舊的大學嘗試並報告我的結果。 :) – JayBauer

+0

不,這個ejs應該改變任何東西。因爲這是在後端,而且ejs文件與React無關。它將被用於pdf – yBrodsky

相關問題