(args)
| 155 | |
| 156 | |
| 157 | def show(args): |
| 158 | doc = open_file(args.input, args.password, True) |
| 159 | size = os.path.getsize(args.input) / 1024 |
| 160 | flag = "KB" |
| 161 | if size > 1000: |
| 162 | size /= 1024 |
| 163 | flag = "MB" |
| 164 | size = round(size, 1) |
| 165 | meta = doc.metadata # pylint: disable=no-member |
| 166 | pymupdf.message( |
| 167 | "'%s', pages: %i, objects: %i, %g %s, %s, encryption: %s" |
| 168 | % ( |
| 169 | args.input, |
| 170 | doc.page_count, |
| 171 | doc.xref_length() - 1, |
| 172 | size, |
| 173 | flag, |
| 174 | meta["format"], |
| 175 | meta["encryption"], |
| 176 | ) |
| 177 | ) |
| 178 | n = doc.is_form_pdf |
| 179 | if n > 0: |
| 180 | s = doc.get_sigflags() |
| 181 | sign_str = "" |
| 182 | if s != 3: |
| 183 | sign_str = "not " |
| 184 | pymupdf.message(f"document contains {n} root form fields and is {sign_str}signed") |
| 185 | n = doc.embfile_count() |
| 186 | if n > 0: |
| 187 | pymupdf.message(f"document contains {n:d} embedded files") |
| 188 | pymupdf.message() |
| 189 | if args.catalog: |
| 190 | pymupdf.message(mycenter("PDF catalog")) |
| 191 | xref = doc.pdf_catalog() |
| 192 | print_xref(doc, xref) |
| 193 | pymupdf.message() |
| 194 | if args.metadata: |
| 195 | pymupdf.message(mycenter("PDF metadata")) |
| 196 | print_dict(doc.metadata) # pylint: disable=no-member |
| 197 | pymupdf.message() |
| 198 | if args.xrefs: |
| 199 | pymupdf.message(mycenter("object information")) |
| 200 | xrefl = get_list(args.xrefs, doc.xref_length(), what="xref") |
| 201 | for xref in xrefl: |
| 202 | print_xref(doc, xref) |
| 203 | pymupdf.message() |
| 204 | if args.pages: |
| 205 | pymupdf.message(mycenter("page information")) |
| 206 | pagel = get_list(args.pages, doc.page_count + 1) |
| 207 | for pno in pagel: |
| 208 | n = pno - 1 |
| 209 | xref = doc.page_xref(n) |
| 210 | pymupdf.message(f"Page {pno:d}:") |
| 211 | print_xref(doc, xref) |
| 212 | pymupdf.message() |
| 213 | if args.trailer: |
| 214 | pymupdf.message(mycenter("PDF trailer")) |
nothing calls this directly
no test coverage detected
searching dependent graphs…