- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以前成功使用过 wkhtmltopdf,但现在我有一个场景,我需要在启动该过程时使用特定的帐户。当我设置有效的用户名/密码时,标准输出流为空,返回码为 -1。一旦我注释掉用户名/密码,它就会按预期工作。
在 .Net 4、Win 7 64 位中对此进行测试。
class Program
{
static void Main(string[] args)
{
var wkhtmlDir = AppDomain.CurrentDomain.BaseDirectory;
var wkhtml = wkhtmlDir + @"\wkhtmltopdf.exe";
var info = new ProcessStartInfo(wkhtml);
info.CreateNoWindow = true;
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.UseShellExecute = false;
info.WorkingDirectory = wkhtmlDir;
info.Arguments = "http://www.google.com -";
var securePassword = new SecureString();
var password = "mypassword";
foreach (var c in password)
{
securePassword.AppendChar(c);
}
//comment out next three lines, and it works!
info.UserName = "myuser";
info.Password = securePassword;
info.Domain = "mydomain";
using (var process = Process.Start(info))
{
var output = process.StandardOutput.ReadToEnd();
// wait or exit
process.WaitForExit(60000);
var returnCode = process.ExitCode;
}
}
如果我注释掉 info.UserName、Password、Domain,输出有数据,否则如果我尝试使用凭据,输出为空且 returnCode 为 -1。
希望其他人遇到过这种情况,这似乎是一种常见的情况,我肯定遗漏了一些简单的东西......
感谢您的帮助!
最佳答案
我还在 .net 应用程序中使用 WKHTMLTOPDF。我发现的一些可能对您有帮助的事情是:
在您的情况下,您可能遇到写入错误并导致死锁的问题?
您可以将进程设置为异步读取标准错误和标准输出,就像我在下面的示例中所做的那样。希望对您有所帮助
sub doConversion()
dim p as System.Diagnostics.Process = new System.Diagnostics.Process()
p.StartInfo.FileName = "wkhtmltopdf.exe"
dim url as string = "[[[YOUR URL TO CONVERT]]]"
dim outfilename as string = "[[[WHERE YOU WANT THE FILE]]]"
dim switches as string = ""
switches &= "--disable-smart-shrinking --print-media-type "
switches &= "--margin-top 0mm --margin-bottom 0mm --margin-right 0mm --margin-left 0mm "
switches &= "--page-size A4 "
p.StartInfo.Arguments = switches & Url & " " & outfilename
console.writeline("Running command: " & commandToRun & " " & switches & Url & " " & outfilename)
'## needs to be false in order to redirect output
p.StartInfo.UseShellExecute = false
p.StartInfo.RedirectStandardOutput = true
AddHandler p.OutputDataReceived, addressOf PDFOutputHandler
p.StartInfo.RedirectStandardError = true
AddHandler p.ErrorDataReceived, addressOf PDFOutputHandler
p.StartInfo.WorkingDirectory = rootPath & iif(rootpath.endswith("\"),"","\")
console.writeline("Starting...")
try
p.Start()
p.BeginOutputReadLine()
p.BeginErrorReadLine()
console.writeline("Started...")
catch ex as exception
throw new exception("Could not start process [" & p.startInfo.Filename & "] with arguments [" & p.startInfo.Arguments & "], " & vbcrlf & "(RootPath: " & rootpath & ")" & vbcrlf & ex.tostring & vbcrlf)
end try
'## ...then wait for exit
p.WaitForExit()
end sub
Private Sub PDFOutputHandler(sendingProcess As Object, outLine As DataReceivedEventArgs)
If Not String.IsNullOrEmpty(outLine.Data) Then
console.writeline(outLine.Data)
End If
End Sub
关于c# - 使用 ProcessInfo 用户名和密码调用 wkhtmltopdf 时无法读取 StandardOutput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214995/
我使用 WKHTMLTOPDF 生成 pdf。在我的页面上,我有一张没有边框的表格。在浏览器中一切正常。表格示例: MyHeader
我正在使用 wkhtmltopdf 将网页下载为 pdf。 但是 css 属性 letter-spacing 似乎不起作用 font-size:20px; letter-spacing:0px; fo
我需要将 html 文本转换为 pdf。 这里的大多数答案都建议使用 pdfkit 和 wkhtmltopdf ( https://wkhtmltopdf.org/ )。 但是,我公司不允许我安装 w
我使用 wkhtmltopdf 从几个网页创建了一个 PDF。 有没有办法跨页面链接,例如从第 10 页到第 15 页。 我尝试创建一个带有 ID 的元素,然后创建一个链接到它的 anchor ,但这
我正在使用 wkhtmltopdf 生成 PDF,这非常棒。但是,有时该工具会返回退出代码,但在很多情况下,PDF 似乎仍然可以正确生成。 我怎么知道wkhtmltopdf未能完成这项工作? 示例:
受影响的 wkhtmltopdf 版本:wkhtmltox-0.12.5-1.msvc2015-win64 在 TR 中获取不需要的空间检查附加的快照以进行澄清。 当我们在 td 中使用 div 时出
是否可以访问主要内容正文中的“topage”变量? 我知道您可以在页眉和页脚中执行此操作,但在此特定用例中,我需要在正文中放置一个句子,说明: “本文档包含 XX 页”。 最佳答案 这对我有用。 但需
我遇到了一种情况,必须在生成的 PDF 打印计数中使用页脚和页眉。 CSS 解决方案仅适用于首页。我发现的唯一信息是 WKPDF 根本不支持它,但这可以追溯到 2009 年,所以有些东西可能已经改变了
我正在使用一个表格从 html 页面生成 pdf 报告。 我正在使用 wkhtmltopdf 来达到此目的。 生成 pdf 后,它会在 tr 标记中的任意位置中断。 我想避免它。 最佳答案 更新 17
当我在文档正文中获得特殊标记时(例如,当我获得 时,我希望下一页页脚显示“第 1 页 x”时,我尝试重置页码)其中 x 是下一个分页符之前的页数) 事实上,它应该与我分割正文文档并单独转换它完全相同
我已经通过自制软件在 Mac OS X 上安装了 wkhtmltopdf,并且我也尝试过手动编译它(以及 Qt 的补丁版本)。在这两种情况下,它生成的 PDF 都不包含任何可选择、可复制或可搜索的文本
我正在使用适用于 Mac 的 wkhtmltopdf 0.10.0 rc2 我有一个像这样的 html : .break{ disp
我正在使用 wickedpdf gem 在我的 Rails 应用程序中生成 pdf。一切都正常运行,除了少数生产请求失败,错误日志如下。 Error: Failed to execute: ["/us
当我运行可执行文件“wkhtmltopdf-amd64”(来自 Linux)时,我得到以下输出: QPainter::begin(): Returned false==================
我有一个简单的 test.html 文件: This is a test to see what happens when this kind of text gets processed by
只是在使用 wkhtmltopdf 时遇到了一些麻烦。它在命令行中工作正常,但在 PHP 中我不断收到此错误: Could not create PDF: sh: wkhtmltopdf: comma
我需要将 WKHTMLTOX 与我的 AWS EB 应用程序一起安装。 我找到了 this教程,除了支持旧版本外,它可以工作。 有没有人在 AWS EB 上安装了最新的 (0.12.3) 版本,因为这
我正在使用 Ubuntu 11.04 在 Ruby on Rails 中开发一个应用程序。在应用程序中,我需要生成 pdf 文档。所以我正在使用wicked_pdf 和 wkhtmltopdf 二进制
我将 wkhtmltopdf 0.12 与 wicked_pdf 或 pdfkit 一起使用,标题几乎占页面高度的 100%。 它会产生这些问题: 页面几乎是空的 页面比应有的多得多 最佳答案 通过添
我正在使用两个 Gems 将 HTML 转换为 PDF。 使用“https://github.com/mileszs/wicked_pdf” gem 'wicked_pdf' gem "wkhtmlt
我是一名优秀的程序员,十分优秀!