首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TuesPechkin绘制本地图像?

使用TuesPechkin绘制本地图像?
EN

Stack Overflow用户
提问于 2015-07-22 20:22:31
回答 1查看 2.7K关注 0票数 3

我正在尝试使用TuesPechkin生成文档,到目前为止,它在处理URL图像时是完美无缺的。但是,当涉及到本地图像时,它似乎根本不生成图像,如下所示:

http://imgur.com/O5wYqYh

文件生成:

代码语言:javascript
复制
public static void ConvertDoc(String html)
    {         
        var document = new HtmlToPdfDocument
        {
            GlobalSettings =
            {
                ProduceOutline = true,
                DocumentTitle = "Form documents",                    
                Margins =
                {
                    Top = 1.8,
                    Left = 2.5,
                    Right = 2.5,
                    Bottom = 2.5,
                    Unit = Unit.Centimeters
                }
            },
            Objects =
            {
                new ObjectSettings { HtmlText = html, 
                    WebSettings = new WebSettings() {
                        LoadImages = true
                }
                }

            }
        };

        IConverter converter =  new ThreadSafeConverter(
            new PdfToolset(
                new Win32EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] result = converter.Convert(document);

        File.WriteAllBytes("C:/Users/jmann_000/Desktop/Test/program-test-2015.pdf", result);
    }
}
}

如上文所示,我还尝试将load映像设置为true,但没有工作。有问题的Html:

代码语言:javascript
复制
    <td>
         <table border="0" cellpadding="0" cellspacing="0" class="doc-header">
                    <tr>
                        <td width="300" align="left"><img src="img/logo.gif" width="240" alt="AeroCare"></td>
                        <td width="375"></td>
                    </tr>
         </table>
    </td>

如果图像是本地的,是否有正确的生成方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-11 13:54:01

wkhtmltopdf与根项目不在同一个文件夹中运行,因此任何相对于您的项目的路径对于wkhtmltopdf都是不正确的。

这就给相对图像和css样式表带来了问题。在任何情况下,您都需要提供文件的完全限定路径。

解决方案1

对于MVC和Razor

是为宿主应用程序提供完整的路径,以便从主机获取文件。

代码语言:javascript
复制
@String root = http://localhost:port/
<img src="@String.Format("{0}img/logo.gif",root)" width="240" alt="AeroCare">

解决方案2

使用文件系统路径获取文件。

代码语言:javascript
复制
@String root = @HostingEnvironment.MapPath("~");

如果您正在运行控制台应用程序,请使用

代码语言:javascript
复制
String root = AppDomain.CurrentDomain.BaseDirectory;

但是,您需要一个引擎来用完全限定的路径替换HTML文件中的所有链接。

解决方案3

找出从哪个目录中运行wkhtmltopdf,并尝试提供与该目录相关的链接。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31573271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档