jspdf-autotables列出了select中的所有选项(而不是仅选择了什么)

时间:2016-02-01 18:20:58

标签: javascript jspdf

function addWorkDetailsTopdf(pdf){
                    var tables =  document.querySelectorAll('.pbBody, table');
                    var res = pdf.autoTableHtmlToJson(tables[8]);
                    pdf.autoTable(res.columns, res.data, {
                                        startY: pdf.autoTableEndPosY()+10,
                                        tableWidth: 'wrap',
                                        styles: {cellPadding: 2},
                                        headerStyles: {rowHeight: 15, fontSize: 8},
                                        bodyStyles: {rowHeight: 12, fontSize: 8, valign: 'middle'}
                                                         });
                    return pdf;
                }

还有一些项目被添加到pdf中,但最终会调用save。问题是其中一个表中的下拉列出了所有可用的项目,而不仅仅是所选项目。

enter image description here

在上面的图像中清理(或选择了任何其他单个项目),但它列出了所有项目(如上所述)。

为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:0)

我手动编辑了一些东西,绝对不是一个优雅的解决方案。 选择上方有一个跨度,其中包含所选项目的值。我手动编辑res.data只有我需要的值

function addWorkDetailsTopdf(pdf){
                    var tables =  document.querySelectorAll('.pbBody, table');
                    var res = pdf.autoTableHtmlToJson(tables[8]);
                    var serviceType = res.data[0][1];
                    serviceType = serviceType.substr(0, serviceType.indexOf('--'));
                    if(serviceType === ""){
                        serviceType = 'None';
                        }
                    res.data[0][1] = serviceType;
                    pdf.autoTable(res.columns, res.data, {
                                        startY: pdf.autoTableEndPosY()+10,
                                        tableWidth: 'wrap',
                                        styles: {cellPadding: 2},
                                        headerStyles: {rowHeight: 15, fontSize: 8},
                                        bodyStyles: {rowHeight: 12, fontSize: 8, valign: 'middle'}
                                                         });
                    return pdf;
                }

答案 1 :(得分:0)

我遇到了同样的问题,我只是在插件中添加了一行代码,如下所示: 在我添加的函数“parseContentCell”中:

<td>
@if($user->address_1)
    {{ $user->address_1 }}<br/>
    @if($user->address_2) {{ $user->address_2 }}<br/>@endif
    @if($user->address_3) {{ $user->address_3 }}<br/>@endif
@else
    <i>{{ __("Street address unknown") }}</i><br/>
@endif
@if($user->city || $user->state)
    {{ $user->city ?? "?" }}, {{ $user->state ?? "?" }}
@else
    <i>City and state unknown</i>
@endif&nbsp;&nbsp;{{ $this->zip_code ?? "" }}
</td>