#!/usr/bin/env python3 """Generate English SDS for Ethyl Acetate — new layout + page numbering.""" import os, base64, io from weasyprint import HTML import pikepdf PRIMARY = "#004C98" PRIMARY_DARK = "#00335F" SECONDARY = "#2B2E33" MUTED = "#5B6670" ACCENT = "#0071B8" HIGHLIGHT = "#F2F6FA" BORDER = "#D9E1E8" WHITE = "#FFFFFF" WARNING_AMBER = "#C77700" LOGO_PATH = '/home/bachko/msds-tds/assets/logo-synthesia.png' ISO_PATH = '/home/bachko/msds-tds/assets/iso-seal-tuv-rheinland.png' def img_b64(path): with open(path, 'rb') as f: return f"data:image/png;base64,{base64.b64encode(f.read()).decode()}" logo_b64 = img_b64(LOGO_PATH) iso_b64 = img_b64(ISO_PATH) html = f"""
|
SAFETY DATA SHEET
Ethyl acetate
SDS-ETHYL-ACETATE-REV1 · 06/07/2026
|
| Property | Value |
|---|---|
| Product form | Substance |
| Chemical name | Ethyl acetate |
| EC Index-No. | 607-022-00-5 |
| EC-No. | 205-500-4 |
| CAS-No. | 141-78-6 |
| REACH registration No. | 01-2119475103-46-XXXX |
| Molecular formula | C₄H₈O₂ |
| Use of the substance/mixture | Industrial use |
| Restrictions on use | No data available |
| Field | Details |
|---|---|
| Company | Synthesia Ltd. |
| Address | Todor Radunchev 9, Krivina 1588, Bulgaria |
| VAT | BG121306542 |
| Phone | +359 2 974 4968 |
| office@synthesia.bg |
| Emergency number | 112 |
Classification according to Regulation (EC) No. 1272/2008 [CLP] as amended by EU 2024/2865:
| Hazard class | Category | Hazard statement |
|---|---|---|
| Flammable liquids | Category 2 | H225 — Highly flammable liquid and vapour |
| Serious eye damage/eye irritation | Category 2 | H319 — Causes serious eye irritation |
| Specific target organ toxicity — Single exposure | Category 3 (Narcosis) | H336 — May cause drowsiness or dizziness |
Full text of H-statements: see Section 16.
| Element | Details |
|---|---|
| Hazard pictograms | GHS02 (Flame) · GHS07 (Exclamation mark) |
| Signal word | Danger |
| Hazard statements | H225 — Highly flammable liquid and vapour. H319 — Causes serious eye irritation. H336 — May cause drowsiness or dizziness. |
| Precautionary statements | P210 — Keep away from heat, hot surfaces, sparks, open flames and other ignition sources. No smoking. P280 — Wear protective gloves/protective clothing/eye protection/face protection. P304+P340 — IF INHALED: Remove person to fresh air and keep comfortable for breathing. P305+P351+P338 — IF IN EYES: Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing. P337+P313 — If eye irritation persists: Get medical advice/attention. P403+P233 — Store in a well-ventilated place. Keep container tightly closed. |
| EUH-statements | EUH066 — Repeated exposure may cause skin dryness or cracking. |
This substance does not contain components considered to be persistent, bioaccumulative and toxic (PBT), very persistent and very bioaccumulative (vPvB), persistent, mobile and toxic (PMT), or very persistent and very mobile (vPvM) at levels of 0.1% or higher, in accordance with the criteria of CLP Regulation as amended by EU 2024/2865 and REACH Annex XIII.
This substance is not classified as an endocrine disruptor (ED) according to the criteria of CLP Regulation as amended by EU 2024/2865, Commission Delegated Regulation (EU) 2017/2100, or Commission Regulation (EU) 2018/605.
Vapours may form explosive mixture with air.
| Component | CAS-No. | EC-No. | Index-No. | Classification | Concentration |
|---|---|---|---|---|---|
| Ethyl acetate | 141-78-6 | 205-500-4 | 607-022-00-5 | Flam. Liq. 2; Eye Irrit. 2; STOT SE 3; H225, H319, H336 | > 99.8% |
Molecular weight: 88.11 g/mol | Formula: C₄H₈O₂
Not applicable.
| Route | Measures |
|---|---|
| General | Call a poison centre or a doctor if you feel unwell. |
| After inhalation | Remove person to fresh air and keep comfortable for breathing. If experiencing respiratory symptoms: Call a poison centre or a doctor. |
| After skin contact | Rinse skin with water/shower. Take off immediately all contaminated clothing. |
| After eye contact | Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing. If eye irritation persists: Get medical advice/attention. |
| After ingestion | Rinse mouth. Do not induce vomiting. Call a poison centre or a doctor if you feel unwell. |
| Symptoms/effects | Description |
|---|---|
| General | May cause drowsiness or dizziness. |
| Skin contact | Repeated exposure may cause skin dryness or cracking. |
| Eye contact | Eye irritation. |
Treat symptomatically.
| Suitable extinguishing media | Water spray. Dry powder. Foam. Carbon dioxide. |
| Unsuitable extinguishing media | High volume water jet. |
| Fire hazard | Highly flammable liquid and vapour. |
| Hazardous decomposition products | Toxic fumes may be released. Carbon oxides. |
Do not attempt to take action without suitable protective equipment. Self-contained breathing apparatus. Complete protective clothing.
| Personnel | Measures |
|---|---|
| For non-emergency personnel | Wear recommended personal protective equipment. Ventilate spillage area. No open flames, no sparks, and no smoking. Avoid breathing vapours. Avoid contact with skin and eyes. |
| For emergency responders | Do not attempt to take action without suitable protective equipment. Eliminate all ignition sources if safe to do so. Evacuate unnecessary personnel. |
Avoid release to the environment.
| Methods for cleaning up | Take up liquid spill into absorbent material. Notify authorities if product enters sewers or public waters. |
| Other information | Dispose of materials or solid residues at an authorised site. |
Refer to protective measures listed in Sections 7 and 8. For further information refer to Section 13.
Keep away from heat, hot surfaces, sparks, open flames and other ignition sources. No smoking. Ground/bond container and receiving equipment. Use only non-sparking tools. Take precautionary measures against static discharge. Flammable vapours may accumulate in the container. Use explosion-proof equipment. Wear personal protective equipment. Use only outdoors or in a well-ventilated area. Avoid breathing vapours. Avoid contact with skin and eyes.
Hygiene measures: Do not eat, drink or smoke when using this product. Always wash hands after handling the product.
| Technical measures | Ground/bond container and receiving equipment. |
| Storage conditions | Store in a well-ventilated place. Keep cool. Keep container tightly closed. Store locked up. |
| Heat and ignition sources | Keep away from open flames, hot surfaces and sources of ignition. |
No additional information available.
| EU Occupational Exposure Limits (IOELV) — Ethyl acetate | |
|---|---|
| IOELV TWA | 734 mg/m³ (200 ppm) |
| IOELV STEL | 1,468 mg/m³ (400 ppm) |
| Reference | Directive (EU) 2017/164 · SCOEL Recommendations (2008) |
| UK Workplace Exposure Limits (WEL) | |
|---|---|
| WEL TWA | 734 mg/m³ (200 ppm) |
| WEL STEL | 1,468 mg/m³ (400 ppm) |
| Reference | EH40/2005 (3rd ed., 2018), HSE |
| DNEL/DMEL — Workers | |
|---|---|
| Acute - systemic, inhalation | 1,468 mg/m³ |
| Acute - local, inhalation | 1,468 mg/m³ |
| Long-term - systemic, dermal | 63 mg/kg bw/day |
| Long-term - systemic, inhalation | 734 mg/m³ |
| Long-term - local, inhalation | 734 mg/m³ |
| DNEL/DMEL — General population | |
|---|---|
| Acute - systemic, inhalation | 734 mg/m³ |
| Acute - local, inhalation | 734 mg/m³ |
| Long-term - systemic, oral | 4.5 mg/kg bw/day |
| Long-term - systemic, inhalation | 367 mg/m³ |
| Long-term - systemic, dermal | 37 mg/kg bw/day |
| Long-term - local, inhalation | 367 mg/m³ |
| PNEC | |
|---|---|
| Freshwater | 0.24 mg/l |
| Marine water | 0.024 mg/l |
| Intermittent (freshwater) | 1.65 mg/l |
| Sediment (freshwater) | 1.15 mg/kg dwt |
| Sediment (marine water) | 0.115 mg/kg dwt |
| Soil | 0.148 mg/kg dwt |
| Oral (secondary poisoning) | 0.2 g/kg food |
| STP | 650 mg/l |
| Control type | Measures |
|---|---|
| Engineering controls | Ensure good ventilation of the work station. |
| Hand protection | Protective gloves. |
| Eye protection | Safety glasses. |
| Skin and body protection | Wear suitable protective clothing. |
| Respiratory protection | In case of insufficient ventilation, wear suitable respiratory equipment. |
| Environmental exposure | Avoid release to the environment. |
| Property | Value |
|---|---|
| Physical state | Clear liquid |
| Colour | Colourless |
| Odour | Fruity |
| Melting / Freezing point | -84 °C |
| Initial boiling point and boiling range | 76.5 – 77.5 °C |
| Flash point | -4 °C |
| Auto-ignition temperature | 426 °C |
| Flammability (solid, gas) | Not applicable (liquid) |
| Upper/lower flammability limits | 2 – 11.5 vol % |
| Vapour pressure | 73 mm Hg (20 °C) |
| Relative vapour density | 3.04 (Air = 1, 20 °C) |
| Density | 0.902 g/cm³ (20 °C) |
| Solubility (water) | 8 g/100 ml (25 °C) |
| Partition coefficient n-octanol/water (Log Pow) | 0.73 |
| Viscosity, dynamic | 0.45 mPa·s (20 °C) |
No additional information available.
Highly flammable liquid and vapour.
Stable under normal conditions.
No dangerous reactions known under normal conditions of use.
Avoid contact with hot surfaces. No flames, no sparks. Eliminate all sources of ignition.
No additional information available.
Under normal conditions of storage and use, hazardous decomposition products should not be produced.
| Toxicological endpoint | Classification | Data |
|---|---|---|
| Acute toxicity | Not classified | LD50 oral (rabbit): 5,620 mg/kg bw LD50 dermal (rat): >18,000 mg/kg bw LC50 inhalation (rat): 1.600 mg/l/4h |
| Skin corrosion/irritation | Not classified | |
| Serious eye damage/irritation | Causes serious eye irritation | |
| Respiratory or skin sensitisation | Not classified | |
| Germ cell mutagenicity | Not classified | |
| Carcinogenicity | Not classified | |
| Reproductive toxicity | Not classified | |
| STOT — single exposure | Category 3 — Narcosis | May cause drowsiness or dizziness |
| STOT — repeated exposure | Not classified | LOAEL (oral, rat, 90d): 3,600 mg/kg bw NOAEL (oral, rat, 90d): 900 mg/kg bw |
| Aspiration hazard | Not classified |
Not classified as having endocrine disrupting properties according to REACH Article 57(f), Commission Delegated Regulation (EU) 2017/2100, Commission Regulation (EU) 2018/605, or CLP criteria as amended by EU 2024/2865 at levels of 0.1% or higher.
RTECS: AH5425000
Inhalation of high concentrations may cause: headache, drowsiness, dizziness, vomiting, narcosis, anaemia, central nervous system depression.
The product is not considered harmful to aquatic organisms nor to cause long-term adverse effects in the environment.
| Endpoint | Value | Species |
|---|---|---|
| LC50 (fish, 96h) | 230 mg/l | Pimephales promelas |
| EC50 (daphnia, 48h) | 720 mg/l | Daphnia magna |
| EC50 (algae, 72h) | 3,300 mg/l | |
| LC50 (bacteria) | 2,900 mg/l | |
| NOEC (chronic daphnia, 21d) | 2.4 mg/l | Daphnia magna |
Readily biodegradable — 100% after 28 days.
| Log Pow | 0.73 (low bioaccumulation potential) |
Low mobility.
Not classified as PBT or vPvB in accordance with REACH Annex XIII.
Not classified as having endocrine disrupting properties according to REACH Article 57(f), Commission Delegated Regulation (EU) 2017/2100, Commission Regulation (EU) 2018/605, or CLP criteria as amended by EU 2024/2865 at levels of 0.1% or higher.
No additional information available.
| Waste treatment methods | Dispose of contents/container in accordance with licensed collector's sorting instructions. |
| Packaging disposal | Dispose of contents/container to hazardous or special waste collection point, in accordance with local, regional, national and/or international regulation. |
| Additional information | Do not re-use empty containers. Flammable vapours may accumulate in the container. |
In accordance with ADR / RID / IMDG / IATA / ADN
| Transport mode | UN No. | Proper shipping name | Class | PG | Env. |
|---|---|---|---|---|---|
| ADR (road) | 1173 | ETHYL ACETATE, 3, II, (D/E) | 3 | II | No |
| IMDG (sea) | 1173 | ETHYL ACETATE, 3, II, (-4°C c.c.) | 3 | II | No |
| IATA (air) | 1173 | Ethyl acetate, 3, II | 3 | II | No |
| ADN (inland waterway) | 1173 | ETHYL ACETATE, 3, II | 3 | II | No |
| RID (rail) | 1173 | ETHYL ACETATE, 3, II | 3 | II | No |
| ADR Details | |
|---|---|
| Classification code | F1 |
| Limited quantities | 1 L |
| Excepted quantities | E2 |
| Tunnel restriction code | D/E |
| Hazard identification No. (Kemler) | 33 |
| Transport category | 2 |
| EAC code | •3YE |
Not applicable.
| Country | Regulation | Status |
|---|---|---|
| Germany | Water hazard class (WGK) | WGK 1 — Slightly hazardous to water (AwSV; ID No. 95) |
| Germany | Hazardous Incident Ordinance (12. BImSchV) | Not subject |
| Netherlands | SZW lists (carcinogenic, mutagenic, reprotoxic) | Not listed |
| Denmark | Classification remarks | Emergency management guidelines for flammable liquids must be followed. Young persons under 18 not allowed to use the product. |
No chemical safety assessment has been carried out.
| Abbreviation | Full form |
|---|---|
| ADN | European Agreement concerning the International Carriage of Dangerous Goods by Inland Waterways |
| ADR | European Agreement concerning the International Carriage of Dangerous Goods by Road |
| CAS | Chemical Abstract Service number |
| CLP | Classification, Labelling and Packaging Regulation (EC) No 1272/2008 |
| DMEL | Derived Minimal Effect Level |
| DNEL | Derived No-Effect Level |
| EC50 | Median Effective Concentration |
| ED | Endocrine Disruptor |
| IATA | International Air Transport Association |
| IMDG | International Maritime Dangerous Goods |
| LC50 | Median Lethal Concentration |
| LD50 | Median Lethal Dose |
| LOAEL | Lowest Observed Adverse Effect Level |
| NOAEL | No-Observed Adverse Effect Level |
| PBT | Persistent, Bioaccumulative, Toxic |
| PMT | Persistent, Mobile, Toxic |
| PNEC | Predicted No-Effect Concentration |
| REACH | Registration, Evaluation, Authorisation and Restriction of Chemicals (EC) No 1907/2006 |
| RID | Regulations concerning the International Carriage of Dangerous Goods by Rail |
| SDS | Safety Data Sheet |
| STOT | Specific Target Organ Toxicity |
| vPvB | Very Persistent and Very Bioaccumulative |
| vPvM | Very Persistent and Very Mobile |
| WGK | Water Hazard Class (Germany) |
| Code | Text |
|---|---|
| H225 | Highly flammable liquid and vapour. |
| H319 | Causes serious eye irritation. |
| H336 | May cause drowsiness or dizziness. |
| EUH066 | Repeated exposure may cause skin dryness or cracking. |
Disclaimer of Liability: The information in this SDS was obtained from sources which we believe are reliable. However, the information is provided without any warranty, express or implied, regarding its correctness. The conditions or methods of handling, storage, use or disposal of the product are beyond our control and may be beyond our knowledge. For this and other reasons, we do not assume responsibility and expressly disclaim liability for loss, damage or expense arising out of or in any way connected with the handling, storage, use or disposal of the product. This SDS was prepared and is to be used only for this product. If the product is used as a component in another product, this SDS information may not be applicable.
""" # ─── Generate PDF ─── OUT_DIR = '/home/bachko/msds-tds/output' os.makedirs(OUT_DIR, exist_ok=True) html_path = os.path.join(OUT_DIR, 'sds-ethyl-acetate-en.html') with open(html_path, 'w', encoding='utf-8') as f: f.write(html) print(f"HTML: {html_path}") # Pass 1: WeasyPrint pdf_path = os.path.join(OUT_DIR, 'SDS_Ethyl_Acetate_REV1_EN.pdf') buf = io.BytesIO() HTML(string=html).write_pdf(buf) buf.seek(0) # Save temp tmp_path = pdf_path + '.tmp' with open(tmp_path, 'wb') as f: f.write(buf.read()) # Pass 2: Add page numbers with pikepdf with pikepdf.Pdf.open(tmp_path) as pdf: total = len(pdf.pages) print(f"Total pages: {total}") for i, page in enumerate(pdf.pages, 1): text = f"Page {i} of {total}" mb = page.mediabox w = float(mb[2]) bottom = 48 # points from bottom stream = ( f"BT\n" f"/Helvetica 7 Tf\n" f"{w/2:.0f} {bottom} Td\n" f"0.357 0.400 0.435 rg\n" f"({text}) Tj\n" f"ET\n" ).encode('latin-1') page.contents_add(pikepdf.Stream(pdf, stream)) pdf.save(pdf_path) os.remove(tmp_path) print(f"PDF: {pdf_path} ({total} pages)")