wicked_pdf不起作用 - Ruby on Rails [英] wicked_pdf doesn't work -- Ruby on Rails

查看:154
本文介绍了wicked_pdf不起作用 - Ruby on Rails的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在rails应用程序中从html文档生成PDF。所以我决定使用wicked_pdf。但它不工作。我试图将它集成到一个应用程序中,但它不起作用。所以我想试着看看它是否在rails控制台中工作,然后我将它集成到应用程序中。



这是我在控制台中遇到的情况

  wp = WickedPdf.new 
=> #< WickedPdf:0x4e7eea0 @ exe_path =C:\\wkhtmltopdf\\wkhtmltopdf.exe>
HTML_DOCUMENT =< html>< body> Hello World< / body>< / html>
=> < html>< body> Hello World< / body>< / html>
pdf = wp.pdf_from_string HTML_DOCUMENT
*************** C:\\wkhtmltopdf\\wkhtmltopdf.exe - - **** ***********
NotImplementedError:fork()函数在这台机器上未实现
来自C:/Ruby/lib/ruby/1.8/open3.rb:57:in C:/Ruby/lib/ruby/1.8/open3.rb:57:`popen3'
从C:/ Users / raw / Desktop / html / scheduler / vendor / plugins中`fork'
/wicked_pdf/lib/wicked_pdf.rb:22:in`pdf_from_string'$(bb)from(irb):3

更新:我正在使用Windows7



我无法弄清楚我错了哪里。



请提供帮助。

预先致谢。

解决方案

安装gem win32-open3

  gem install win32-open3 

现在在lib / wicked_pdf.rb中更改行:6

require' open3'



  require' win32 / open3'

和行:20在同一个文件中

  command_for_stdin_stdout =#{@ exe_path}#{options}  -   -  -q

  command_for_stdin_stdout =#{@ exe_path}#{options}  -   - 

现在在控制台中我得到

  wp = WickedPdf.new 
=> #< WickedPdf:0x4e65f70 @ exe_path =C:\\wkhtmltopdf\\wkhtmltopdf.exe>

?> HTML_DOCUMENT =< html>< body> Hello World< / body>< / html>
=> < html>< body> Hello World< / body>< / html>

?> pdf = wp.pdf_from_string HTML_DOCUMENT
*************** C:\\wkhtmltopdf\\wkhtmltopdf.exe - - ******** *******
=> %PDF-1.4 \\\
1 0 obj\\\
<<<\\\ Title(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;> \ endobj \ n4 0 obj\\\
<<<\\\\\\\\\\\\\\\\ n / AIS false \\\
/ SMask / None>> \ endobj\\\
5 0 obj\\\
[/ Pattern / DeviceRGB] \ endobj\\\
8 0 obj\\\
<<<\\\\ Type / Catalog \\\
/ Pages 2 0 R \ n \\>> \ endobj\\\
6 0 obj\\\
<<<\\\\\\\\ Type / 9 0 R \ n / Resources 11 0 R \ n / Annotations 12 0 R \ n / MediaBox [0 0 595 842] \ n>> \ endobj \ n11 0 obj \ n < \ n / ColorSpace /PCSp 5 0 R\\\
/ CSp / DeviceRGB\\\
/ CSpg / DeviceGray\\\
>> \\\
/ ExtGState<< \ n / GSa 4 0 R \\ n>> \ n / Pattern< n>> \\\
/ Font< \ n / F7 n / XObject<< \ n> > \ n>> \ endobj \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\
>> \ nstream\\\
x\234\245\222QKÄ0\f\200ßó+ò,\×6ëÖ¸øàPÁa\254àƒø;O9\274Ãy\\\017\376 }ÓtÇ\003\213`Ã-åKÒ\264ɪ\273áß\016XuÃ'\216\263îÐJ\273\220\027j\226ÕX\257Èê\264ÐRM+tÜÁ\\ \204\023ôÐó;éŽ\273j\221â\\207*×>\243\022Ý \017\r)ÞÁ\023\233\037K\223È` \264v\236\271> 7SD;< ^à¾Xêè1\KÏA\271ÐÖ\244\255\225\2643\223o$ $ \224j \207_\257\\ \\260IçþKÚï\247Édèøë-Þó\263ŧg\206ëâ5\256#T\267-\032\217qÃ÷\220\241d\025\271\205\270\\ \\2625Æ5^òPÌÆ,\230äœ \025\022N\200\004P\001Ôç)N @}\002M.ã
9 \255\000W(D D \\ \\ 37 37 37 37 17 17 17 17 e e e e e e e e e e e e e e \ endobj \\\
10 0 obj\\\
271\\\
endobj\\\
13 0 obj\\\
<< / FontBBox [-594.726562 -290.527343 1790.03906 900.390625] \\\
/ ItalicAngle 0 \\\
/ Ascent 651.367187 \\\
/ Descent - 188.476562 \\\
/ CapHeight 0 \\\
/ StemV 65.4296875 \\\
/ FontFile2 14 0 R \\\
>>> endobj \\\ n14 0 obj \\\
<\ n / Length1 3840 \ n / Length 17 0 R \ n / Filter / FlateDecode \\\
>> \ nstream \\\\\\\' 245W] l\024×> WGG×C0ÆkW\204p\rÄ\024l\263Æ»ÆÄ8ÈD\245\030cc\e\0220\224\214wf\275cvgV\? 263\263 ^ \257\241\205\2406BQ#\245\205\246\025êC‰\2226I [〜OU&\246\250M\245 LT; \ 264\225ÒH\225\252\242ÊM\213\232\206(U\037\\265Ä?=÷ÜYgL(RO]Íïœ{î9ßùæÞY\030\ 000\224ÁiP\000ú‡Z¢+ \242Gsèù* ^O\216\\245\213Ék\237Áø

查看这篇博文了解它。
谢谢。


I want to generate PDF from a html doc in a rails app. So I decided to use wicked_pdf. But its not working. I tried to integrate it in an app, but it did not work. So I thought of trying to see if it works in the rails console then i will integrate it in the app.

Here's what I came across in the console

wp = WickedPdf.new
=> #<WickedPdf:0x4e7eea0 @exe_path="C:\\wkhtmltopdf\\wkhtmltopdf.exe">
HTML_DOCUMENT = "<html><body>Hello World</body></html>"
=> "<html><body>Hello World</body></html>"
pdf = wp.pdf_from_string HTML_DOCUMENT
"***************C:\\wkhtmltopdf\\wkhtmltopdf.exe  - - ***************"
NotImplementedError: fork() function is unimplemented on this machine
    from C:/Ruby/lib/ruby/1.8/open3.rb:57:in `fork'
    from C:/Ruby/lib/ruby/1.8/open3.rb:57:in `popen3'
    from C:/Users/raw/Desktop/html/scheduler/vendor/plugins/wicked_pdf/lib/wicked_pdf.rb:22:in `pdf_from_string'
    from (irb):3

UPDATE: I am using Windows7

I am not able to figure out where I am going wrong.

Please help.

Thanks in advance.

解决方案

Install the gem win32-open3

gem install win32-open3

And now Change line:6 in lib/wicked_pdf.rb

require 'open3'

to

require 'win32/open3'

and line:20 in the same file

command_for_stdin_stdout = "#{@exe_path} #{options} - - -q" 

to

command_for_stdin_stdout = "#{@exe_path} #{options} - -" 

and now in console I get

wp = WickedPdf.new
=> #<WickedPdf:0x4e65f70 @exe_path="C:\\wkhtmltopdf\\wkhtmltopdf.exe">

?> HTML_DOCUMENT = "<html><body>Hello World</body></html>"
=> "<html><body>Hello World</body></html>"

?> pdf = wp.pdf_from_string HTML_DOCUMENT
"***************C:\\wkhtmltopdf\\wkhtmltopdf.exe  - - ***************"
=> "%PDF-1.4\n1 0 obj\n<<\n/Title (\376\377)\n/Producer (wkhtmltopdf)\n/CreationDate (D:20101127124137)\n>>\nendobj\n4 0 obj\n<<\n/Type /ExtGState\n/SA true\n/SM 0.02\n/ca 1.0\n/CA 1.0\n/AIS false\n/SMask /None>>\nendobj\n5 0 obj\n[/Pattern /DeviceRGB]\nendobj\n8 0 obj\n<<\n/Type /Catalog\n/Pages 2 0 R\n>>\nendobj\n6 0 obj\n<<\n/Type /Page\n/Parent 2 0 R\n/Contents 9 0 R\n/Resources 11 0 R\n/Annots 12 0 R\n/MediaBox [0 0 595 842]\n>>\nendobj\n11 0 obj\n<<\n/ColorSpace <<\n/PCSp 5 0 R\n/CSp /DeviceRGB\n/CSpg /DeviceGray\n>>\n/ExtGState <<\n/GSa 4 0 R\n>>\n/Pattern <<\n>>\n/Font <<\n/F7 7 0 R\n>>\n/XObject <<\n>>\n>>\nendobj\n12 0 obj\n[ ]\nendobj\n9 0 obj\n<<\n/Length 10 0 R\n/Filter /FlateDecode\n>>\nstream\nx\234\245\222QKÄ0\f\200ßó+ò,\×6ëÖ‚øàPÁa\254àƒø ;O9\274Ãy\017\376}ÓtÇ�\003\213`ÖåKÒ\264ɪ\273áß\016XuÃ'\216\263îÐJ\273\220\027j\226ÕX\257Èê\264ÐRM+tÜÁ\204\023ôÐó;é Ž\273j\221ø\207*×›\243\022Ý�\017\r)ÞÁ\023\233\037K\223È©`\264v\236\271>7Sð;<^à¾Xêè1\"KÏA\271ÐÖ\244\255\225\2643\223o$\224j$\207_\257\260IçþKÚï\247Édèøë-Þó\263ŧg\206ëâ5\256#T\267-\032\217qÃ÷\220\241d\025\271\205\270\2625Æ5^òPÌÆ-\230䜉\025\022N\200\004P\001Ôç)N@}\002M.ã
9\255\000W(ãÜDil\376qLî¢ùo3Ó ÊØÃ\0177Ч\201endstream\nendobj\n10 0 obj\n271\nendobj\n13 0 obj\n<< /Type /FontDescriptor\n/FontName /QNAAAA+ArialRegular\n/Flags 4 \n/FontBBox [-594.726562 -290.527343 1790.03906 900.390625 ]\n/ItalicAngle 0 \n/Ascent 651.367187 \n/Descent -188.476562 \n/CapHeight 0 \n/StemV 65.4296875 \n/FontFile2 14 0 R\n>> endobj\n14 0 obj\n<<\n/Length1 3840 \n/Length 17 0 R\n/Filter /FlateDecode\n>>\nstream\nx\234\245W]l\024×>wgg×C0ÆkW\204p\rÄ?\024l\263Æ»ÆÄ8ÈD\245\030cc\e\0220\224\214wf\275cvgV\263\263^\257\241\205\2406BQ#\245\205\246\025êC‰\2226I[~ÒÚ"\246\250M\245<\264\225ÒH\225\252\242ÊM\213\232\206(U\037\"\265Ä?=÷ÜYgL(RÕ]Í�ïœ{î9ßùæÞY\030\000\224ÁiP\000ú‡Z¢+\242Gsèù*^O\216\245\213Ék\237Áø

Take a look at this blog post for understanding it. Thanks.

这篇关于wicked_pdf不起作用 - Ruby on Rails的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆