Spaces:
Runtime error
Runtime error
File size: 9,013 Bytes
cbdf795 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
#!/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) |