以下代码呈现以下PDF:Link to PDF on Google Docs。 (我不允许在这篇文章中粘贴图片)
每首歌都有歌曲标题和和弦进行。我要找的是每个歌曲/和弦单元格都有一行。在示例中,我对代码中的最后一首歌进行了硬编码,以显示它应该呈现的内容。每首歌应该有自己的表格行。我已经在这里工作了几个小时,无法弄明白......希望这是一个简单的解决方案,我只是遗漏了一些非常明显的东西。
感谢您的帮助。
//Fired when SET header clicked to generate PDF
$scope.openPDF = function (SetName, setSongs) {
songTitles = [];
songChords = [];
angular.forEach(setSongs, function(value, key) {
songTitles.push({ text: value.Title, style: 'tableHeader'});
songChords.push({ text: value.Chords, style: 'tableHeader'});
});
var docDefinition =
{
pageOrientation: 'landscape',
content: [
{ text: 'SET 01', style: 'firstLine'},
{ text: SetName, style: 'secondLine' },
{
table:
{
headerRows: 0,
body:
[
[songTitles, songChords],['American Girl', 'D - E - G - A']
]
}
}
],
styles: {
firstLine: {
fontSize: 32,
bold: true,
alignment: 'center'
},
secondLine: {
fontSize: 15,
bold: true,
alignment: 'center'
},
}
};//End docDefinition
//Generate PDF
pdfMake.createPdf(docDefinition).open();
}; //END Function
答案 0 :(得分:2)
将其排序...发布解决方案,以防有人帮助。
使用以下功能创建的PDF链接:https://drive.google.com/open?id=0B9COonOvl5koR09aNkRZUHpPczA
所有数据都是从MySQL数据库中提取的...所以有一个包含各种属性(标题,艺术家,主和弦结构等)的歌曲表 - 然后是一组包含每组三个设置列表的集合。
//Fired when SET header clicked to generate PDF
$scope.openPDF = function (setList, setSongs, setNumber) {
songRows = [];
angular.forEach(setSongs, function(value, key) {
songRows.push({Title: value.Title, Chords: value.Chords, WhoStarts: value.WhoStarts});
});
var items = songRows.map(function(item) {
return [(100 + songRows.indexOf(item) + 1).toString().slice(-2) + '.', item.Title, item.Chords, item.WhoStarts];
});
var docDefinition =
{
pageOrientation: 'landscape',
content:
[
{ text: setNumber, style: 'firstLine'},
{ text: setList.EventDate + ' - ' + setList.SetName + ' @ ' + setList.Venue + '\n\n', style: 'secondLine' },
{
style: 'songRow',
table:
{
body:
[
[
{ text: '------' },
{ text: '--------------------------------------' },
{ text: '--------------------------------------' },
{ text: '--------------------------------------' },
]
].concat(items)
}
}
],
styles: {
firstLine: {
fontSize: 32,
bold: true,
alignment: 'center'
},
secondLine: {
fontSize: 15,
bold: true,
alignment: 'center'
},
songRow: {
fontSize: 18,
bold: true,
alignment: 'center',
},
}
};//End docDefinition
//Generate PDF
pdfMake.createPdf(docDefinition).open();
} //END Generate PDF Function