typescript - pdf-lib - Biztosítsuk, hogy a szöveg maradjon az oldalon (átcsomagolás és méretcsökkentés használatával)
A pdf-lib-et használom PDF dokumentumok dinamikus létrehozására.
Az általam hozzáadott szövegtartalom hossza változó lehet.
Van mód arra, hogy beállítsak egy határoló dobozt (vagy valami hasonlót), hogy biztosítsam, hogy a szövegem beleférjen ebbe a területbe? Az alábbi példában azt szeretném, ha a szövegem mind átcsomagolódna, mind pedig szükség szerint kicsinyedne, hogy beleférjen egy adott területbe.
populatePage(pdfPage: PDFPage, pdfFont: PDFFont): void {
const { width, height } = pdfPage.getSize();
const text = 'This is a really long bit of text and I want it to remain on the page and resize as needed and not get cut off';
pdfPage.drawText(text, {
x: width / 2 - (text.length * 10),
y: height - 200,
size: 40,
font: pdfFont,
color: rgb(0.95, 0.1, 0.1)
});
}
Válasz #1
A drawText elfogad egy maxWidth paramétert, ha ezt a szélességet túlléped, a szöveged sortöréssel jelenik meg! https://pdf-lib.js.org/docs/api/interfaces/pdfpagedrawtextoptions
Válasz #2
Használja a maxWidth-t a szóáthúzásokkal. pl
const text = 'This is a really long bit of text and I want it to remain on the page and resize as needed and not get cut off';
pdfPage.drawText(text, {
x: width / 2 - (text.length * 10),
y: height - 200,
size: 40,
font: pdfFont,
color: rgb(0.95, 0.1, 0.1),
maxWidth: 500, wordBreaks: [" "]
});
