根据字符串长度对齐文本

时间:2019-08-02 08:45:07

标签: javascript node.js pdf

因此,我正在使用node.js中的库pdf-lib将文本嵌入pdf。我想要做的是将名称嵌入到pdf中的白盒中,并根据字符串的长度将它们对齐到居中位置。 firstPage.drawText是正确对齐文本的部分。我需要的是一种根据字符串长度对齐文本的算法。这是我尝试过的方法,在此先感谢

async function loadandModPDF(name, gender) {
    // Load a PDFDocument from the existing PDF bytes
    const pdfDoc = await PDFDocument.load(existingPdfBytes);
    pdfDoc.registerFontkit(fontkit);

    const contName = await pdfDoc.embedFont(nameBold);

    // Get the first page of the document
    const pages = pdfDoc.getPages();
    const firstPage = pages[0];
    const textSize = 16;

    try {
        textWidth = contName.widthOfTextAtSize(name, textSize);
    }
    catch (e) {
        console.log(e);
    }

    // Get the width and height of the first page
    const { width, height } = firstPage.getSize();

    // Draw a string of text diagonally across the first page
    firstPage.drawText("John Doe" , {
        x: (width - textWidth) / 3.1,
        y: height - (textSize * 26),
        size: textSize,
        font: contName,
        color: rgb(0, 0, 0),
        rotate: degrees(0),
    });

1 个答案:

答案 0 :(得分:0)

我一直在使用[' '.join(s for s in words.split() if not any(c.isdigit() for c in s)) for words in list_1] 。它会根据字符串的长度自动对齐文本

pdfkit