2016-11-08 15 views
0

私は、WebページをPDFファイルに変換するNReco.PdfConverterwkhtmlを使用してC#でWebサービスを作成しています。ページのHTML + CSS + JS全体を取得してWebサービスに送信

Webページ(SharePoint上)は、承認が必要であり、ユーザーが入力する必要があるフォームも含まれているため、WebサービスはそのページのURLに簡単にアクセスしてダウンロードすることはできません。

JavaScriptとCSSファイルは、SharePointからの数多くのJSファイルとスタイルシートを含め、フォームの正しいレンダリングにも重要です。

これまでのところ私の最高のアイデアはこれです:

  • ユーザーは「PDFを生成」をクリックすると、JavaScriptは(CSSファイルやJSファイルインラインを追加する)単一の文字列に全体の現在のページを変換します。

  • POSTこの文字列は、Webサービスに$.ajax()を使用しています。 NReco.PdfConverterを使用して

  • 、PDFにその文字列を変換し、それをファイルに保存するのは簡単です:

    var converter = new HtmlToPdfConverter 
    { 
        Margins = new PageMargins 
        { 
         Top = 0, 
         Bottom = 0, 
         Left = 0, 
         Right = 0 
        }, 
        CustomWkHtmlArgs = "--print-media-type" 
    }; 
    converter.GeneratePdf(htmlContent); 
    

どのようにでも(を含む単一ページのHTMLを生成するという考えに近づくだろうチェックボックスの状態、フォーム内のテキストなど)をブラウザに表示しますか?

これはすごく複雑ですか?誰かが別の解決策を知っていますか?

答えて

1

(Webフォーム認証が使用されている場合)あなたは、たとえば、適切なwkhtmltopdfオプションを使用して、認可クッキー(またはヘッダ)を渡すことができます。

var pdfGen = new HtmlToPdfConverter(); 
pdfGen.CustomWkHtmlArgs = String.Format(" --cookie {0} {1} ", 
    FormsAuthentication.FormsCookieName, 
    Request.Cookies[FormsAuthentication.FormsCookieName]); 
pdfGen.GeneratePdfFromFile("your_sharepoint_web_page_url", null, "output.pdf"); 

--- UPDATE ---

HTTPベーシック認証のために:

pdfGen.CustomWkHtmlArgs = String.Format(" --username {0} --password {1}", username, pwd); 
+0

は、私は答えに、基本的な認証のためのコードスニペットを追加しました – K48

+0

= "PASS --password --username LOGIN" CustomWkHtmlArgsで働いていました –

関連する問題