问题
I'm generating pdf via pdfmake.
Let's say i have content of the pdf like this
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.',
]
};
Is it possible to add border arround one of the paragraphs or do I have to use tables for this?
回答1:
I have not gotten apply borders to a paragraph. I think the only option you have is to use tables.
Below this lines I have attached a simple code that you can paste directly at pdfmake playground in order to try it.
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'
}
}
回答2:
Other option is to use a canvas to draw a lines like a borders at the position of your text:
{
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
]
},
This draw a squere in rigth top position of PDF. The adventage is that you can use some sytle like: lineWidth
来源:https://stackoverflow.com/questions/29936965/add-border-arround-a-paragraph-with-pdfmake