-
each time i use reload_page i have : i certainly do somthing wrong ! in with case reload_page assertion is fired? thank's in advance for help |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 1 reply
-
Please upload the document you're using and your Python code. Otherwise it's not possible to know what's going wrong. |
Beta Was this translation helpful? Give feedback.
-
just simple code as exemple on my problem : when i change somes properties on annotations in page , after that reload_page (last one) crash ! thank's in advance for explainatiçon on rugth use ! Patrice !/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from pymupdf.utils import getColor
from pymupdf import open as fitz_open
from pymupdf import mupdf
import json
import io
import pymupdf
def try_reload(doc,page):
pp=page
return doc.reload_page(page)
#return doc[page.number]
def create_my_annot_text(offset):
annot=page.add_text_annot(pymupdf.Point(page.rect.width - 75+offset, 36+offset),
text="Testde text_annot",icon="Tag")
annot.set_colors(stroke=(1.0,
0.8431372549019608,
0.8431372549019608))
annot.update()
r=annot.rect
print("annot base rect:", r,"x0:",r.x0,"y0:",r.y0)
rr=pymupdf.Rect(r.x0-400,r.y0,r.x0-400+6,r.y0+6)
annot.set_rect(rr)
print("annot new rect:", rr)
annot.set_info({'content': "text text"})
annot.update()
annot.set_rect(rr)
rrr=annot.rect
print("annot after set_info rect:", rrr)
return r
opacity = 0.3 # all annotation use this opacity
tcol = (0, 0, 1) # text color
gold = (1, 1, 0) # highlight color
bg_color = "white"
background = getColor(bg_color) # background color
fname = "hebo" # Helvetica Bold
fsize = 12 # generous font size
thisdir = lambda f: os.path.join(os.path.dirname(__file__), f)
#### "create or udpate file indexed"
filename="test_text_annot.pdf"
try:
ftoto=fitz_open(thisdir(filename))
for p in len(ftoto):
ftoto.delepage(p)
except:
ftoto= fitz_open()
page=ftoto.new_page()
page.insert_text(pymupdf.Point(10,36), "word0 word1 word2 word3 word4 word5 word6 word7 word8 word9 word10",
fontsize=fsize,
fontname=fname,
color=tcol,
fill=getColor("lightblue"),
render_mode=0,
border_width=1,
encoding=pymupdf.TEXT_ENCODING_LATIN,
rotate=0,
morph=None,
overlay=True)
r=create_my_annot_text(0)
page = try_reload(ftoto,page)
create_my_annot_text(30)
pannot=page.add_polygon_annot([pymupdf.Point(r.x0-200,r.y0),
pymupdf.Point(r.x0,r.y0),
pymupdf.Point(r.x0,r.y0+200),
pymupdf.Point(r.x0-200,r.y0+200),
pymupdf.Point(r.x0-200,r.y0)])
pannot.set_colors(stroke=getColor('red'),
fill=getColor('lightblue'))
pannot.set_info({'subject':"toto"})
pannot.set_border(5,style="P")
pannot.set_opacity(1.0)
pannot.update()
#rect=pannot.rect
#pannot.set_rect(pymupdf.Rect(rect.x0,rect.y0,rect.x0+6,rect.y0+6))
def get_pannots(p):
a = p.first_annot
res= []
while a is not None:
tmp=a.info
if 'subject' in tmp:
if "toto"==tmp['subject']:
if (a.type[0]==mupdf.PDF_ANNOT_POLYGON ):
#print("findPolyAnnotationsInPage",tmp['id'])
res.insert(-1,a)
a=a.next
return res
pannots=get_pannots(page)
for p in pannots:
p.set_colors(stroke=getColor('blue'),
fill=getColor('red'))
p.update()
#### ------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Crash here!!!
page= ftoto.reload_page(page)
filename="./test.pdf"
ftoto.save(thisdir(filename), garbage=3, deflate=True)
ftoto.close() |
Beta Was this translation helpful? Give feedback.
-
I'm glad you've got thnig working. But could you still upload test_text_annot.pdf to this issue so i can have a look at what was going wrong? |
Beta Was this translation helpful? Give feedback.
if i change get_pannots defintion to :
No errors ! !