我通过std::make_shared
生成pdf。
让我说我有这样的pdf内容
var docDefinition = {
content: [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a pharetra odio.',
'Vestibulum erat mauris, sodales et consequat sit amet, ultricies vitae erat. Etiam feugiat orci justo, ultrices malesuada dui ornare ac.',
]
};
是否可以在其中一个段落中添加边框或者我是否必须使用表格?
答案 0 :(得分:5)
我还没有将边框应用于段落。我认为你唯一的选择是使用表格。
在这一行之后,我附上了一个简单的代码,您可以直接在pdfmake playground粘贴以便尝试。
var dd = {
content: [
{
style: 'tableExample',
color: '#555',
table: {
body: [
[
{
text : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a pharetra odio.\n\nVestibulum erat mauris, sodales et consequat sit amet, ultricies vitae erat. Etiam feugiat orci justo, ultrices malesuada dui ornare ac.'
}
],
[
{
text : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a pharetra odio.\n\nVestibulum erat mauris, sodales et consequat sit amet, ultricies vitae erat. Etiam feugiat orci justo, ultrices malesuada dui ornare ac.'
}
],
[
{
text : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a pharetra odio.\n\nVestibulum erat mauris, sodales et consequat sit amet, ultricies vitae erat. Etiam feugiat orci justo, ultrices malesuada dui ornare ac.'
}
],
]
},
layout: {
//hLineWidth: function(i, node) {
// return (i === 0 || i === node.table.body.length) ? 2 : 1;
//},
//vLineWidth: function(i, node) {
// return (i === 0 || i === node.table.widths.length) ? 2 : 1;
//},
hLineColor: function(i, node) {
return (i === 0 || i === node.table.body.length) ? 'red' : 'blue';
},
vLineColor: function(i, node) {
return (i === 0 || i === node.table.widths.length) ? 'red' : 'blue';
},
paddingLeft: function(i, node) { return 40; },
paddingRight: function(i, node) { return 40; },
paddingTop: function(i, node) { return 20; },
paddingBottom: function(i, node) { return 20; }
}
}
],
defaultStyle: {
alignment: 'justify'
}
}
答案 1 :(得分:1)
其他选项是使用画布在文本位置绘制类似边框的线条:
{
canvas: [
{ type: 'line', x1: 390, y1: -80, x2: 510, y2: -80, lineWidth: 1 }, //Up line
{ type: 'line', x1: 390, y1: -35, x2: 510, y2: -35, lineWidth: 1 }, //Bottom line
{ type: 'line', x1: 390, y1: -80, x2: 390, y2: -35, lineWidth: 1 }, //Left line
{ type: 'line', x1: 510, y1: -80, x2: 510, y2: -35, lineWidth: 1 }, //Rigth line
]
},
这在PDF的最高位置画了一个squere。 优点是你可以使用一些类似于:lineWidth
的样子