Javascript pdfmake:如何创建具有不同方向的多页pdf?
有没有办法使用创建具有不同页面方向的多页pdf? 为了简单起见,我想要这样的东西:Javascript pdfmake:如何创建具有不同方向的多页pdf?,javascript,node.js,pdfmake,Javascript,Node.js,Pdfmake,有没有办法使用创建具有不同页面方向的多页pdf? 为了简单起见,我想要这样的东西: 页面1纵向 页面2横向 页面3纵向 我用不同的方法尝试了很多次,但它总是影响到所有页面 对不起,我的英语不太好我刚刚通过了for pdfmake,他们给出了以下设置页面方向的代码: var docDefinition = { // a string or { width: number, height: number } pageSize: 'A5', // by default we us
- 页面1纵向
- 页面2横向
- 页面3纵向
对不起,我的英语不太好我刚刚通过了for pdfmake,他们给出了以下设置页面方向的代码:
var docDefinition = {
// a string or { width: number, height: number }
pageSize: 'A5',
// by default we use portrait, you can change it to landscape if you wish
pageOrientation: 'landscape',
...
//Other content
};
现在,整个项目的本质是文档定义对象,我想它是唯一的。即使在和提到的问题上,我也看不到为特定页面设置页面方向的规定,尽管您可以像这样添加分页符:
(...)
'You can also fit the image inside a rectangle',
{
image: 'fonts/sampleImage.jpg',
fit: [100, 100],
pageBreak: 'after'
},
(...)
var pdf1 = printer.createPdfKitDocument(docdef1); //landscape mode page 1
var pdf2 = printer.createPdfKitDocument(docdef2); //portrait mode page 2
var pdf3 = printer.createPdfKitDocument(docdef3); //landscape mode for the rest of the pages.
也就是说,我确实认为你的问题有解决办法。你看,这就是在这个项目中生成pdf
文档的方式:
var fs = require('fs');
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
pdfDoc.end();
当然,和fs
模块是节点实现。但是,由于我们将页面方向附加到文档定义对象,如果我们有多个文档定义,例如:
(...)
'You can also fit the image inside a rectangle',
{
image: 'fonts/sampleImage.jpg',
fit: [100, 100],
pageBreak: 'after'
},
(...)
var pdf1 = printer.createPdfKitDocument(docdef1); //landscape mode page 1
var pdf2 = printer.createPdfKitDocument(docdef2); //portrait mode page 2
var pdf3 = printer.createPdfKitDocument(docdef3); //landscape mode for the rest of the pages.
我们现在可以在createWriteStream()
方法中使用append
标志。有用。(未测试代码)
我只是建议如何组合文档定义对象。希望它能让你从正确的方向开始。这是一个古老的问题,但回答这个问题可能会帮助别人 如果要更改页面方向,只需在页面的第一个节点处指定新值 在这几行下面,我附加了一个简单的代码,您可以直接粘贴在上面进行尝试 祝你好运
var dd = {
content: [
{
text: 'Unordered list',
style: 'header'
},
{
ol: [
'item 1',
'item 2',
'item 3',
]
},
{
text: '\n\nUnordered list with longer lines',
style: 'header',
pageBreak: 'before',
pageOrientation: 'landscape'
},
{
ol: [
'item 1',
'Lorem ipsum dolor sit amet, consectetur ..',
'item 3',
]
},
{
text: '\n\nNested lists',
style: 'header',
pageBreak: 'before',
pageOrientation: 'portrait'
},
{
ol: [
'item 1',
'Lorem ipsum dolor sit amet, consectetur ..',
{
ol: [
'subitem 1',
'subitem 2',
'subitem 3 - Lorem ipsum dolor sit ame...',
'subitem 4',
'subitem 5',
]
},
'item 3\nsecond line of item3',
]
},
],
styles: {
header: {
bold: true,
fontSize: 15
}
},
defaultStyle: {
fontSize: 12,
}
}
谢谢您的回复,我会立即尝试您的建议并将结果告知您。我只是想确定一下,你的方法是创建3PDF还是只创建1PDF?顺便说一句,我的目标是创建一个具有不同方向的pdf。我明白你的意思,你试图将3个生成的pdf合并成一个pdf文件。我试过了,但只显示第一页(`如果在for中以友好方式构造pdf,我如何使用此方法?使用
push
函数将每个对象添加到数组content
,并在for循环结束时使用pagebreak选项分割每个页面。var foo[0]={name:“hello”};foo[1]={name:“world”};for(var i=0;i)