import ReactPDF, { Document, Page, Text, View, Image, StyleSheet, PDFViewer, Font, } from "@react-pdf/renderer"; import Html from "react-pdf-html"; import { getFormCollectionByID, bytesToSize } from "../utils"; import fs from "fs"; import xpath from "xpath"; import _ from "lodash"; import { DOMParser, XMLSerializer } from "@xmldom/xmldom"; import { AppealRow_pdf } from "./appealRow_pdf"; const styles = StyleSheet.create({ page: { backgroundColor: "white", padding: 20, fontSize: 16, paddingBottom: 50, }, header: { fontSize: 25, fontFamily: "Helvetica", flexDirection: "row", justifyContent: "space-between", }, subHeader: { fontSize: 20, }, logoImage: { width: "200pt" }, questionBullet: { width: "5%", fontSize: 12 }, questionText: { width: "35%", fontSize: 12, fontFamily: "Helvetica-Bold", }, questionTextMid: { width: "80%", fontSize: 12 }, questionTextWide: { width: "95%", fontSize: 12, marginBottom: 5 }, questionAnswer: { color: "#757575", width: "65%", fontSize: 12, padding: 5, border: 1, borderColor: "#eee", paddingLeft: 10, backgroundColor: "white", }, questionAnswerMid: { color: "#757575", width: "20%", fontSize: 12, padding: 5, border: 1, borderColor: "#eee", paddingLeft: 10, backgroundColor: "white", }, questionAnswerWide: { color: "#757575", width: "100%", fontSize: 12, marginLeft: "5%", border: 1, borderColor: "#eee", backgroundColor: "white", padding: 5, }, sectionContainer: { backgroundColor: "#F8F8F8", padding: 10, marginTop: 20, fontSize: 15, }, pageNumber: { position: "absolute", fontSize: 12, bottom: 20, left: 0, right: 0, textAlign: "center", color: "grey", }, richArea: { fontSize: 12, flexDirection: "column", }, }); export const planningappeals78_pdf = ({ docProps, pickListData }) => { //console.log("----", docProps); function formatDates(dateObj) { var dateObj = new Date(dateObj); var dd = String(dateObj.getDate()).padStart(2, "0"); var mm = String(dateObj.getMonth() + 1).padStart(2, "0"); //January is 0! var yyyy = dateObj.getFullYear(); return dd + "/" + mm + "/" + yyyy; } let values = docProps; // let datestr = values.pinswg_name.split("-"); // let signedDate = datestr[2] + "/" + datestr[1] + "/" + datestr[0]; // let appealTypeValue = getFormCollectionByID(values.pinswg_appealcasetype); var path = require("path"); const configDirectory = path.resolve(process.cwd(), "data/formsxml"); var xmlStr = fs.readFileSync( path.join(configDirectory, "planningappeals78" + ".xml"), "utf8" ); xmlStr = xmlStr.replace(/\t/g, ""); xmlStr = xmlStr.replace(/\n/g, ""); xmlStr = xmlStr.replace(/> <"/g, "><"); xmlStr = xmlStr.toString(); //console.log(xmlStr); const parser = new DOMParser(); var doc = parser.parseFromString(xmlStr, "text/xml"); var titles = xpath.select( "//form/tabs/tab[*]/labels/label/@description", doc ); var rowXML = xpath.select( "/form/tabs/tab[*]/columns//sections/section/rows/row", doc ); var titleList = xpath.select( "//form/tabs/tab[*]/labels/label/@description", doc ); //console.log("\n//////////\n The Case:\n", docProps.caseObj); return ( Planning Appeals s78 For Planning, Conservation area, Listed Building and Advertisement applications/appeals PEDW Logo {Object.keys(titles).map( (key) => key != 0 && ( {parseInt(key)} {titles[key].value} ) )} `${pageNumber} / ${totalPages}` } fixed /> Case Details Appeal submitted on behalf of: {" "} {values.caseObj.pinswg_onbehalfof} Appellant or Agent {" "} {values.caseObj .pinswg_appellantagent == "846040000" ? "Appellant" : "Agent"} Appellant name {values.caseObj .pinswg_appellantfirstname + " " + values.caseObj .pinswg_appellantlastname} Appellant email address { values.caseObj .pinswg_appellantemailaddress } Appellant address { values.caseObj .pinswg_appellantaddress } Appellant phone number {" "} { values.caseObj .pinswg_appellantphonenumber } {values.caseObj.pinswg_appellantagent != "846040000" && ( <> Company name { values.caseObj .pinswg_agentcompanyname } Agent name { values.caseObj .pinswg_agentfirstname }{" "} { values.caseObj .pinswg_agentlastname } Agent email address { values.caseObj .pinswg_agentemailaddress } Agent address { values.caseObj .pinswg_agentaddress } Agent phone number {" "} { values.caseObj .pinswg_agentphonenumber } )} LPA {values.caseObj.pinswg_lpaname} {/* Contact Preference {values.caseObj .pinswg_contactprefs == "846040000" ? "Email" : "Post"} */} Language Preference {values.caseObj .pinswg_contactprefs == "846040000" ? "English" : "Welsh"} ); };