#javascript #api #rest #pdf-generation #velo
#javascript #API #отдых #генерация pdf #velo
Вопрос:
Я создаю PDF-файл с помощью https://pdfgeneratorapi.com /.
Теперь я могу показывать данные один за другим, используя этот код.Может ли кто-нибудь дать мне предложение, как можно отобразить все данные с помощью цикла или любым другим способом? На фотографиях ниже показан мой шаблон из 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, undefined, {output: 'url'})
return response
}
Комментарии:
1. давайте сначала начнем с вашего шаблона: я думаю, вам нужно обернуть строки в элемент «контейнер» из редактора шаблонов. Затем вы можете повторить каждую строку для каждого элемента в коллекции данных. Проверьте пример шаблона «Счет» с их сайта, чтобы узнать, как они выполняют операции. Это позволит вам передавать данные в API в виде массива.
Ответ №1:
Просто поместите это в цикл while с логическим условием.
Вы можете создать переменную, например allShowed
, и установить ее значение в False
. После этого создайте другую переменную, например numberOfDataToShow
, и задайте в ней количество элементов, которые вы хотите отобразить. Затем создайте счетчик, countShowed
инициализированный 0
своим значением.
Теперь создайте цикл while: пока allShowed
значение равно False
, вы выполняете цикл (и добавляете данные). Каждый раз, когда отображается часть ваших данных, вы увеличиваете значение countShowed
(и устанавливаете его для продолжения добавления / отображения данных). Когда countShowed
будет иметь точно такое же значение numberOfDataToShow
, установите allShowed
на True
. Цикл прервется, и будут показаны все ваши данные.
Ответ №2:
Вам нужно будет использовать компонент контейнера или таблицы в API PDF Generator для перебора списка элементов. Как сказал @JustCallMeA, вам нужно отправить массив элементов. В API PDF Generator теперь есть официальное руководство по Wix Velo (ранее Corvid) с демонстрационной страницей: https://support.pdfgeneratorapi.com/en/article/how-to-integrate-with-wix-velo-13s8135