Задать вопрос
Ответы пользователя по тегу Электронная цифровая подпись
  • Возможно ли в либе pdf-lib на js заюзать русские шрифты?

    @SeLive
    По умолчанию PDF-LIB использует шрифты с кодировкой ANSI. Достаточно загрузить в библиотеку сторонний шрифт, например Microsoft Sans Serif, через метод embedFont() и указывать нужный шрифт при написании текста.

    // Загружаем PDF
    		const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
    		const existingPdfBytes = await fetch(url).then(res => res.arrayBuffer())
    		// Загружаем шрифт с поддержкой русского языка, в данном случае это Microsoft Sans Serif
    		const url2 = 'https://db.onlinewebfonts.com/t/643e59524d730ce6c6f2384eebf945f8.ttf'
    		const fontBytes = await fetch(url2).then(res => res.arrayBuffer())
    
    		const pdfDoc = await PDFDocument.load(existingPdfBytes)
    
    		// Устанавливаем шрифт
    		let customFont;
    		if (fontBytes) {
    			pdfDoc.registerFontkit(fontkit);
    			await pdfDoc.embedFont(fontBytes);
    			customFont = await pdfDoc.embedFont(fontBytes);
    		}
    
    		const pages = pdfDoc.getPages()
    		const firstPage = pages[0]
    
    		const { width, height } = firstPage.getSize()
    
    		firstPage.drawText('Привет мир!', {
    			x: 5,
    			y: height / 2 + 300,
    			size: 50,
    			font: customFont, // Указываем наш кастомный шрифт
    			color: rgb(0.95, 0.1, 0.1),
    			rotate: degrees(-45),
    		})


    Важно подключить в проекте pdf-lib/fontkit, что бы зарегистрировать шрифт в библиотеке через registerFontkit().
    Ответ написан
    1 комментарий