因此,我正在使用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),
});
答案 0 :(得分:0)
我一直在使用[' '.join(s for s in words.split() if not any(c.isdigit() for c in s)) for words in list_1]
。它会根据字符串的长度自动对齐文本
pdfkit