|
import argparse |
|
import os |
|
|
|
from marker.convert import convert_single_pdf |
|
from marker.logger import configure_logging |
|
from marker.models import load_all_models |
|
|
|
from marker.output import save_markdown |
|
|
|
configure_logging() |
|
|
|
|
|
def main(): |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument("filename", help="PDF file to parse") |
|
parser.add_argument("output", help="Output base folder path") |
|
parser.add_argument("--max_pages", type=int, default=None, help="Maximum number of pages to parse") |
|
parser.add_argument("--langs", type=str, help="Languages to use for OCR, comma separated", default=None) |
|
parser.add_argument("--batch_multiplier", type=int, default=2, help="How much to increase batch sizes") |
|
args = parser.parse_args() |
|
|
|
langs = args.langs.split(",") if args.langs else None |
|
|
|
fname = args.filename |
|
model_lst = load_all_models() |
|
full_text, images, out_meta = convert_single_pdf(fname, model_lst, max_pages=args.max_pages, langs=langs, batch_multiplier=args.batch_multiplier) |
|
|
|
fname = os.path.basename(fname) |
|
subfolder_path = save_markdown(args.output, fname, full_text, images, out_meta) |
|
|
|
print(f"Saved markdown to the {subfolder_path} folder") |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|