awacke1 commited on
Commit
02af4b4
·
verified ·
1 Parent(s): c9abb4a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -11
app.py CHANGED
@@ -20,7 +20,7 @@ from datetime import datetime
20
  import pytz
21
  from pypdf import PdfReader, PdfWriter
22
  from pypdf.annotations import Link
23
- from pypdf.generic import Fit, DictionaryObject, NameObject, TextStringObject
24
 
25
  st.set_page_config(layout="wide", initial_sidebar_state="collapsed")
26
 
@@ -386,14 +386,11 @@ def create_and_link_pdfs(source_pdf="TestSource.pdf", target_pdf="TestTarget.pdf
386
  text_pdf = PdfReader(buffer)
387
  page = writer.pages[0]
388
  page.merge_page(text_pdf.pages[0])
389
- # Create the URI action
390
- uri_action = DictionaryObject({
391
- NameObject("/S"): NameObject("/URI"),
392
- NameObject("/URI"): TextStringObject(f"file://{os.path.abspath(target)}#page=1")
393
- })
394
- # Create the link annotation and set the action
395
- link = Link(rect=(90, seven_y - 10, 150, seven_y + 10))
396
- link[NameObject("/A")] = uri_action # Set the action after initialization
397
  writer.add_annotation(page_number=0, annotation=link)
398
  with open(source, "wb") as f:
399
  writer.write(f)
@@ -408,8 +405,8 @@ def create_and_link_pdfs(source_pdf="TestSource.pdf", target_pdf="TestTarget.pdf
408
  ten_y = 800 - (10 * 20)
409
  link = Link(
410
  rect=(50, one_y - 10, 100, one_y + 10),
411
- target_page=0,
412
- target_position=[50, ten_y, 0]
413
  )
414
  writer.add_annotation(page_number=0, annotation=link)
415
  with open(pdf_file, "wb") as f:
 
20
  import pytz
21
  from pypdf import PdfReader, PdfWriter
22
  from pypdf.annotations import Link
23
+ from pypdf.generic import Fit
24
 
25
  st.set_page_config(layout="wide", initial_sidebar_state="collapsed")
26
 
 
386
  text_pdf = PdfReader(buffer)
387
  page = writer.pages[0]
388
  page.merge_page(text_pdf.pages[0])
389
+ # Use url parameter for external link
390
+ link = Link(
391
+ rect=(90, seven_y - 10, 150, seven_y + 10),
392
+ url=f"file://{os.path.abspath(target)}#page=1"
393
+ )
 
 
 
394
  writer.add_annotation(page_number=0, annotation=link)
395
  with open(source, "wb") as f:
396
  writer.write(f)
 
405
  ten_y = 800 - (10 * 20)
406
  link = Link(
407
  rect=(50, one_y - 10, 100, one_y + 10),
408
+ target_page_index=0,
409
+ fit=Fit(fit_type="/XYZ", fit_args=[50, ten_y, 0])
410
  )
411
  writer.add_annotation(page_number=0, annotation=link)
412
  with open(pdf_file, "wb") as f: