1

itextsharp dll を使用して Web ページを PDF で印刷しています。<img src="Images/flower.jpg" />html ファイルに があります。以下のボタンクリックイベントは、画像がない場合でも PDF を正常にレンダリングします。画像を使用すると、次のエラーが発生しました。

パス 'C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\Images\flower.jpg' の一部が見つかりませんでした

これが私のコードです:

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        this.Page.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        htmlparser.Parse(sr);
        pdfDoc.Close();
        Response.Write(pdfDoc);
        Response.End();
    }
4

1 に答える 1

2

最も簡単な解決策は、次のように変更することです。

<img src="Images/flower.jpg" />

に:

<img src="http://www.yourwebsite.com/Images/flower.jpg" />

それ以外の場合はServer.MapPath("Images/flower.jpg")、コードで完全な URL を取得するために使用できます。ただし、これは、コンパイル時に画像への相対パス (生の html へのアクセスを意味する) を知る必要があることを意味し、コードの保守性が低下します。

于 2013-10-23T21:18:32.787 に答える