| 804 | |
| 805 | |
| 806 | def gettext(args): |
| 807 | doc = open_file(args.input, args.password, pdf=False) |
| 808 | pagel = get_list(args.pages, doc.page_count + 1) |
| 809 | output = args.output |
| 810 | if output is None: |
| 811 | filename, _ = os.path.splitext(doc.name) |
| 812 | output = filename + ".txt" |
| 813 | with open(output, "wb") as textout: |
| 814 | flags = pymupdf.TEXT_PRESERVE_LIGATURES | pymupdf.TEXT_PRESERVE_WHITESPACE |
| 815 | if args.convert_white: |
| 816 | flags ^= pymupdf.TEXT_PRESERVE_WHITESPACE |
| 817 | if args.noligatures: |
| 818 | flags ^= pymupdf.TEXT_PRESERVE_LIGATURES |
| 819 | if args.extra_spaces: |
| 820 | flags ^= pymupdf.TEXT_INHIBIT_SPACES |
| 821 | func = { |
| 822 | "simple": page_simple, |
| 823 | "blocks": page_blocksort, |
| 824 | "layout": page_layout, |
| 825 | } |
| 826 | for pno in pagel: |
| 827 | page = doc[pno - 1] |
| 828 | func[args.mode]( |
| 829 | page, |
| 830 | textout, |
| 831 | args.grid, |
| 832 | args.fontsize, |
| 833 | args.noformfeed, |
| 834 | args.skip_empty, |
| 835 | flags=flags, |
| 836 | ) |
| 837 | |
| 838 | |
| 839 | def _internal(args): |