Add File
This commit is contained in:
63
src/landppt/services/pdf_to_pptx_worker.py
Normal file
63
src/landppt/services/pdf_to_pptx_worker.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""
|
||||
Worker entrypoint to run PDF->PPTX conversion in a separate process.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from .pdf_to_pptx_converter import PDFToPPTXConverter
|
||||
|
||||
|
||||
def configure_logging(level: int) -> None:
|
||||
"""Initialise basic logging for the worker."""
|
||||
logging.basicConfig(
|
||||
level=level,
|
||||
format="%(levelname)s:%(name)s:%(message)s"
|
||||
)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
"""CLI entry point."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Convert PDF to PPTX using Apryse SDK."
|
||||
)
|
||||
parser.add_argument("--input", required=True, help="Path to the source PDF file.")
|
||||
parser.add_argument("--output", help="Path for the output PPTX file.")
|
||||
parser.add_argument(
|
||||
"--log-level",
|
||||
default="INFO",
|
||||
help="Logging level (default: INFO)."
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
log_level = getattr(logging, args.log_level.upper(), logging.INFO)
|
||||
configure_logging(log_level)
|
||||
|
||||
pdf_path = Path(args.input).expanduser().resolve()
|
||||
if not pdf_path.exists():
|
||||
print(f"Input PDF not found: {pdf_path}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if args.output:
|
||||
output_path = Path(args.output).expanduser()
|
||||
if not output_path.is_absolute():
|
||||
output_path = output_path.resolve()
|
||||
else:
|
||||
output_path = pdf_path.with_suffix(".pptx")
|
||||
|
||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
converter = PDFToPPTXConverter()
|
||||
success, result = converter.convert_pdf_to_pptx(str(pdf_path), str(output_path))
|
||||
if success:
|
||||
print(result)
|
||||
return 0
|
||||
|
||||
print(result, file=sys.stderr)
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user