信捷PLCSkill
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

30 рядки
994 B

  1. import pathlib
  2. import sys
  3. import pdfplumber
  4. def main() -> None:
  5. if len(sys.argv) != 5:
  6. raise SystemExit("usage: extract_pdf_pages.py <pdf-path> <start-page> <end-page> <output-md>")
  7. pdf_path = pathlib.Path(sys.argv[1])
  8. start = int(sys.argv[2])
  9. end = int(sys.argv[3])
  10. output = pathlib.Path(sys.argv[4])
  11. output.parent.mkdir(parents=True, exist_ok=True)
  12. chunks = [f"# Extracted PDF Pages\n\nSource: `{pdf_path}`\n\nPages: {start}-{end}\n"]
  13. with pdfplumber.open(str(pdf_path)) as pdf:
  14. for page_number in range(start, end + 1):
  15. page = pdf.pages[page_number - 1]
  16. text = page.extract_text(x_tolerance=1, y_tolerance=3) or ""
  17. chunks.append(f"\n\n## PDF Page {page_number}\n\n{text.strip()}\n")
  18. output.write_text("\n".join(chunks), encoding="utf-8")
  19. print(f"wrote {output}")
  20. if __name__ == "__main__":
  21. if hasattr(sys.stdout, "reconfigure"):
  22. sys.stdout.reconfigure(encoding="utf-8")
  23. main()