无法使用 C# 在 asp.net 中使用 iTextSharp API 将 HTML 标记导出为 PDF?

2024-05-08

我有一个HTML标记有HTML Table and Images在里面。我在用iTextSharp API来转换HTML markup to PDF。但是,不幸的是iTextSharp无法导出HTML包含 PDF 图像和表格的标记。

错误:找不到网络路径。

Result must be: enter image description here

Code:

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using System.Data.SqlClient;
using System.Text;
using iTextSharp.text.html.simpleparser;
 public string strSelectUserListBuilder = @" <div style='width: 50%; border: 1 solid #000000; padding-bottom: 100; padding-left: 100;
        padding-right: 100; text-align: justify; text-justify: inter-word;'>
        <br />
        <table>
            <tr>
                <td>
                    <div id='divLeft'>
                        <p>
                            <img src='/images/log_out.png'  width='200' height='100' /></p>
                        <h2>
                            Packing slip</h2>
                        <h3>
                            Place this slip inside the box with your device.</h3>
                        <div id='divDeviceList' style='width: 600; text-align: left;' border='0' cellpadding='3'
                            cellspacing='1' rules='BOTH' frame='BOX'>
                            <table style='width: 600;'>
                                <tr>
                                    <td>
                                       <strong> ITEM</strong>
                                    </td>
                                    <td>
                                       <strong>  OFFER</strong>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        iPhone 5 32GB (AT&T)
                                    </td>
                                    <td>
                                        $205.00
                                    </td>
                                </tr>

                                <tr>
                                    <td align='right'>
                                    <hr />
                                     <strong><h3>Total Offer: &nbsp;</h3></strong>
                                    </td>
                                    <td>
                                    <hr />
                                      <strong> <h3>  $215.00</h3></strong>
                                    </td>
                                </tr>

                            </table>


                        </div>

                            <h3>
                                You have until 01/29/2014 to ship your device.</h3>
                        <p style='padding:10;'>
                            <i>If you send your device after the expiration date we cannot honor your initial offer.
                                We will not accept devices that have been reported lost or stolen.</i></p>
                        <br />
                    </div>
                </td>
                <td>
                    <div id='divRight'>
                     <div style='text-align:right;padding:15;'> <img src='/images/google-login.png' alt='barcode' /></div>
                        <table cellpadding='3' style='border: 1 solid orange;padding:20;'>

                        </tr>
                            <tr align='center'>
                                <td>
                                   <img src='/images/google-login.png'  />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <h3>
                                        'Find my iPhone' must be turned off</h3>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    This feature locks your device and will delay or reduce payment.
                                </td>
                            </tr>
                            <tr>
                                <td>
                                 <strong>How to deactivate:</strong></td>
                            </tr>
                            <tr>
                                <td>
                                    1. Tap the “settings” icon on your homescreen.</td>
                            </tr>
                            <tr>
                                <td>
                                    2. Tap iCloud from the settings menu. </td>
                            </tr>
                            <tr>
                                <td>
                                    3. If 'Find My iPhone' is on, tap the slider to turn it off.</td>
                            </tr>
                        </table>
                    </div>";

protected void HTMLToPDF()
    {

        String htmlText = strSelectUserListBuilder.ToString();
        Document document = new Document();
        PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + "MySamplePDF.pdf", FileMode.Create));
        document.Open();
        iTextSharp.text.html.simpleparser.HTMLWorker hw =
                     new iTextSharp.text.html.simpleparser.HTMLWorker(document);
        hw.Parse(new StringReader(htmlText));
        document.Close();
    }

protected void Page_Load(object sender, EventArgs e)
{
         HTMLToPDF();
}

我知道这个错误是由于图像路径造成的。但是,无法解决。

有什么解决办法吗?

帮助表示赞赏!


看一眼:使用 itextsharp 使用数据库中的图像创建 pdf https://stackoverflow.com/questions/9457643/creating-pdf-with-itextsharp-with-images-from-database

您需要在每个 img 元素的 src 属性中提供完整的物理路径(例如<img src="c:\myproject\images\image.jpg"/>)或者可以告诉 iTextSharp 所有图像的物理基本文件夹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 C# 在 asp.net 中使用 iTextSharp API 将 HTML 标记导出为 PDF? 的相关文章

  • 在搜索 List 时,为什么 Enumerable.Any(Func predicate) 比带有 if 语句的 foreach 慢

    最近有件事引起了我的好奇心 Why is the Enumerable Any Func
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当存在打开的 ASP.NET 4.5 Websocket 时,IIS 应用程序池无法回收

    我遇到了一个问题 可以通过以下方式复制 您需要 IIS8 因此必须在 Windows 8 或 Windows Server 2012 R2 上 在 IIS 管理器中创建一个新网站 例如在端口 8881 上的 TestWs 指向一个新文件夹
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检
  • 错误:无效使用不完整类型“类 Move”/未定义对 Move::NONE 的引用

    拜托 我不知道为什么这个简单的代码被拒绝 它给了我 2 个编译错误 请帮帮我 I use 代码 块 20 03 我的编译器是GNU GCC 移动 hpp class Move public Move Move int int public

随机推荐