diff --git a/src/utils/functions/createPdf.ts b/src/utils/functions/createPdf.ts new file mode 100644 index 0000000..808cf68 --- /dev/null +++ b/src/utils/functions/createPdf.ts @@ -0,0 +1,77 @@ +import jsPDF from 'jspdf' + +export default () => { + const doc = new jsPDF({ + orientation: 'p', + unit: 'mm', + format: 'letter', + }) + + const lungsod = new Image() + lungsod.src = 'src/assets/images/lungsod2.png' + + const ocbo = new Image() + ocbo.src = 'src/assets/images/ocbologo.png' + + // const lungsodItem = document.getElementById('lungsod') + // const lungsodSrc = lungsodItem?.getAttribute('src') + // const lungsodLink = document.createElement('a') + // lungsodLink.href = lungsodSrc ?? '' + + // const ocboItem = document.getElementById('ocbo') + // const ocboSrc = ocboItem?.getAttribute('src') + // const ocboLink = document.createElement('a') + // ocboLink.href = ocboSrc ?? '' + + const getTextWidth = (text: string, fontSize: number) => { + doc.setFontSize(fontSize) + return doc.getStringUnitWidth(text) * fontSize * 0.35 + } + + const pageWidth = doc.internal.pageSize.getWidth() + + const republicText = 'Republic of the Philippines' + const republicTextWidth = getTextWidth(republicText, 10) + const officeText = 'OFFICE OF THE CITY BUILDING OFFICIAL' + const officeTextWidth = getTextWidth(officeText, 11) + const cityText = 'City of Davao' + const cityTextWidth = getTextWidth(cityText, 10) + + const republicTextX = (pageWidth - republicTextWidth) / 2 + const officeTextX = (pageWidth - officeTextWidth) / 2 + const cityTextX = (pageWidth - cityTextWidth) / 2 + + doc.setFont('helvetica', 'normal') + doc.setFontSize(10) + doc.text(republicText, republicTextX, 14) + doc.setFont('helvetica', 'bold') + doc.setFontSize(11) + doc.text(officeText, officeTextX, 19) + doc.setFont('helvetica', 'normal') + doc.setFontSize(10) + doc.text(cityText, cityTextX, 24) + + doc.addImage(lungsod, 'PNG', 12, 8, 20, 20, 'lungsod', 'NONE', 0) + doc.addImage(ocbo, 'PNG', pageWidth - 36, 8, 20, 20, 'ocbo', 'NONE', 0) + + // doc.setLineWidth(0.9) + // doc.line(10, 34, pageWidth - 10, 34) + + const opText = 'ORDER OF PAYMENT' + const opTextWidth = getTextWidth(opText, 10) + const opTextX = (pageWidth - opTextWidth) / 2 + + doc.setFont('helvetica', 'bold') + doc.setFontSize(10) + doc.text(opText, opTextX, 34) + + const divisionText = 'ELECTRICAL PERMIT' + const divisionTextWidth = getTextWidth(divisionText, 9) + const divisionTextX = (pageWidth - divisionTextWidth) / 2 + + doc.setFont('helvetica', 'normal') + doc.setFontSize(9) + doc.text(divisionText, divisionTextX, 39) + + doc.save('Sample') +} diff --git a/src/utils/functions/index.ts b/src/utils/functions/index.ts index 33c1f54..090672c 100644 --- a/src/utils/functions/index.ts +++ b/src/utils/functions/index.ts @@ -1 +1,3 @@ export { default as checkConnection } from './checkConnection' +export { default as createPdf } from './createPdf' +// export { default as generateFavicon } from './generateFavicon'