larxius commited on
Commit
12fbdf2
·
verified ·
1 Parent(s): d8b826e

Update backend_structured/scanners_core.py

Browse files
Files changed (1) hide show
  1. backend_structured/scanners_core.py +43 -8
backend_structured/scanners_core.py CHANGED
@@ -1920,21 +1920,56 @@ def generate_scan_pdf(scan, vulnerabilities):
1920
 
1921
  if canvas_obj._pageNumber > 2:
1922
  # --- Header ---
 
1923
  if has_local_logo:
1924
  try:
1925
- canvas_obj.drawImage(ImageReader(logo_path), 40, letter[1] - 55, width=120, height=40, preserveAspectRatio=True, mask='auto')
1926
- except Exception:
1927
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
1928
 
1929
- canvas_obj.setFont('Helvetica-Bold', 12)
1930
- canvas_obj.drawCentredString(letter[0] / 2.0, letter[1] - 35, "Web Application VAPT Report")
 
 
1931
 
 
1932
  hdr_logo_stream = get_org_logo_stream()
1933
  if hdr_logo_stream:
1934
  try:
1935
- canvas_obj.drawImage(ImageReader(hdr_logo_stream), letter[0] - 160, letter[1] - 55, width=120, height=40, preserveAspectRatio=True, mask='auto')
1936
- except Exception:
1937
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1938
 
1939
  # --- Footer ---
1940
  canvas_obj.setFont('Helvetica', 9)
 
1920
 
1921
  if canvas_obj._pageNumber > 2:
1922
  # --- Header ---
1923
+ # 1. Left Logo (LarShield Brand)
1924
  if has_local_logo:
1925
  try:
1926
+ img_reader_l = ImageReader(logo_path)
1927
+ lw, lh = img_reader_l.getSize()
1928
+ l_aspect = lw / float(lh) if lh > 0 else 1.0
1929
+ l_target_h = 32
1930
+ l_target_w = min(110, l_target_h * l_aspect)
1931
+ l_target_h = l_target_w / l_aspect
1932
+ canvas_obj.drawImage(
1933
+ img_reader_l,
1934
+ 40,
1935
+ letter[1] - 16 - l_target_h,
1936
+ width=l_target_w,
1937
+ height=l_target_h,
1938
+ mask='auto'
1939
+ )
1940
+ except Exception as e:
1941
+ print(f"[PDF Header] Left logo error: {e}")
1942
 
1943
+ # 2. Center Header Text
1944
+ canvas_obj.setFont('Helvetica-Bold', 11)
1945
+ canvas_obj.setFillColor(colors.HexColor("#0F172A"))
1946
+ canvas_obj.drawCentredString(letter[0] / 2.0, letter[1] - 34, "Web Application VAPT Report")
1947
 
1948
+ # 3. Right Logo (Client Organization)
1949
  hdr_logo_stream = get_org_logo_stream()
1950
  if hdr_logo_stream:
1951
  try:
1952
+ img_reader_r = ImageReader(hdr_logo_stream)
1953
+ rw, rh = img_reader_r.getSize()
1954
+ r_aspect = rw / float(rh) if rh > 0 else 1.0
1955
+ r_target_h = 32
1956
+ r_target_w = min(120, r_target_h * r_aspect)
1957
+ r_target_h = r_target_w / r_aspect
1958
+ canvas_obj.drawImage(
1959
+ img_reader_r,
1960
+ letter[0] - 40 - r_target_w,
1961
+ letter[1] - 16 - r_target_h,
1962
+ width=r_target_w,
1963
+ height=r_target_h,
1964
+ mask='auto'
1965
+ )
1966
+ except Exception as e:
1967
+ print(f"[PDF Header] Right logo error: {e}")
1968
+
1969
+ # 4. Clean Header Horizontal Line
1970
+ canvas_obj.setStrokeColor(colors.HexColor("#CBD5E1"))
1971
+ canvas_obj.setLineWidth(0.75)
1972
+ canvas_obj.line(40, letter[1] - 52, letter[0] - 40, letter[1] - 52)
1973
 
1974
  # --- Footer ---
1975
  canvas_obj.setFont('Helvetica', 9)