Help PDF Method (convert to image and cannot search but has styling)
Sat Aug 03 2024 11:56:02 GMT+0000 (Coordinated Universal Time)
Saved by
@iamkatmakhafola
// Method to export help content to PDF
exportToPDF(): void {
const doc = new jsPDF('p', 'mm', 'a4');
const margin = 10;
const pageWidth = 210;
const pageHeight = 295;
const addContentToPDF = (content: string) => {
const tempContainer = document.createElement('div');
tempContainer.style.position = 'absolute';
tempContainer.style.left = '-9999px';
tempContainer.style.fontSize = '14px'; // Set default font size
tempContainer.innerHTML = content;
document.body.appendChild(tempContainer);
html2canvas(tempContainer, {
scale: 2, // Increase scale for better quality
useCORS: true,
logging: true
}).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const imgWidth = pageWidth - 2 * margin;
const imgHeight = canvas.height * imgWidth / canvas.width;
let heightLeft = imgHeight;
let position = 0;
doc.addImage(imgData, 'PNG', margin, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
while (heightLeft > 0) {
doc.addPage();
position = heightLeft - imgHeight;
doc.addImage(imgData, 'PNG', margin, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
}
document.body.removeChild(tempContainer);
doc.save('help-guide.pdf');
}).catch(err => {
console.error('Error capturing content:', err);
document.body.removeChild(tempContainer);
});
};
const chunkSize = 5;
for (let i = 0; i < this.filteredContent.length; i += chunkSize) {
const chunk = this.filteredContent.slice(i, i + chunkSize);
const chunkContent = chunk.map(item => `
<h5 style="font-size: 16px;">${item.title}</h5>
<div style="font-size: 14px;">${item.content}</div>
`).join('');
addContentToPDF(chunkContent);
}
}
content_copyCOPY
Comments