We have a page in a React Web App ([login to view URL]) that shows (for a user-selected neighborhood and season) a schedule of services offered shown by category ("service type"). We need you to add a print-friendly version that can be generated with a button. The list of services types is shown as headers, with separate lines for each service. The lines for the services show the service time followed by location. (Everything is written in Hebrew, which is a right-to-left language. Therefore, the time appears to the right of the location name.) The page also shows a map of the neighborhood, and a few ([login to view URL] shows the times for a particular neighborhood and season.
The goal is to produce a "Print-Friendly Version" button on the page that:
(1) opens a new tab and
(2) that tab contains a pdf version of the data page that is one A4 page exactly in size.
The model is the hand-generated pdf "Luach Beitar Winter 18 10" uploaded here. It doesn't have to look exactly the same, but the basic structure is the same.
The desired format is as follows, following the structure of the uploaded pdf:
(a) A simple header (containing a static text in the right corner and the date in the left corner. could be displayed in 18-11-2018 format. NOTE: the date in the uploaded model is the Hebrew date, which you are *not* expected to create.)
(b) A very simple footer (a centered static string)
(c) The same title as is dynamically generated on the current live page e.g. [login to view URL] Note that the sample title in the pdf is shown highlighted in yellow.
(d) A map as on the current live page (the map is an image file.) The image should be centered and should be scaled if necessary to fit into a size (say vertically at most 17 centimeters)
(e) 3 columns showing the same data as the current live page, where you have a header for each "service type" and a row for each service. Note that in the uploaded sample pdf the titles have a green highlighting. The row consists of a time and a location name. (Note that the time appears as black in the the sample pdf, whereas the names of the locations are shown in the colors that they have on the map. You are *not* expected to create different colors for each location.)
(f) The font used in the sample is Calibri. You are not limited to Calibri, as long as the font that you choose looks good in Hebrew and prints well. IMPORTANT: The font for the 3 columns must be reduced as necessary to fit on an A4 page!!
(g) We should ideally add the logo somewhere on the page, which does not occur in the sample pdf.
(h) The location and size for the logo, as well as for the map, is negotiable. An outstanding solution would modify the size of the map as necessary if need be to make more room for the service times, but that level of quality is not required unless you say that you can do it!
For (e) the ideal solution would have constants: MIN_FONT_SIZE, MAX_FONT_SIZE, MIN_IMAGE_HEIGHT, MAX_IMAGE_HEIGHT. The algorithm to handle sizing would be as follows:
- if MAX_IMAGE_HEIGHT and text with MAX_FONT_SIZE fits the page size, use those.
-if not, then minimize the font size as needed to fit the page size until MIN_FONT_SIZE.
-if even with MIN_FONT_SIZE the page doesn't fit, then scale the image down until the height is MIN_IMAGE_HEIGHT.
-if even MIN_FONT_SIZE and MIN_IMAGE_HEIGHT are too much, then add further pages as needed using MIN_FONT_SIZE. Header, footer and borders should remain unchanged.
(b) and (g): the logo can go to the right of the centered text in the footer. Centered text can be: "www.zmanenu.com 0548412410"
(f) unless your have great skill in graphical design, use the Calibri font
(a) header on top right corner should contain the following Hebrew text:
8 фрилансеров(-а) в среднем готовы выполнить эту работу за $170
I am a React expert with over 7 years of experience in this field. I can start immediately and can complete it. Please check my reviews to see the quality of work i provide.