f150 / src /prepare.py
Adrian Cowham
initial commit
cbdf795
raw
history blame
9.01 kB
#!/usr/bin/env python
from PyPDF2 import PdfReader
from PyPDF2.generic import ContentStream
OFFSET = 4
TITLE_IDX = 0
START_IDX = 1
END_IDX = 2
# FOOTER_TEXT = "2023 F-150 (TFD) Canada/United States of America, enUSA, Edition date: 202206, DOM"
FOOTER_TEXT = "2023 F-150 (TFD ) Cana da/Unit ed States of Americ a, enU SA, Edition da te: 202206 , DOM"
TOC = [
("About Us - Raptor", 21 + OFFSET - 1 , 21 + OFFSET),
("Contacting Us", 22 + OFFSET - 1 , 22 + OFFSET),
("Introduction", 24 + OFFSET - 1 , 25 + OFFSET),
("Data Privacy", 29 + OFFSET - 1 , 32 + OFFSET),
("At a Glance - Raptor", 33 + OFFSET - 1 , 33 + OFFSET),
("Visual Search", 35 + OFFSET - 1 , 49 + OFFSET),
("Child Safety", 50 + OFFSET - 1 , 63 + OFFSET),
("Seatbelts", 64 + OFFSET - 1 , 71 + OFFSET),
("Personal Safety System", 72 + OFFSET - 1 , 72 + OFFSET),
("Airbags", 73 + OFFSET - 1 , 86 + OFFSET),
("Pedestrian Alert System - Hybrid Electric Vehicle (HEV)", 87 + OFFSET - 1 , 87 + OFFSET),
("911 Assist", 88 + OFFSET - 1 , 89 + OFFSET),
("Keys and Remote Controls", 90 + OFFSET - 1 , 98 + OFFSET),
("MyKey - Vehicles With: MyKey", 99 + OFFSET - 1 , 102 + OFFSET),
("Doors and Locks", 104 + OFFSET - 1 , 106 + OFFSET),
("Keyless Entry", 108 + OFFSET - 1 , 109 + OFFSET),
("Keyless Entry Keypad", 110 + OFFSET - 1 , 111 + OFFSET),
("Easy Entry and Exit", 112 + OFFSET - 1 , 112 + OFFSET),
("Tailgate - Vehicles With: Manual Tailgate", 113 + OFFSET - 1 , 117 + OFFSET),
("Tailgate - Vehicles With: Power Tailgate", 119 + OFFSET - 1 , 125 + OFFSET),
("Tailgate - Vehicles With: Remote Release Tailgate", 127 + OFFSET - 1 , 132 + OFFSET),
("Security", 134 + OFFSET - 1 , 136 + OFFSET),
("Power Running Boards", 138 + OFFSET - 1 , 139 + OFFSET),
("Steering Wheel", 140 + OFFSET - 1 , 141 + OFFSET),
("Adjustable Pedals", 142 + OFFSET - 1 , 142 + OFFSET),
("Wipers and Washers", 143 + OFFSET - 1 , 145 + OFFSET),
("Exterior Lighting", 147 + OFFSET - 1 , 157 + OFFSET),
("Interior Lighting", 159 + OFFSET - 1 , 160 + OFFSET),
("Windows", 161 + OFFSET - 1 , 162 + OFFSET),
("Interior Mirror", 163 + OFFSET - 1 , 163 + OFFSET),
("Exterior Mirrors", 164 + OFFSET - 1 , 165 + OFFSET),
("Moonroof", 166 + OFFSET - 1 , 167 + OFFSET),
("Instrument Cluster", 168 + OFFSET - 1 , 173 + OFFSET),
("Instrument Cluster Display", 175 + OFFSET - 1 , 178 + OFFSET),
("Personalized Settings", 179 + OFFSET - 1 , 179 + OFFSET),
("Trip Computer", 180 + OFFSET - 1 , 180 + OFFSET),
("Remote Start", 181 + OFFSET - 1 , 182 + OFFSET),
("Climate Control - Vehicles With: Automatic Temperature Control", 184 + OFFSET - 1 , 187 + OFFSET),
("Climate Control - Vehicles With: Manual Climate Control", 189 + OFFSET - 1 , 191 + OFFSET),
("Interior Air Quality", 192 + OFFSET - 1 , 192 + OFFSET),
("Front Seats", 193 + OFFSET - 1 , 200 + OFFSET),
("Rear Seats - Crew Cab", 202 + OFFSET - 1 , 203 + OFFSET),
("Rear Occupant Alert System", 205 + OFFSET - 1 , 206 + OFFSET),
("Memory Function", 207 + OFFSET - 1 , 207 + OFFSET),
("Garage Door Openeer", 208 + OFFSET - 1 , 211 + OFFSET),
("USB Ports", 212 + OFFSET - 1 , 213 + OFFSET),
("Power Outlet - Vehicles With: 120v Power Outlet", 214 + OFFSET - 1 , 215 + OFFSET),
("Power Outlet - Vehicles With: 12v Power Outlet", 216 + OFFSET - 1 , 216 + OFFSET),
("Onboard Generator", 217 + OFFSET - 1 , 223 + OFFSET),
("Center Console Work Surface", 225 + OFFSET - 1 , 227 + OFFSET),
("Wireless Accessory Charging", 228 + OFFSET - 1 , 228 + OFFSET),
("Storage", 229 + OFFSET - 1 , 232 + OFFSET),
("Starting and Stopping the Engine", 233 + OFFSET - 1 , 240 + OFFSET),
("Hybrid Electric Vehicle Information - Hybrid Electric Vehicle (HEV)", 244 + OFFSET - 1 , 247 + OFFSET),
("Auto - Start - Stop", 248 + OFFSET - 1 , 249 + OFFSET),
("Fuel and Refueling", 251 + OFFSET - 1 , 260 + OFFSET),
("Cataytic Converter", 262 + OFFSET - 1 , 262 + OFFSET),
("High Voltage Battery - Hybrid Electric Vehicle (HEV)", 263 + OFFSET - 1 , 263 + OFFSET),
("Automatic Transmission", 264 + OFFSET - 1 , 273 + OFFSET),
("Four-Wheel Drive", 274 + OFFSET - 1 , 280 + OFFSET),
("Electronic Locking Differential", 284 + OFFSET - 1 , 290 + OFFSET),
("Brakes", 291 + OFFSET - 1 , 292 + OFFSET),
("Electric Parking Brake", 294 + OFFSET - 1 , 295 + OFFSET),
("Reverse Braking Assist", 297 + OFFSET - 1 , 299 + OFFSET),
("Cross Traffic Braking", 301 + OFFSET - 1 , 302 + OFFSET),
("Hill Start Assist", 304 + OFFSET - 1 , 304 + OFFSET),
("Auto Hold", 305 + OFFSET - 1 , 305 + OFFSET),
("Traction Control", 307 + OFFSET - 1 , 308 + OFFSET),
("Stability Control", 309 + OFFSET - 1 , 311 + OFFSET),
("Trail Control - Raptor-Tremor", 312 + OFFSET - 1 , 315 + OFFSET),
("Trail Turn Assist", 316 + OFFSET - 1 , 317 + OFFSET),
("Hill Descent Control", 318 + OFFSET - 1 , 319 + OFFSET),
("Steering", 320 + OFFSET - 1 , 321 + OFFSET),
("Parking Aids", 323 + OFFSET - 1 , 327 + OFFSET),
("Rear View Camera", 329 + OFFSET - 1 , 330 + OFFSET),
("360 Degree Camera", 332 + OFFSET - 1 , 334 + OFFSET),
("Active Park Assist", 336 + OFFSET - 1 , 338 + OFFSET),
("Cruise Control", 340 + OFFSET - 1 , 341 + OFFSET),
("Adaptive Cruise Control", 342 + OFFSET - 1 , 354 + OFFSET),
("BlueCruise", 356 + OFFSET - 1 , 360 + OFFSET),
("Drive Mode Control", 362 + OFFSET - 1 , 373 + OFFSET),
("Lane Keeping System", 375 + OFFSET - 1 , 379 + OFFSET),
("Blind Spot Information System", 382 + OFFSET - 1 , 386 + OFFSET),
("Cross Traffic Alert", 387 + OFFSET - 1 , 389 + OFFSET),
("Pre-Collision Assist", 390 + OFFSET - 1 , 397 + OFFSET),
("Driver Alert", 399 + OFFSET - 1 , 400 + OFFSET),
("Speed Sign Recognition", 401 + OFFSET - 1 , 402 + OFFSET),
("Load Carrying", 404 + OFFSET - 1 , 407 + OFFSET),
("Pickup Bed", 409 + OFFSET - 1 , 411 + OFFSET),
("Connecting a Trailer", 414 + OFFSET - 1 , 417 + OFFSET),
("Towing a Trailer", 418 + OFFSET - 1 , 423 + OFFSET),
("Integrated Trailer Brake Controller", 425 + OFFSET - 1 , 428 + OFFSET),
("Trailer Sway Control", 430 + OFFSET - 1 , 430 + OFFSET),
("Trailer Hitching Assistance", 431 + OFFSET - 1 , 433 + OFFSET),
("Smart Hitch", 435 + OFFSET - 1 , 437 + OFFSET),
("Onboard Scales", 437 + OFFSET - 1 , 437 + OFFSET),
("Trailer Backup Assistance", 439 + OFFSET - 1 , 447 + OFFSET),
("Trailer Reverse Guidance", 454 + OFFSET - 1 , 460 + OFFSET),
("Driving Hints", 466 + OFFSET - 1 , 473 + OFFSET),
("Snow Plowing - Vehicles Without: Snow Plow Mode", 475 + OFFSET - 1 , 475 + OFFSET),
("Snow Plowing - Vehicles With: Snow Plow Mode", 476 + OFFSET - 1 , 477 + OFFSET),
("Crash and Breakdown Information", 478 + OFFSET - 1 , 484 + OFFSET),
("Towing Your Vehicle", 485 + OFFSET - 1 , 487 + OFFSET),
("Fuses", 488 + OFFSET - 1 , 497 + OFFSET),
("Maintenance", 498 + OFFSET - 1 , 528 + OFFSET),
("Vehicle Care", 529 + OFFSET - 1 , 534 + OFFSET),
("Storing Your Vehicle", 535 + OFFSET - 1 , 536 + OFFSET),
("Wheel and Tire Information", 537 + OFFSET - 1 , 547 + OFFSET),
("Tire Care", 550 + OFFSET - 1 , 552 + OFFSET),
("Tire Pressue Monitoring System", 554 + OFFSET - 1 , 559 + OFFSET),
("Changing a Road Wheel", 561 + OFFSET - 1 , 576 + OFFSET),
("Capacities and Specifications", 578 + OFFSET - 1 , 619 + OFFSET),
("Vehicle Identification", 620 + OFFSET - 1 , 620 + OFFSET),
("Connected Vehicle", 621 + OFFSET - 1 , 622 + OFFSET),
("Vehicle Wi-Fi Hotspot", 624 + OFFSET - 1 , 625 + OFFSET),
("Audio System", 626 + OFFSET - 1 , 633 + OFFSET),
("Center Display Overview", 637 + OFFSET - 1 , 639 + OFFSET),
("Voice Interaction", 640 + OFFSET - 1 , 640 + OFFSET),
("Alexa Built-In", 642 + OFFSET - 1 , 642 + OFFSET),
("Phone", 644 + OFFSET - 1 , 648 + OFFSET),
("Bluetooth", 649 + OFFSET - 1 , 649 + OFFSET),
("Apps", 650 + OFFSET - 1 , 651 + OFFSET),
("Personal Profiles", 652 + OFFSET - 1 , 653 + OFFSET),
("Navigation", 654 + OFFSET - 1 , 656 + OFFSET),
("Vehicle Software Updates", 657 + OFFSET - 1 , 658 + OFFSET),
("Vehicle System Reset", 659 + OFFSET - 1 , 659 + OFFSET),
("Accessories", 660 + OFFSET - 1 , 660 + OFFSET),
("Auxiliary Switches", 661 + OFFSET - 1 , 662 + OFFSET),
("Warranty Terms and Conditions - Raptor", 664 + OFFSET - 1 , 664 + OFFSET),
("Ford Protect", 665 + OFFSET - 1 , 665 + OFFSET),
("Scheduled Maintenance", 667 + OFFSET - 1 , 676 + OFFSET),
("Decommissioning the Vehicle - Police Responder", 680 + OFFSET - 1 , 680 + OFFSET),
("Customer Information", 681 + OFFSET - 1 , 749 + OFFSET),
("Electromagnetic Compatibility", 751 + OFFSET - 1 , 751 + OFFSET),
]
reader = PdfReader("docs/2023_Ford_F-150_OM_PL3J_19A321_AA_EN_V1.pdf")
for chapter in TOC:
pages = reader.pages[chapter[START_IDX]:chapter[END_IDX]]
title = chapter[TITLE_IDX]
print(title)
content = "\n\n".join([p.extract_text() for p in pages])
content = f"{title}\n\n{content}"
content = content.replace(FOOTER_TEXT, "")
open(f"docs/chapters/{chapter[TITLE_IDX]}.txt", "w").write(content)