【问题标题】:wicked_pdf doesn't work -- Ruby on Railswicked_pdf 不起作用——Ruby on Rails
【发布时间】:2010-11-27 11:33:01
【问题描述】:

我想从 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() 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

更新:我使用的是 Windows7

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

请帮忙。

提前致谢。

【问题讨论】:

    标签: html ruby-on-rails ruby pdf plugins


    【解决方案1】:

    安装 gem win32-open3

    gem install win32-open3
    

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

    需要'open3'

    require 'win32/open3'
    

    和 line: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\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Áø
    

    查看this blog post 以了解它。 谢谢。

    【讨论】:

      【解决方案2】:

      您可以尝试 DocRaptor.com。这是一个在线应用程序,可让您转换html to pdf。他们有可用的免费帐户,如果您需要大量文档,还可以提供付费帐户。

      希望有帮助!

      朱莉

      【讨论】:

        【解决方案3】:

        在您的公众中创建一个名为“pdfs”的文件夹

        控制器:

        pdf = render_to_string :pdf => "graphs", :orientation => 'Landscape', :font_size => 11
        # then save to a file
        save_path = Rails.root.join('pdfs', filename.pdf')
        File.open(save_path, 'wb') do |file|
        file << pdf
        end
        

        graphs.rhtml

        查看: 为样式添加这行代码

        <%= wicked_pdf_stylesheet_link_tag "css filename here" %>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-03
          相关资源
          最近更新 更多