Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Update backend_structured/scanners_core.py
Browse files
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 |
-
|
| 1926 |
-
|
| 1927 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1928 |
|
| 1929 |
-
|
| 1930 |
-
canvas_obj.
|
|
|
|
|
|
|
| 1931 |
|
|
|
|
| 1932 |
hdr_logo_stream = get_org_logo_stream()
|
| 1933 |
if hdr_logo_stream:
|
| 1934 |
try:
|
| 1935 |
-
|
| 1936 |
-
|
| 1937 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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)
|