Вы можете сделать это, используя kendo-grid-column
компоненты внутри компонента kendo-grid-pdf
, например:
<kendo-grid-pdf
fileName="ProductsPrice.pdf"
paperSize="A4"
[scale]="0.8"
[repeatHeaders]="true"
[margin]="{ top: '1cm', left: '1cm', right: '1cm', bottom: '1cm' }">
<kendo-grid-column field="ProductName" title="Name">
</kendo-grid-column>
<kendo-grid-column field="UnitPrice" title="Price">
</kendo-grid-column>
</kendo-grid-pdf>
Поместите компонент kendo-grid-column
для каждого столбца, который вы хотите отобразить в PDF.
Поскольку вы используете один и тот же компонент экспорта PDF в нескольких местах и столбцы меняются в каждом случае, вы можете настроить столбцы для каждого случая, используя тег ng-content
.
Для этого добавьте<ng-content></ng-content>
внутри компонента kendo-grid-pdf
, который находится внутри компонента app-kendoPDF
, и поместите компоненты kendo-grid-column
, когда они вам нужны, в шаблон компонента, который использует компонент app-kendoPDF
, например:
В шаблоне компонента app-kendoPDF
:
<kendo-grid-pdf fileName="{{pdfname}}" [allPages]="true" paperSize="A4" [repeatHeaders]="true" [landscape]="true" >
<kendo-grid-pdf-margin top="2cm" left="1cm" right="1cm" bottom="2cm"></kendo-grid-pdf-margin>
<ng-template kendoGridPDFTemplate let-pageNum="pageNum" let-totalPages="totalPages">
<div class="page-template">
<div class="header">
<div style="float: right">Page {{ pageNum }} of {{ totalPages }}</div>
{{componentName}}
</div>
<div class="footer">
Page {{ pageNum }} of {{ totalPages }}
</div>
</div>
</ng-template>
<!--Add this to have the kendo-grid-column components from the code below appear here-->
<ng-content></ng-content>
</kendo-grid-pdf>
<kendo-grid-excel fileName="{{pdfname}}"></kendo-grid-excel>
Во втором включенном шаблоне вместо простого <app-kendoPDF [componentName]=name></app-kendoPDF>
:
<app-kendoPDF [componentName]=name>
<kendo-grid-column field="<name of column #1>" title="<name of column #1>">
</kendo-grid-column>
<kendo-grid-column field="<name of column #2>" title="<name of column #2>">
</kendo-grid-column>
<kendo-grid-column field="<name of column #3>" title="<name of column #3>">
</kendo-grid-column>
<!--And so on...-->
</app-kendoPDF>
Вы можете узнать больше об экспорте в PDFв документации кендо здесь .