teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

探してみた結果

2018/08/29 02:47

投稿

miyabi-sun
miyabi-sun

スコア21472

answer CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  JavaScriptはChrome等のブラウザ上で動的にDOMツリーを操作する事が主目的であり、
5
5
  ChromeやFirefox等のブラウザ作っている団体が自前のエンジンを組み込んでブラウザに内包し、配布しています。
6
- 依存ライブラリはWebKitを利用しているとのことなので、実体としてはJavaScriptのエンジンがどっかに入ってそうですが、PDFを出力するのにJavaScriptエンジンを動かす必要は皆無で、多分そのライブラリからJavaScriptを解析して自由に動かす事は出来ないと思います。
6
+ 依存ライブラリはWebKitを利用しているとのことなので、実体としてはJavaScriptのエンジンがどっかに入ってそうですが、PDFを出力するのにJavaScriptエンジンを動かす必要は皆無で、~~多分そのライブラリからJavaScriptを解析して自由に動かす事は出来ないと思います~~
7
7
 
8
- 何とかHTMLやCSSをそれらしい形に修正して
8
+ 基本的には何とかHTMLやCSSをそれらしい形に修正して
9
9
  JavaScriptが実行された想定の状態をエミュレートで作ってください。
10
10
  [phpQuery](https://github.com/punkave/phpQuery)みたいなライブラリとかを使えばなんとかなるんじゃないでしょうか?
11
11
 
@@ -19,4 +19,16 @@
19
19
 
20
20
  しかし、JavaScriptを動かしてPDFを保存したいとのことで、
21
21
  JavaScriptは初期処理をさっと行った後はイベントループにより、イベントの発生待ち状態になるものです。
22
- 何秒時点のスクショを取ればいいねん?…というのは誰にも保証出来ないので、たとえChromeのヘッドレスモードで開発を行うとしても、不具合が無いことを保証するところまでもっていくには結構しんどいんじゃないでしょうかね?
22
+ 何秒時点のスクショを取ればいいねん?…というのは誰にも保証出来ないので、たとえChromeのヘッドレスモードで開発を行うとしても、不具合が無いことを保証するところまでもっていくには結構しんどいんじゃないでしょうかね?
23
+
24
+ ---
25
+
26
+ > wkhtmltopdf(https://wkhtmltopdf.org/)がその役目を果たしてくれるのでは、と期待しているのですが無理筋でしょうか。
27
+
28
+ 確かにWebKitなので何かあるかも知れないと思って探したら、あるものですね。
29
+ リンクだけ張っておきます。
30
+ [wkhtmltopdfにてJS処理が完了後にPDF化したい](https://teratail.com/questions/62439#reply-98989)
31
+
32
+ 固定で10秒待つみたいな機能はあるようです。
33
+ ○○の要素をクリックしてから更に待つみたいな指定は流石にヘッドレスブラウザの領域になりますが、
34
+ まずはこの機能を使ってみてはどうでしょうか?

1

ちょっと調べた内容追記

2018/08/29 02:47

投稿

miyabi-sun
miyabi-sun

スコア21472

answer CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  JavaScriptはChrome等のブラウザ上で動的にDOMツリーを操作する事が主目的であり、
5
5
  ChromeやFirefox等のブラウザ作っている団体が自前のエンジンを組み込んでブラウザに内包し、配布しています。
6
- つまり、今調査している方向性ではどういてもJavaScriptを動作させる事不可能です。
6
+ 依存ライブラリはWebKitを利用しているとのことなの、実体としてJavaScriptのエンジンがっかに入ってそです、PDFを出力するのにJavaScriptエンジンを動かす必要皆無、多分そのライブラリからJavaScriptを解析して自由に動か事は出来ないと思います
7
7
 
8
8
  何とかHTMLやCSSをそれらしい形に修正して
9
9
  JavaScriptが実行された想定の状態をエミュレートで作ってください。