7

Winnovative HTMLからPDFへのコンバーターを使用してaspxページをPDFに変換しようとしていますが、ページを変換する前に、JavaScriptを実行する必要があります。PDFに変換せずにスタンドアロンのaspxページをテストしたので、javascriptが機能することはわかっています。ただし、変換すると、JavaScriptが実行されていないように見えます。Winnovative Webサイト(http://www.winnovative-software.com/FAQ.aspx)のFAQを読みました。その結果、JavaScriptを実行できるようにするために、コードに以下を追加しました。

pdfConverter.ScriptsEnabled = True
pdfConverter.InternetSecurityZone = InternetSecurityZone.LocalMachine

このコードを追加しても機能しなかったので、メインのJavaScriptをコメントアウトし、非常に単純なJavaScriptをテストして、それが機能するかどうかを確認しました。私が試したJavaScriptは単純です:

var item = $(".items")[0];
items.style.display = "none";

「アイテム」のクラスを持つ要素は、ページ上のすべてを囲みます。PDFを再度生成したところ、期待通りにすべての内容が消えていました。これは、javascriptが実行されていることを意味します。

次に、JavaScriptが実行される前にPDFが生成されているのではないかと思ったので、効果が表示されません。Winnovative WebサイトのFAQで、PDFコンバーターにはConversionDelayプロパティがあり、PDFレンダリングを開始する前に、非同期コンテンツがロードされるのを待機する追加の時間を秒単位で指定できることがわかりました。だから私は以下を追加しました:

pdfConverter.ConversionDelay = 30

この遅延の後でも、私のjavascriptはまだ実行されません。誰かが何かガイダンスを提供できますか?ありがとう。

4

2 に答える 2

1

革新的な「EVOHTMLtoPDF Converter for .NET」の別の製品は、JavaScriptを適切に実行し、jqueryでも機能することがわかりました。

テストページは次のとおりです:http://www.evopdf.com/evopdfdemo/default.aspxそして私はこれらのjQueryレンダリングページで変換を正常に試しました:

jQueryアコーディオン(タブは正しくレンダリングされます)

jQueryページネーション(jqueryによって作成されたページ番号が表示されます)

この2つの例では、革新的なhtmlからpdfへの変換は失敗します。


編集:EVOライブラリには、「/」で始まらないなどの相対スクリプトに問題があるようです。

外部スクリプトをリンクする必要がある場合は、次の3つのオプションがあります。

  1. 次のような絶対パスを使用してスクリプト参照を追加します

    <script src="www.myserver.com/myjsfile.js" type="text/javascript"></script>
    
  2. <script>タグを使用して、元のページ内にスクリプトを挿入します

  3. 「/」のような相対パスを使用する

    <script src="/myjsfile.js" type="text/javascript"></script>
    
于 2011-11-09T23:13:40.617 に答える
0

この問題の 1 つの回避策は、JavaScript がブラウザーで実行された後にページ ソースを保存し、その HTML ファイルをコンバーターに渡すことです。

Firefox 用のWeb 開発者ツールバーをインストールし、[ソースの表示] -> [生成されたソースの表示] 機能を使用して、ページの HTML を現在の状態で取得し、それをファイルに保存できます。

于 2011-06-03T14:47:58.147 に答える