Store XML document level metadata.
(self, metadata)
| 7424 | return doc._update_toc_item(xref, action=action[2:], title=title) |
| 7425 | |
| 7426 | def set_xml_metadata(self, metadata): |
| 7427 | """Store XML document level metadata.""" |
| 7428 | if self.is_closed or self.is_encrypted: |
| 7429 | raise ValueError("document closed or encrypted") |
| 7430 | pdf = _as_pdf_document(self) |
| 7431 | root = mupdf.pdf_dict_get( mupdf.pdf_trailer( pdf), PDF_NAME('Root')) |
| 7432 | if not root.m_internal: |
| 7433 | RAISEPY( MSG_BAD_PDFROOT, JM_Exc_FileDataError) |
| 7434 | res = mupdf.fz_new_buffer_from_copied_data( metadata.encode('utf-8')) |
| 7435 | xml = mupdf.pdf_dict_get( root, PDF_NAME('Metadata')) |
| 7436 | if xml.m_internal: |
| 7437 | JM_update_stream( pdf, xml, res, 0) |
| 7438 | else: |
| 7439 | xml = mupdf.pdf_add_stream( pdf, res, mupdf.PdfObj(), 0) |
| 7440 | mupdf.pdf_dict_put( xml, PDF_NAME('Type'), PDF_NAME('Metadata')) |
| 7441 | mupdf.pdf_dict_put( xml, PDF_NAME('Subtype'), PDF_NAME('XML')) |
| 7442 | mupdf.pdf_dict_put( root, PDF_NAME('Metadata'), xml) |
| 7443 | |
| 7444 | def subset_fonts(doc: 'Document', verbose: bool = False, fallback: bool = False) -> OptInt: |
| 7445 | """Build font subsets in a PDF. |