2017-04-19 92 views
0

我使用XMLWorker将HTML解析为PDF。我遇到了图像问题。当位于单词之间的标签路径中的空格或西里尔文符号位于路径中时,来自HTML的图像不会添加到PDF中。为了解决空间问题,我使用了path.Replase(" ", "%20")path.Replase(" ", "+"),但它没有帮助。XMLWorker没有看到img(itextsharp)

我应该将img的路径转换为base64,并且在使用ImageProvider(AbstractImageProvider)之后如here

如果路径没有空格或西里尔符号,那么XMLWorker分析HMTL是正确的。

<img src="D:\c#\PdfItextSharp\HTML_to_PDF_book\HTML_to_PDF_book\bin\Debug\Data\Resources\Documentation\IASO\Modules\LearningFrame\Images\32x32-tree_add_subitem.png" class="icon"> 

但如果有在路径符号,即图像不添加到PDF

<img src="D:\c#\PdfItextSharp\HTML to PDF book\HTML to PDF book\bin\Debug\Data\Resources\Documentation\IASO\Modules\LearningFrame\Images\32x32-tree_add_subitem.png" class="icon"> 

\\HI-PC\AllUsers\Выгрузка\DebugHtmlToPdf\User manual - Instructor\bin\Data\Data\Screenshots\0e39c7d5-4489-4d8b-ae84-ee85a2e225ee.jpg 

我怎么能这么

谢谢。

+0

你能提供[sscce](http://sscce.org/)吗? – mkl

+0

@mkl,我加了。 – Naomiss

+1

但这些不是* URL *,那些是*文件系统路径*。根据HTML规范:“src属性必须存在,并且必须包含一个有效的非空URL,它可能被引用非交互式(可选动画)图像资源的空间包围,该资源既不是分页也不是脚本。” – mkl

回答

1

为了解决这个问题,我使用了下一个代码。感谢mkl他的帮助。

var uri = new System.Uri(tmpPath); 
var convertedURI = uri.AbsoluteUri;