質問

ローカル.htmlファイルを使用して.pdfファイルに変換することにより、wkhtmltopdf(wkhtmltoxsharp lib)を使用しています。

HTML内には、.gif画像を備えたネットワークドライブへのWebリンクがあります。 .pdfを変換するときは、画像なしで出てきます。

これを達成する方法について何か考えはありますか?

これについては、Googleコードで詳細を説明しています.

役に立ちましたか?

解決

WKHTMLTOPDF 0.11.0 RC1のWindowsバージョンはGIF画像をサポートしていません。 回避策:入力HTMLのすべての画像を前処理し、それらをJPGに変換します。

記述されている問題: http://code.google.com/p/wkhtmltopdf/issues/detail?id=441

GIFはwkhtmltopdf 0.9.9で動作します。

他のヒント

私はこれがすでに答えられていることを知っていますが、誰かがこの情報を使用するかもしれないと思います:私はバージョンで作業しています 1.1.4 0.10およびi できる GIF、JPGなどを印刷します。

しかし、私ができること いいえ 仕事に取り掛かることはローカルページを持っています(で作業しています http://localhost/)ソースが相対パスでセットアップされた画像を変換します。

だからそれはこれで動作しませんでした:<img src="../somepath/echoimage.php?params" >

上記のソリューションでいくつかの画像タイプを疲れたのは、例に示されているように、動的画像を使用したからですが、それらのどれも助けにはなりませんでした。

最終的には機能しました src ここのような絶対的なパスを持っている:<img src="http://localhost/fullpath/echoimage.php?params" >

高さ/幅が与えられた場合、またはそれが動的な画像ではなかった場合、最初のシナリオ作業をテストする時間がありませんでした。この場合、絶対パスを設定することは受け入れられたので、私はそこで停止しました。

以下のコードを使用するだけで、MappedからAbsolute PathにHTML SRCを変更すると、画像が表示されます。 wkhtmltopdfは、JPEGとGIFの両方のタイプの画像を取得します

  Public Function getImage(ByVal input As String) As String
    If input Is Nothing Then
        Return String.Empty
    End If
    Dim tempInput As String = input
    Dim pattern As String = "<IMG(.|)+?>"
    Dim src As String = String.Empty
    Dim context As HttpContext = HttpContext.Current
    'Change the relative URL's to absolute URL's for an image, if any in the HTML code. 
    For Each m As Match In Regex.Matches(input, pattern, RegexOptions.IgnoreCase Or RegexOptions.Multiline Or RegexOptions.RightToLeft)
        If m.Success Then
            Dim tempM As String = m.Value
            Dim pattern1 As String = "src=['|""](.+?)['|""]"
            Dim reImg As New Regex(pattern1, RegexOptions.IgnoreCase Or RegexOptions.Multiline)
            Dim mImg As Match = reImg.Match(m.Value)
            If mImg.Success Then
                src = mImg.Value.ToLower().Replace("src=", "").Replace("""", "")
                If src.ToLower().Contains("http://") = False Then
                    'IIf you want to access through you can use commented src line below 
                    '   src = "src=\"" + context.Request.Url.Scheme + "://" + context.Request.Url.Authority + "/" + src + "\"";
                    src = "src=""" & Server.MapPath("~") & "\" & src & """"


                    Try
                        tempM = tempM.Remove(mImg.Index, mImg.Length)
                        tempM = tempM.Insert(mImg.Index, src)
                        'insert new url img tag in whole html code 
                        tempInput = tempInput.Remove(m.Index, m.Length)
                        tempInput = tempInput.Insert(m.Index, tempM)
                    Catch e As Exception
                    End Try
                End If
            End If
        End If
    Next
    Return tempInput
End Function

画像コードをCSSに定義した場合、それらのコードを削除すると、画像でPDFが取得されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top