Как подключить данные цикла к pdfgeneratorapi с помощью wix corvid?

#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