首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个链接创建pdf

如何从另一个链接创建pdf
EN

Stack Overflow用户
提问于 2015-12-04 21:25:40
回答 1查看 652关注 0票数 2

我想从另一个网站生成pdf,因为这个html页面是不必要的项目。我使用了jspdf,jquery .ajax库,我的代码看起来像这样:

代码语言:javascript
复制
        <script src='http://mrrio.github.io/jsPDF/dist/jspdf.debug.js'></script>

        <script type="text/javascript" src="http://cdn.rawgit.com/niklasvh/html2canvas/0.5.0-alpha2/dist/html2canvas.min.js"></script>

    $('#create_pdf').on('click',function(){
    var doc = new jsPDF('p','px','a4');

    var source1 = '';
    var
        form = '', term='';
        $.ajax({
             type: "get",
             url: "clients.php",
             dataType: "html",async: false,

              data: {
                term: term
              },
              success: function( data ) {
                   source1= data ;
              }
            });
    //alert($(source1).find('.container').eq(1).html());


    doc.addHTML(source1,options,function() {
        var string = doc.output('datauristring');
        $('.preview-pane').attr('src', string);
    });
});

它不工作,但警报给我html肯定的结果。

问题2.如何生成PDF以使用不同的css文件(例如:The media = print)在PDF中添加和删除项目并打印。未使用media=print的html2canvas

EN

回答 1

Stack Overflow用户

发布于 2015-12-04 23:40:54

我使用PHP库html2pdf。我加载HTML内容并对其进行解析,创建一个新的HTML代码(包括一个特殊的CSS),然后使用html2pdf创建一个PDF。

JS:

代码语言:javascript
复制
$.ajax({
    url: "lib/html2pdf/pdf_engine.php",
    method: "post",
    success: function(data) {
        window.open( "documents/" + data );
    },
    error: function( error ) {
        console.log( error );   
    }
});

PHP (lib/html2pdf/pdf_engine.php.php):

代码语言:javascript
复制
<?php
    date_default_timezone_set('Europe/Berlin');
    // load the PDF class
    require_once(dirname(__FILE__).'/html2pdf.class.php');
    // get the print page
    $data = file-get-contents("<your url>");
    // remove line breaks
    $data = preg_replace("/[\n\r]/", " ", $data);
    // remove whitespaces
    $data = preg_replace('/\s+/', ' ', $data);
    // do whatever ...

    // set the pdf content
    $html = "   <page backtop=\"15mm\" backbottom=\"15mm\">
                    <page_header>
                        <table style=\"border-bottom: 1px solid #000; width: 100%; padding-bottom: 10px;\">
                            <tr>
                                <td width=\"640\">Page Title</td>
                            </tr>
                        </table>
                    </page_header>
                    <page_footer>
                        <table style=\"border-top: 1px solid #000; width: 100%; padding-top: 10px;\"><tr>
                        <td width=\"320\">&copy; " . date('Y') . " My Company</td>
                        <td width=\"320\" style=\"text-align: right;\">Seite [[page_cu]] of [[page_nb]]</td>
                        </tr></table>
                    </page_footer>
                    <link rel=\"stylesheet\" type=\"text/css\" href=\"style_pdf.css\">
                    " . $data . "                    
                </page>";


    // load the HTML2PDF class
    $html2pdf = new HTML2PDF('P','A4','de', true, 'UTF-8', array(20, 10, 20, 10));
    // create the document
    $html2pdf->WriteHTML($html);
    // send the document to the browser and force the download
    $dir = "C:/path/to/documents/"; // remember to give access
    $file_name = "some_funky_filename.pdf";
    $html2pdf->Output($dir . $file_name, 'F');

    echo $file_name;

?>

PHP返回文件名,jQuery在一个新窗口中打开该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34089433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档