问题描述
我正在使用https://pdfgeneratorapi.com/生成PDF。
现在我可以使用此代码一个一个地显示数据。任何人都可以给我建议如何用循环或其他方式显示所有数据吗? 下面的照片显示了我来自pdfgenerator的模板。
这是我用来生成PDF的代码
let communicationWay1=[
{0:"dim"},{1:"kal"}
];
let cstomerExpence1=[
{0:"dim"},{1:"kal"}
];
let title="test";
let names="test";
let phone="test";
let email="test";
let maritalStatus="test";
let city="test";
let other="test";
const result = await wixData.query(collection)
.eq('main_user_email',$w('#mainE').text)
.find()
.then( (results) => {
if (results.totalCount>0) {
count=1;
// title=results.items[1].title;
names=results.items[0].names;
email=results.items[0].emial;
phone=results.items[0].phone;
maritalStatus=results.items[0].maritalStatus;
city=results.items[0].city;
other=results.items[0].cousterExpenses_other;
title=results.items[0].title;
communicationWay=results.items[0].communicationWay;
cstomerExpence=results.items[0].cstomerExpence;
}
if (results.totalCount>1) {
names1=results.items[1].names;
email1=results.items[1].emial;
phone1=results.items[1].phone;
maritalStatus1=results.items[1].maritalStatus;
city1=results.items[1].city;
other1=results.items[1].cousterExpenses_other;
title1=results.items[1].title;
communicationWay1=results.items[1].communicationWay;
cstomerExpence1=results.items[1].cstomerExpence;
}
} )
.catch( (err) => {
console.log(err);
} );
// Add your code for this event here:
const pdfUrl = await getPdfUrl
({title,names,email,phone,city,maritalStatus,other,communicationWay,cstomerExpence,title1,names1,email1,phone1,city1,maritalStatus1,other1,communicationWay1,cstomerExpence1
});
if (count===0) { $w("#text21").show();}
else{ $w("#downloadButton").link=wixLocation.to(pdfUrl);}
以下代码为后端代码/ JSW代码。 我也想在新标签页中打开pdf。我知道可以使用“ _blank”方法打开新标签页。但是我不确定如何使用url添加它
import PDFGeneratorAPI from 'pdf-generator-api'
const apiKey = 'MYKEY';
const apiSecret = 'MYAPISECRET';
const baseUrl = 'https://us1.pdfgeneratorapi.com/api/v3/';
const workspace = "HELLO@gmail.com";
const templateID = "MYTEMPLATEID";
let Client = new PDFGeneratorAPI(apiKey,apiSecret)
Client.setBaseUrl(baseUrl)
Client.setWorkspace(workspace)
export async function getPdfUrl(data) {
const {response} = await Client.output(templateID,data,undefined,{output: 'url'})
return response
}
解决方法
只需将其放入具有布尔条件的while循环中即可。
您可以创建一个变量,例如allShowed
,并将其值设置为False
。之后,创建另一个变量,例如numberOfDataToShow
,并将其设置为要显示的元素数。然后创建一个计数器countShowed
,并以0
作为其值进行初始化。
现在创建一个while循环:当allShowed
的值为False
时,您进行循环(并添加数据)。
每次显示一条数据时,您就增加countShowed
的值(并将其设置为继续添加/显示数据)。如果countShowed
的值与numberOfDataToShow
完全相同,请将allShowed
设置为True
。循环将中断,并且将显示所有数据。
您需要使用 PDF Generator API 中的 Container 或 Table 组件来迭代项目列表。正如@JustCallMeA 所说,您需要发送一系列项目。 PDF Generator API 现在有一个官方的 Wix Velo(以前是 Corvid)教程和一个演示页面:https://support.pdfgeneratorapi.com/en/article/how-to-integrate-with-wix-velo-13s8135