【问题标题】:Set images on Pdf using itextsharp使用 itextsharp 在 Pdf 上设置图像
【发布时间】:2013-04-09 06:12:48
【问题描述】:

我正在使用 WCF 服务来创建一个 pad 文件,并希望在创建的 pdf 上设置图像。 下面是我的代码。它给了我错误“对象引用未设置为对象实例”

 string str = System.Web.HttpContext.Current.Request.MapPath("App_Data/suc.png");
 Image imgCheckBoxChecked = Image.GetInstance(str); 

我尝试的另一件事给了我错误:找不到文件 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\suc.png: 下面是我的其他代码

  Image imgCheckBoxChecked = Image.GetInstance("App_Data/suc.png");

  cell.AddElement(imgCheckBoxChecked);
  cell.Colspan = 4;
  table.AddCell(cell);

关于如何解决此错误并在 pdf 上设置图像的任何想法。 谢谢

【问题讨论】:

    标签: asp.net wcf itextsharp wcf-data-services


    【解决方案1】:

    您可以使用AppDomain.BaseDirectory 获取主dll 的目录,之后您可以使用它获取图像dll 的路径,如Path.Combine(AppDomain.BaseDirectory, "App_Data\\suc.png"),如果您在ASP.NET 中托管服务,并且该dll 是在Bin 目录中,您可以使用相对路径,例如Path.Combine(AppDomain.BaseDirectory, "..\\App_Data\\suc.png")

    【讨论】:

    • 感谢您的回复,但它给了我错误:“非静态字段、方法或属性 'System.AppDomain.BaseDirectory.get' 需要对象引用”
    • BaseDirectoryAppDomain 类的属性,要获取当前的AppDomain,您可以使用AppDomain.CurrentDomain,因此最终代码将为AppDomain.CurrentDomain.BaseDirectory
    【解决方案2】:
    string pdfPath = "~/PDF/File_1.pdf";
    iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(Server.MapPath("~/image.JPG"));
    img.ScalePercent(100f);
    Document doc = new Document();
    PdfWriter.GetInstance(doc, new FileStream(Server.MapPath(pdfPath), FileMode.Create));
    doc.Open();
    doc.Add(new Paragraph(sb.ToString()));
    doc.Add(img);
    doc.Close();
    

    【讨论】:

    • 感谢您的回复.. 因为我正在处理 WCF 服务我的代码在一个类文件中,我没有找到 server.mappath.and 我也尝试 string str = System.Web.HttpContext.Current .Request.MapPath("App_Data/suc.png");但它没有工作。
    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多