A4 portrait white background medical poster for "[INSTRUMENT NAME]". - Bold navy title at top with divider line - Centered diagram box (gray border) showing Straight & Curved views with labels - 3 sections with underlined bold navy headings: Identification:- (5 physical feature bullets) Uses:- (6 surgical use bullets) Sterilization:- (Autoclaving, Boiling, Cidex) - Footer: "OT Technique Reference Card | [INSTRUMENT NAME]" - Style: white bg, navy headings, black text, clean OT reference card, print-ready footer me created by 3 rd prof student (batch 22/23) guidance by shalya tantra department upar mene photo Diya vo heading buss itna kar ke de artery forceps
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/artery-forceps-poster
~/artery-forceps-poster/generate_poster.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor, white, black
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import math
OUTPUT = "/home/daytona/workspace/artery-forceps-poster/Artery_Forceps_Poster.pdf"
W, H = A4 # 595.27 x 841.89 points
NAVY = HexColor("#003087")
LIGHT_GRAY = HexColor("#f2f4f7")
GRAY_BORDER = HexColor("#999999")
DIVIDER = HexColor("#003087")
TEXT_BLACK = HexColor("#1a1a1a")
SECTION_BG = HexColor("#eef2f7")
c = canvas.Canvas(OUTPUT, pagesize=A4)
# āāā BACKGROUND āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
c.setFillColor(white)
c.rect(0, 0, W, H, fill=1, stroke=0)
# āāā COLLEGE HEADER BAND āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
band_h = 68
c.setFillColor(HexColor("#f7f9fc"))
c.setStrokeColor(NAVY)
c.setLineWidth(1.2)
c.rect(18, H - band_h - 14, W - 36, band_h, fill=1, stroke=1)
# Left circle emblem (simple drawn)
cx1, cy1, r1 = 46, H - 14 - band_h/2, 24
c.setFillColor(NAVY)
c.circle(cx1, cy1, r1, fill=1, stroke=0)
c.setFillColor(white)
c.setFont("Helvetica-Bold", 5.5)
c.drawCentredString(cx1, cy1+10, "SUMANDEEP")
c.drawCentredString(cx1, cy1+4, "VIDYAPEETH")
c.setFont("Helvetica", 4.5)
c.drawCentredString(cx1, cy1-2, "DEEMED TO BE")
c.drawCentredString(cx1, cy1-8, "UNIVERSITY")
c.setFont("Helvetica-Bold", 4)
c.drawCentredString(cx1, cy1-15, "EST. 1988")
# Right circle emblem
cx2, cy2, r2 = W - 46, H - 14 - band_h/2, 24
c.setFillColor(NAVY)
c.circle(cx2, cy2, r2, fill=1, stroke=0)
c.setFillColor(white)
c.setFont("Helvetica-Bold", 5)
c.drawCentredString(cx2, cy2+10, "SAMCH")
c.drawCentredString(cx2, cy2+3, "VADODARA")
c.setFont("Helvetica", 4.5)
c.drawCentredString(cx2, cy2-4, "GUJARAT")
c.setFont("Helvetica-Bold", 4)
c.drawCentredString(cx2, cy2-12, "INDIA")
# College name text block
tx = W / 2
c.setFillColor(NAVY)
c.setFont("Helvetica-Bold", 13.5)
c.drawCentredString(tx, H - 28, "Sumandeep Ayurved Medical College & Hospital")
c.setFont("Helvetica", 7.5)
c.drawCentredString(tx, H - 38, "A Constituent Institute of")
c.setFont("Helvetica-Bold", 10)
c.drawCentredString(tx, H - 49, "Sumandeep Vidyapeeth Deemed to be University")
c.setFont("Helvetica", 6)
c.setFillColor(TEXT_BLACK)
c.drawCentredString(tx, H - 58, "An Institution Deemed to be University u/s 3 and 12B of UGC Act 1956 | Accredited by NAAC with CGPA 3.61 at 'A++'")
c.drawCentredString(tx, H - 65, "At and Post: Piparia, Taluka: Waghodia, District: Vadodara, Gujarat State, INDIA. Pin Code: 391760")
# Address sub-band
c.setFillColor(NAVY)
c.setStrokeColor(NAVY)
c.rect(18, H - band_h - 14 - 13, W - 36, 13, fill=1, stroke=0)
c.setFillColor(white)
c.setFont("Helvetica", 6)
c.drawCentredString(W/2, H - band_h - 14 - 7.5,
"E-mail: principalsamch@sumandeepvidyapeethdu.edu.in | Website: www.sumandeepvidyapeethdu.edu.in | Phone: +91 2668 245262")
TOP_Y = H - band_h - 14 - 13 # bottom of header block
# āāā INSTRUMENT TITLE āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
title_y = TOP_Y - 32
c.setFillColor(NAVY)
c.setFont("Helvetica-Bold", 22)
c.drawCentredString(W/2, title_y, "ARTERY FORCEPS")
# Divider
c.setStrokeColor(NAVY)
c.setLineWidth(2)
c.line(30, title_y - 9, W - 30, title_y - 9)
c.setLineWidth(0.6)
c.setStrokeColor(HexColor("#6699cc"))
c.line(30, title_y - 12, W - 30, title_y - 12)
# āāā DIAGRAM BOX āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
diag_y_top = title_y - 20
diag_h = 145
diag_x = 40
diag_w = W - 80
diag_y_bot = diag_y_top - diag_h
c.setFillColor(LIGHT_GRAY)
c.setStrokeColor(GRAY_BORDER)
c.setLineWidth(1.2)
c.roundRect(diag_x, diag_y_bot, diag_w, diag_h, 6, fill=1, stroke=1)
# --- DIAGRAM LABEL ---
c.setFillColor(NAVY)
c.setFont("Helvetica-Bold", 9)
c.drawCentredString(W/2, diag_y_top - 13, "Instrument Views")
half_w = diag_w / 2
# === STRAIGHT ARTERY FORCEPS (Left panel) ===
def draw_straight_forceps(cv, ox, oy):
"""Draw a simplified straight artery forceps (Halsted mosquito style)"""
ring_r = 10
# Ring handles
cv.setStrokeColor(HexColor("#444444"))
cv.setLineWidth(1.8)
cv.setFillColor(HexColor("#dddddd"))
# Left ring
cv.circle(ox - 14, oy, ring_r, fill=0, stroke=1)
# Right ring
cv.circle(ox + 14, oy, ring_r, fill=0, stroke=1)
# Shank (body going upward from rings)
cv.setLineWidth(2.2)
cv.line(ox - 14, oy + ring_r, ox - 5, oy + 28)
cv.line(ox + 14, oy + ring_r, ox + 5, oy + 28)
# Box joint / ratchet area
cv.setFillColor(HexColor("#aaaaaa"))
cv.setStrokeColor(HexColor("#555555"))
cv.setLineWidth(1.2)
cv.rect(ox - 6, oy + 28, 12, 8, fill=1, stroke=1)
# Ratchet teeth marks
cv.setLineWidth(0.5)
cv.setStrokeColor(HexColor("#333333"))
for i in range(3):
yy = oy + 30 + i*2
cv.line(ox - 5, yy, ox + 5, yy)
# Shank above ratchet
cv.setLineWidth(2.0)
cv.setStrokeColor(HexColor("#444444"))
cv.line(ox - 2, oy + 36, ox - 2, oy + 65)
cv.line(ox + 2, oy + 36, ox + 2, oy + 65)
# Jaw (straight, narrow)
cv.setLineWidth(1.5)
cv.line(ox - 2, oy + 65, ox - 1, oy + 90)
cv.line(ox + 2, oy + 65, ox + 1, oy + 90)
# Serrations on jaw
cv.setLineWidth(0.5)
for i in range(5):
yy = oy + 67 + i*4
cv.line(ox - 2.5, yy, ox + 2.5, yy)
# Tips
cv.setFillColor(HexColor("#888888"))
cv.setStrokeColor(HexColor("#444444"))
cv.setLineWidth(1.0)
cv.ellipse(ox - 1.5, oy + 88, ox + 1.5, oy + 92, fill=1, stroke=1)
def draw_curved_forceps(cv, ox, oy):
"""Draw a simplified curved artery forceps"""
ring_r = 10
# Ring handles
cv.setStrokeColor(HexColor("#444444"))
cv.setLineWidth(1.8)
cv.setFillColor(HexColor("#dddddd"))
cv.circle(ox - 14, oy, ring_r, fill=0, stroke=1)
cv.circle(ox + 14, oy, ring_r, fill=0, stroke=1)
# Shank
cv.setLineWidth(2.2)
cv.line(ox - 14, oy + ring_r, ox - 5, oy + 28)
cv.line(ox + 14, oy + ring_r, ox + 5, oy + 28)
# Box joint
cv.setFillColor(HexColor("#aaaaaa"))
cv.setStrokeColor(HexColor("#555555"))
cv.setLineWidth(1.2)
cv.rect(ox - 6, oy + 28, 12, 8, fill=1, stroke=1)
cv.setLineWidth(0.5)
cv.setStrokeColor(HexColor("#333333"))
for i in range(3):
yy = oy + 30 + i*2
cv.line(ox - 5, yy, ox + 5, yy)
# Straight shank portion
cv.setLineWidth(2.0)
cv.setStrokeColor(HexColor("#444444"))
cv.line(ox - 2, oy + 36, ox - 2, oy + 60)
cv.line(ox + 2, oy + 36, ox + 2, oy + 60)
# Curved jaw portion (bezier approximation via lines)
import math
angle_steps = 12
start_angle = 90
end_angle = 50
radius = 32
cx_arc = ox - 2 + radius
cy_arc = oy + 60
pts_outer = []
pts_inner = []
for i in range(angle_steps + 1):
a = math.radians(start_angle - (start_angle - end_angle) * i / angle_steps)
pts_outer.append((cx_arc - radius * math.cos(a), cy_arc + radius * math.sin(a)))
pts_inner.append((cx_arc - (radius - 4) * math.cos(a), cy_arc + (radius - 4) * math.sin(a)))
cv.setStrokeColor(HexColor("#444444"))
cv.setLineWidth(1.5)
p = cv.beginPath()
p.moveTo(*pts_outer[0])
for pt in pts_outer[1:]:
p.lineTo(*pt)
cv.drawPath(p, stroke=1, fill=0)
p2 = cv.beginPath()
p2.moveTo(*pts_inner[0])
for pt in pts_inner[1:]:
p2.lineTo(*pt)
cv.drawPath(p2, stroke=1, fill=0)
# Serrations
cv.setLineWidth(0.4)
for i in range(1, angle_steps, 2):
x1, y1 = pts_outer[i]
x2, y2 = pts_inner[i]
cv.line(x1, y1, x2, y2)
# Tip
tx, ty = pts_outer[-1]
cv.setFillColor(HexColor("#888888"))
cv.setStrokeColor(HexColor("#444444"))
cv.setLineWidth(1.0)
cv.circle(tx, ty, 2.5, fill=1, stroke=1)
# Panel centers
lx = diag_x + half_w * 0.5
rx = diag_x + half_w * 1.5
panel_y = diag_y_bot + 18
# Vertical divider
c.setStrokeColor(GRAY_BORDER)
c.setLineWidth(0.8)
c.setDash(4, 3)
c.line(diag_x + half_w, diag_y_bot + 8, diag_x + half_w, diag_y_top - 20)
c.setDash()
# Sub-labels
c.setFillColor(NAVY)
c.setFont("Helvetica-Bold", 8)
c.drawCentredString(lx, diag_y_bot + 8, "STRAIGHT TYPE")
c.drawCentredString(rx, diag_y_bot + 8, "CURVED TYPE")
draw_straight_forceps(c, lx, panel_y)
draw_curved_forceps(c, rx, panel_y)
# Part labels for left (straight)
c.setFillColor(TEXT_BLACK)
c.setFont("Helvetica", 6.5)
label_items_left = [
(lx - 55, panel_y + 95, "ā Jaw (straight)"),
(lx - 55, panel_y + 60, "ā Shank"),
(lx - 55, panel_y + 35, "ā Ratchet"),
(lx - 55, panel_y + 12, "ā Finger rings"),
]
for lbx, lby, txt in label_items_left:
c.drawString(lbx, lby, txt)
c.setLineWidth(0.4)
c.setStrokeColor(HexColor("#888888"))
c.line(lbx + c.stringWidth(txt, "Helvetica", 6.5), lby + 3,
lbx + c.stringWidth(txt, "Helvetica", 6.5) + 8, lby + 3)
# Part labels for right (curved)
label_items_right = [
(rx + 22, panel_y + 95, "Curved jaw ā"),
(rx + 22, panel_y + 60, "Shank ā"),
(rx + 22, panel_y + 35, "Box joint ā"),
(rx + 22, panel_y + 12, "Rings ā"),
]
for lbx, lby, txt in label_items_right:
c.drawString(lbx, lby, txt)
# āāā THREE INFO SECTIONS āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
SEC_Y = diag_y_bot - 14
SEC_H_ID = 112
SEC_H_USE = 130
SEC_H_ST = 78
SEC_X = 30
SEC_W = W - 60
def draw_section(cv, sx, sy_top, sw, sh, heading, bullets):
sy_bot = sy_top - sh
# Background
cv.setFillColor(SECTION_BG)
cv.setStrokeColor(NAVY)
cv.setLineWidth(1.0)
cv.roundRect(sx, sy_bot, sw, sh, 5, fill=1, stroke=1)
# Heading
cv.setFillColor(NAVY)
cv.setFont("Helvetica-Bold", 10.5)
heading_y = sy_top - 15
cv.drawString(sx + 10, heading_y, heading)
# Underline
hw = cv.stringWidth(heading, "Helvetica-Bold", 10.5)
cv.setLineWidth(1.2)
cv.line(sx + 10, heading_y - 2, sx + 10 + hw, heading_y - 2)
# Bullets
cv.setFont("Helvetica", 8.5)
cv.setFillColor(TEXT_BLACK)
bullet_y = heading_y - 16
for b in bullets:
cv.setFillColor(NAVY)
cv.circle(sx + 18, bullet_y + 3, 2.2, fill=1, stroke=0)
cv.setFillColor(TEXT_BLACK)
cv.drawString(sx + 25, bullet_y, b)
bullet_y -= 14
# IDENTIFICATION
id_bullets = [
"Ring handles with two finger rings for grip",
"Box joint / pivot connecting the two halves",
"Ratchet mechanism (3ā5 teeth) for locking",
"Straight or curved serrated jaw blades",
"Available in sizes: Mosquito, Small, Medium & Large",
]
draw_section(c, SEC_X, SEC_Y, SEC_W, SEC_H_ID, "Identification:-", id_bullets)
# USES
use_y = SEC_Y - SEC_H_ID - 8
use_bullets = [
"Clamping blood vessels to achieve haemostasis",
"Holding tissue during dissection procedures",
"Grasping and ligating small to medium vessels",
"Securing pedicles during excision of tumours",
"Assisting in suture placement and knot tying",
"Used in Shalya Tantra for wound dissection & drainage",
]
draw_section(c, SEC_X, use_y, SEC_W, SEC_H_USE, "Uses:-", use_bullets)
# STERILIZATION
ster_y = use_y - SEC_H_USE - 8
ster_bullets = [
"Autoclaving: 121°C / 15 psi for 15 min (most preferred)",
"Boiling: Immerse in boiling water for 20 minutes",
"Cidex (2% Glutaraldehyde): Immerse for 20ā30 minutes",
]
draw_section(c, SEC_X, ster_y, SEC_W, SEC_H_ST, "Sterilization:-", ster_bullets)
# āāā FOOTER āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
footer_y = 14
c.setFillColor(NAVY)
c.rect(0, 0, W, footer_y + 22, fill=1, stroke=0)
c.setFillColor(white)
c.setFont("Helvetica-Bold", 8.5)
c.drawCentredString(W/2, footer_y + 10, "OT Technique Reference Card | ARTERY FORCEPS")
c.setFont("Helvetica", 7)
c.drawCentredString(W/2, footer_y + 1, "Created by 3rd Prof. Student (Batch 22/23) | Guidance by: Shalya Tantra Department")
c.save()
print(f"PDF saved: {OUTPUT}")
cd /home/daytona/workspace/artery-forceps-poster && python generate_poster.py 2>ā¦
ls -lh /home/daytona/workspace/artery-forceps-poster/Artery_Forceps_Poster.pdf
Artery Forceps Poster
PDF Document Ā· PDF
Posting
Poster bna ke de
Artery Forceps Poster
PDF Document Ā· PDF
Ha
pdftoppm -r 200 -png /home/daytona/workspace/artery-forceps-poster/Artery_Forcepā¦
Artery Forceps Poster 1
Image Ā· PNG
Artery Forceps Poster
PDF Document Ā· PDF
Abe muje poster generate kar ke de sirf jo mene information upar di uska pdf ppt asa kuch mat de
A4 portrait white background medical OT reference card poster for ARTERY FORCEPS. TOP HEADER (full width): - Institution header box with navy border - Bold navy text: "Sumandeep Ayurved Medical College & Hospital" - Smaller text: "A Constituent Institute of Sumandeep Vidyapeeth Deemed to be University" - Small text: "Piparia, Waghodia, Vadodara, Gujarat | NAAC A++ Accredited" MAIN TITLE (centered, bold navy, large font): ARTERY FORCEPS - Bold navy horizontal divider line below title DIAGRAM SECTION (centered box with gray border, light gray background): - Left half: Straight artery forceps diagram with labels: Jaw, Shank, Ratchet, Finger Rings - Right half: Curved artery forceps diagram with labels: Curved Jaw, Shank, Box Joint, Rings - Dashed vertical divider between the two views - Label below left: "STRAIGHT TYPE", label below right: "CURVED TYPE" - Section heading centered above box: "Instrument Views" THREE INFO SECTIONS (navy border boxes, light blue-gray background): Section 1 - bold navy underlined heading: "Identification:-" Bullet points (5): ⢠Ring handles with two finger rings for grip ⢠Box joint / pivot connecting the two halves ⢠Ratchet mechanism (3ā5 teeth) for locking ⢠Straight or curved serrated jaw blades ⢠Available in sizes: Mosquito, Small, Medium & Large Section 2 - bold navy underlined heading: "Uses:-" Bullet points (6): ⢠Clamping blood vessels to achieve haemostasis ⢠Holding tissue during dissection procedures ⢠Grasping and ligating small to medium vessels ⢠Securing pedicles during excision of tumours ⢠Assisting in suture placement and knot tying ⢠Used in Shalya Tantra for wound dissection and drainage Section 3 - bold navy underlined heading: "Sterilization:-" Bullet points (3): ⢠Autoclaving: 121°C / 15 psi for 15 minutes (most preferred) ⢠Boiling: Immerse in boiling water for 20 minutes ⢠Cidex (2% Glutaraldehyde): Immerse for 20ā30 minutes FOOTER (navy background, white text, full width): "OT Technique Reference Card | ARTERY FORCEPS" "Created by 3rd Prof. Student (Batch 22/23) | Guidance by: Shalya Tantra Department" Style: white background, navy (#003087) headings and borders, black body text, clean professional medical reference card, print-ready

Footer me se sirf refrence hata de and Created by 3rd Prof. Student (Batch 22/23) | Guidance by: Shalya Tantra Department ye bullet points me vertical kar de
A4 portrait white background medical OT reference card poster for ARTERY FORCEPS. TOP HEADER (full width): - Institution header box with navy border - Bold navy text: "Sumandeep Ayurved Medical College & Hospital" - Smaller text: "A Constituent Institute of Sumandeep Vidyapeeth Deemed to be University" - Small text: "Piparia, Waghodia, Vadodara, Gujarat | NAAC A++ Accredited" MAIN TITLE (centered, bold navy, large font): ARTERY FORCEPS - Bold navy horizontal divider line below title DIAGRAM SECTION (centered box with gray border, light gray background): - Left half: Straight artery forceps diagram with labels: Jaw, Shank, Ratchet, Finger Rings - Right half: Curved artery forceps diagram with labels: Curved Jaw, Shank, Box Joint, Rings - Dashed vertical divider between the two views - Label below left: "STRAIGHT TYPE", label below right: "CURVED TYPE" - Section heading centered above box: "Instrument Views" THREE INFO SECTIONS (navy border boxes, light blue-gray background): Section 1 - bold navy underlined heading: "Identification:-" Bullet points (5): ⢠Ring handles with two finger rings for grip ⢠Box joint / pivot connecting the two halves ⢠Ratchet mechanism (3ā5 teeth) for locking ⢠Straight or curved serrated jaw blades ⢠Available in sizes: Mosquito, Small, Medium & Large Section 2 - bold navy underlined heading: "Uses:-" Bullet points (6): ⢠Clamping blood vessels to achieve haemostasis ⢠Holding tissue during dissection procedures ⢠Grasping and ligating small to medium vessels ⢠Securing pedicles during excision of tumours ⢠Assisting in suture placement and knot tying ⢠Used in Shalya Tantra for wound dissection and drainage Section 3 - bold navy underlined heading: "Sterilization:-" Bullet points (3): ⢠Autoclaving: 121°C / 15 psi for 15 minutes (most preferred) ⢠Boiling: Immerse in boiling water for 20 minutes ⢠Cidex (2% Glutaraldehyde): Immerse for 20ā30 minutes FOOTER (navy background, white text, full width, two lines stacked vertically centered): Line 1: "OT Technique Reference Card | ARTERY FORCEPS" Line 2 (below line 1, smaller white text, two bullet points stacked vertically): ⢠Created by 3rd Prof. Student (Batch 22/23) ⢠Guidance by: Shalya Tantra Department NO word "Reference" anywhere except inside "OT Technique Reference Card" in footer line 1. Style: white background, navy (#003087) headings and borders, black body text, clean professional medical reference card, print-ready
