AbcPdf - 不应用CSS的文档

时间:2010-01-20 20:18:54

标签: abcpdf

这可能更像是一个技术支持问题,但我想知道是否有其他开发人员遇到过这个问题:

我在ASP.NET代码中使用Abcpdf从HTML生成PDF。它工作正常,但一个用户正在生成没有应用CSS的PDF(IE8,Adobe Acrobat最新版本 - 与其他人一样)。由于这是唯一抱怨的用户,我确定这是一个本地设置,但我无法弄清楚什么会阻止css加载 - 浏览器设置? Acrobat设置?

有没有人有任何建议?

6 个答案:

答案 0 :(得分:3)

不同版本的Acrobat阅读器可能存在问题?我会调查一下。

这没有多大意义,因为AbcPdf使用服务端逻辑根据您用于创建文档的方法创建PDF(例如AddImageUrl vs手动绘制文档等)。

值得一提的是,WebSuperGoo(AbcPdf的供应商)的员工非常乐意回复此类支持问题。我遇到了一些他们产品的边缘案例,他们总是会及时采取解决方法或替代方案来及时解决。

答案 1 :(得分:3)

确保CSS样式表中有media =“print”!只是花了很长时间看着这个拉我的头发,并准备给WebSuperGoo发电子邮件,然后我想到了这个想法。 即将退出我对我的代码所做的所有更改并再次测试,但它看起来像EngineType.Gecko它需要是media =“print”,其中与EngineType.MSHtml一样,它可以是media =“screen”。 ....

很奇怪,但希望能帮助别人!

答案 2 :(得分:1)

确保CSS是绝对URL而不是相对URL,或者在HTML标题中添加基本标记

例如,而不是

<style type="text/css" href="/styles/somecss.css" rel="stylesheet" />

使用

<style type="text/css" href="http://myserver.com/styles/somecss.css" rel="stylesheet" />

此外,如果您的站点是SSL或经过身份验证,则您必须使样式表区域未经过身份验证,或者设置PDF对象的密码和用户名属性,以便ABCPdf可以进行身份​​验证

答案 3 :(得分:1)

您可以在第9版中尝试以下操作

doc.HtmlOptions.PageLoadMethod = 
     PageLoadMethodType.WebBrowserNavigate;

答案 4 :(得分:1)

我正在使用ABCpdf的第10版,我发现样式表路径应该是绝对的而不是相对的。

我将样式表路径从“C:\ MyProject \ Resources \ Styles.css”更改为“http:\ www.MyDomain.com \ Resources \ Styles.css”并且有效。

虽然版本6似乎正在使用相对路径。我没有用其他版本检查

根据WebSuperGoo support

(查询号:6.17)

  

HTML文件中不存在,因此它没有位置。

     

外部样式表和图像通常通过相对URL引用。因为HTML没有位置,所以无法解决   这些相关的参考文献。

     

因此,您需要提供样式表和图像链接作为绝对引用。或者您可以使用HTML BASE元素指定   适当的基地位置。或者您可以将HTML保存到文件中   适当的位置,然后使用AddImageUrl。

答案 5 :(得分:0)

你有没有尝试过;

theDoc.HtmlOptions.DoMarkup = true;

这会强制引擎在呈现之前处理HTML。