- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在数据库中存储了 html 字符串/文档(如果您在 IE 浏览器中查看任何网页的源代码,生成的 html 代码),我需要使用 C#/.Net wcf 服务将此 html 转换为图像。当前代码使用的是 WebBrowser,它工作正常,只是它非常慢并且偶尔会遇到问题。
我想在不使用 WebBrowser 的情况下替换此功能(html 转换为 .png 图像)。我尝试使用 TheArtofdev.HtmlRenderer 似乎可以解决大多数问题,但是当它遇到 html(包含多个“div>”可能是?)时似乎遇到了问题,就像下面的 html 并且它没有正确生成图像。它仅为该 html 生成部分图像。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><style>p { padding: 0px; border: 0px ; margin: 0px;}ul { padding: 0px; border: 0px; margin: 0px;}</style><title>Item 18626</title></head><body><table border="0" width="700"><tr><td><strong><font face="verdana,geneva">Item 18626</font></strong><br></br></td></tr><tr><td><font face="verdana,geneva"><p style="font-weight:normal; font-weight:normal; ">Use the following passages to answer the question. </p><p style="font-weight:normal; "> </p><div align="center"><p><b>Mariana's Thesis Statement</b></p></div><div align="center"><table><colgroup style="width:46.6206em; " /><tbody><tr><td style="padding:0.2292em; border:0.0834em solid #000000; "><p style="">The Cold War policy of containment was a success.</p></td></tr></tbody></table></div><p> </p><div align="center"><p><b>Information on the Vietnam War</b></p></div><div align="center"><table><colgroup style="width:46.6206em; " /><tbody><tr><td style="padding:0.2292em; border:0.0834em solid #000000; "><p style="">The United States sent advisors to South Vietnam in 1954 to help the government fight communist guerrillas who wanted to reunite with communist North Vietnam. By 1964, the United States began sending combat troops. The U.S. military used extensive bombing and advanced technology; however, they were unable to turn the tide against communism. In 1973, the United States withdrew from South Vietnam, and in 1975, the government of South Vietnam fell to the communists and the country was reunited.</p></td></tr></tbody></table></div><p> </p><p>Mariana is writing a paper about the Cold War and discovers the information above on the Vietnam War. </p><p style="font-weight:normal; "> </p><p style="font-weight:normal; ">Describe one way the passage above refutes Mariana's thesis.</p><p style="font-weight:normal; "> </p><p style="font-weight:normal; ">Type your answer in the space provided.</p></font></td></tr><tr><td> </td></tr><tr><td><div id="001" style="border:solid black 1px;width:700px;overflow-x:hidden;overflow-y:visible;text-align:left;word-wrap:break-word"><p>it refutes because it dosent talk about the cold war it only talks about the vietnam war and it just says that the codntainment war was a success thats all it says about the containment war it really just talks about the vietnam war</p>
</div></td></tr></table><br></br></body></html>
我可以调整上面的 html 以某种方式使 HtmlRender 快乐吗?如果 HtmlRender 没有按预期工作,还有哪些其他选项(.Net/C#)?非常感谢任何帮助!!
最佳答案
您可以使用 headless browser 来做到这一点例如PhantomJS ,它有一个 NuGet package你可以安装在你的项目中。使用 PhantomJS,您可以 create a screenshot呈现的页面。
PhantomJS 包与 Selenium WebDriver 配对和 Selenium WebDriver Support Classes packages 允许您使用对另一个 stackoverflow 问题 Getting screenshot using PhantomJS in C# 的回答中给出的方法稍作修改来截取屏幕截图。 (请注意,您需要添加 OpenQA.Selenium.PhantomJS、OpenQA.Selenium.Support.Extensions 和 System.Drawing.Imaging 命名空间):
PhantomJSDriver driver = new PhantomJSDriver();
driver.Manage().Window.Maximize(); // optional
driver.Navigate().GoToUrl("file:///C://fullpath//file.html");
driver.TakeScreenshot().SaveAsFile("screenshot.png", ImageFormat.Png);
driver.Quit();
关于c# - 不使用 WebBrowser 的 Html 渲染到图像(C#/Net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299218/
运行这一行: webbrowser.open(page.path, new=0, autoraise=True) 我总是在新标签页中打开页面。 我怎样才能将它放在与它应该使用 new=0 相同的选项卡
基于 MSDN 上的这篇文章:How To Determine When a Page Is Done Loading in WebBrowser Control ,并且从过去关于 StackOver
我不明白为什么这行简单的代码行不通: // Bulding tree var declaration = new XDeclaration("1.0", "UTF-8", "yes"); var ro
这些是等价的吗? WebBrowser.Navigate('http://google.com'); 和 WebBrowser.Stop(); WebBrowser.Navigate('http://
我需要获取有关 Webbrowser 的滚动条(位置、大小、可见性)的信息控制外部应用程序,我尝试使用 GetScrollBarInfo来 self 之前的功能 question ,但该函数总是返回
目前在带有 WebBrowser 的 vb6 项目中,我遇到了一个问题。我想在我的应用程序中显示 adsense 广告,所以我创建了一个 html 页面并将文件放入服务器(adsense 批准),我尝
Windows Phone 8 应用程序,WebBrowser 控件。我通过 NavigateToString 加载了一大块 HTML (设置后 IsScriptEnabled=true )。一段时间
我有一个嵌入 WebBrowser 的 native Windows 应用程序, IE。 CLSID_WebBrowser 8856F961-340A-11D0-A96B-00C04FD705A2 S
提前致谢。 在我的应用程序中,我将 WebBrowser 控件替换为 Microsoft 的 WebView2 . 我想知道 WebView2 中 WebBrowser 控件的以下成员的等价物。 We
我怎样才能让 Web 浏览器调用自定义方案来启动 Activity,然后我想按下后退按钮但不返回 Web 浏览器。 我只想在调用网络浏览器然后调用我的方案启动另一个 Activity 时实现转发。当我
我们的目标是:嵌入在 .net winform 中的支持 Watin 的浏览器测试。 目前,我们正在使用 .net WebBrowser 控件将浏览器行为嵌入到 winform 中。我们使用如下代码将
我正在使用将 WebBrowser 控件嵌入到 Windows 窗体中的应用程序,我注意到一个严重的内存泄漏问题。在阅读了互联网上的其他类似案例后,问题似乎出在 IE 上。 我问过其他人是如何解决这个
我使用了“LoadCompleted”事件,基本上一旦收到该事件,我就需要截取屏幕截图(我已经构建)。问题是一旦这个事件结束,屏幕截图就只是空白(页面还没有加载),只有当我延迟 5-10 秒时,屏幕截
我试图自动打开多个用户配置文件,给定几个不同网站上的名称列表,但我找不到在新窗口中打开链接的方法,这意味着我无法对我打开的不同网站进行排序自己的橱窗收藏。 这是我的代码: import webbrow
我使用 vb.net + wpf+ System.Windows.Forms.WebBrowser 在 wpf 表单上显示网页内容。 此网站“http://manuim.com/laisha/”在控件
有没有办法检查用户是否安装了 PDF 阅读器? 也许使用 ActiveX 组件? 请你帮助我好吗? 最佳答案 不,我不这么认为 - 但默认情况下你总是可以通过谷歌的 PDF 阅读器直接链接你的链接 -
尝试在 WPF(C#/XAML、.NET 4.0)WebBrowser 应用程序中测试基本浏览器概念。到目前为止,唯一的问题是以编程方式缩放。有没有人有这方面的经验? MSDN 没有列出任何内容:ht
首先是一些定义,以保持清楚。 User: A live person, using the software Client: A company that is paying for a custom
尝试使用 webBrowser.Navigate("https://home.nest.com/") 加载页面时,我不断收到脚本错误.它会从我的普通互联网浏览器中正常显示,但不会在我的程序中显示。 谁
显然,WPF WebBrowser control 存在一些严重的键盘和焦点问题。 .我已经组装了一个简单的 WPF 应用程序,只有一个 WebBrowser 和两个按钮。该应用程序加载一个非常基本的
我是一名优秀的程序员,十分优秀!