您好我是phantomjs的新手,從javascript,JSP或Java運行Phantomjs
我已經通過使用命令生成了HTML到PDF。但我想通過單擊頁面上的按鈕來生成PDF。並通過某種方式調用phantomjs來生成我給定的pdf的URL。
您也可以推薦一些API生成生成PDF爲HTML使用圖表和圖像,並可以方便地與JSP和Servlet集成。
您好我是phantomjs的新手,從javascript,JSP或Java運行Phantomjs
我已經通過使用命令生成了HTML到PDF。但我想通過單擊頁面上的按鈕來生成PDF。並通過某種方式調用phantomjs來生成我給定的pdf的URL。
您也可以推薦一些API生成生成PDF爲HTML使用圖表和圖像,並可以方便地與JSP和Servlet集成。
我假設你想要做的是從運行Java代碼中的可執行phantomjs。
你首先要知道你要執行的命令的完整路徑,你的情況,phantomjs。如果您下載了zip文件,則這是您將文件解壓縮到的目錄,您可以在其中看到phantomjs.exe可執行文件。如果通過包管理器下載了它,找出從終端上運行的完整路徑:
which phantomjs
這將顯示類似
一旦你有,你就必須使用Runtime類,它可以讓您使用exec直接在操作系統上運行命令。您運行的內容將作爲Process處理,您可以使用它來讀取命令的輸出。
一個沒有任何異常處理的快速例子,你應該做的。
Process process = Runtime.getRuntime().exec("/usr/bin/phantomjs myscript.js");
int exitStatus = process.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader (process.getInputStream()));
String currentLine=null;
StringBuilder stringBuilder = new StringBuilder(exitStatus==0?"SUCCESS:":"ERROR:");
currentLine= bufferedReader.readLine();
while(currentLine !=null)
{
stringBuilder.append(currentLine);
currentLine = bufferedReader.readLine();
}
System.out.println(stringBuilder.toString());
確保做正確的錯誤處理,因爲你正在創建過程中外部的JVM,該JVM並不完全控制,並可能造成問題,你的程序的其餘部分,如果你不管理錯誤很好。
非常感謝你Chamakits :) – user2439207
高興:D 如果這是你正在尋找的答案,你可以將它標記爲已接受,並將其投票。如果這不是你正在尋找的答案,那很好。 – chamakits
從phantomjs 1.8版可鬼司機,webdriver的Wire協議的實現。
它允許啓動phantomjs作爲遠程服務器使能與它HTTP通信。
$ phantomjs --webdriver=PORT
這使得與任何編程語言
進一步的細節來看看here
我也有同樣的要求輕鬆集成。我想將我的jsp頁面的一部分打印爲PDF。你能告訴你是如何實現它的? –