( border, doc, annot_obj)
| 18659 | |
| 18660 | |
| 18661 | def JM_annot_set_border( border, doc, annot_obj): |
| 18662 | assert isinstance(border, dict) |
| 18663 | obj = None |
| 18664 | dashlen = 0 |
| 18665 | nwidth = border.get( dictkey_width) # new width |
| 18666 | ndashes = border.get( dictkey_dashes) # new dashes |
| 18667 | nstyle = border.get( dictkey_style) # new style |
| 18668 | nclouds = border.get( 'clouds', -1) # new clouds value |
| 18669 | |
| 18670 | # get old border properties |
| 18671 | oborder = JM_annot_border( annot_obj) |
| 18672 | |
| 18673 | # delete border-related entries |
| 18674 | mupdf.pdf_dict_del( annot_obj, PDF_NAME('BS')) |
| 18675 | mupdf.pdf_dict_del( annot_obj, PDF_NAME('BE')) |
| 18676 | mupdf.pdf_dict_del( annot_obj, PDF_NAME('Border')) |
| 18677 | |
| 18678 | # populate border items: keep old values for any omitted new ones |
| 18679 | if nwidth < 0: |
| 18680 | nwidth = oborder.get( dictkey_width) # no new width: keep current |
| 18681 | if ndashes is None: |
| 18682 | ndashes = oborder.get( dictkey_dashes) # no new dashes: keep old |
| 18683 | if nstyle is None: |
| 18684 | nstyle = oborder.get( dictkey_style) # no new style: keep old |
| 18685 | if nclouds < 0: |
| 18686 | nclouds = oborder.get( "clouds", -1) # no new clouds: keep old |
| 18687 | |
| 18688 | if isinstance( ndashes, tuple) and len( ndashes) > 0: |
| 18689 | dashlen = len( ndashes) |
| 18690 | darr = mupdf.pdf_new_array( doc, dashlen) |
| 18691 | for d in ndashes: |
| 18692 | mupdf.pdf_array_push_int( darr, d) |
| 18693 | mupdf.pdf_dict_putl( annot_obj, darr, PDF_NAME('BS'), PDF_NAME('D')) |
| 18694 | |
| 18695 | mupdf.pdf_dict_putl( |
| 18696 | annot_obj, |
| 18697 | mupdf.pdf_new_real( nwidth), |
| 18698 | PDF_NAME('BS'), |
| 18699 | PDF_NAME('W'), |
| 18700 | ) |
| 18701 | |
| 18702 | if dashlen == 0: |
| 18703 | obj = JM_get_border_style( nstyle) |
| 18704 | else: |
| 18705 | obj = PDF_NAME('D') |
| 18706 | mupdf.pdf_dict_putl( annot_obj, obj, PDF_NAME('BS'), PDF_NAME('S')) |
| 18707 | |
| 18708 | if nclouds > 0: |
| 18709 | mupdf.pdf_dict_put_dict( annot_obj, PDF_NAME('BE'), 2) |
| 18710 | obj = mupdf.pdf_dict_get( annot_obj, PDF_NAME('BE')) |
| 18711 | mupdf.pdf_dict_put( obj, PDF_NAME('S'), PDF_NAME('C')) |
| 18712 | mupdf.pdf_dict_put_int( obj, PDF_NAME('I'), nclouds) |
| 18713 | |
| 18714 | |
| 18715 | def make_escape(ch): |
no test coverage detected
searching dependent graphs…