Skip to content

Commit 0a66539

Browse files
committed
fixed sys.path errors and added hyperlink adder and all tests pass
1 parent e782363 commit 0a66539

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

pdf_hyperlink_adder.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,12 @@ def add_hyperlinks_and_styling(self, doc: fitz.Document, word_instances: List[Tu
9696
page = doc[page_num]
9797

9898
# Add hyperlink annotation
99-
link_annot = page.add_link_annot(bbox, uri=link)
99+
link_annot = page.insert_link({"kind": fitz.LINK_URI, "uri": link, "from": bbox})
100100

101101
# Add tooltip (using annotation title)
102-
link_annot.set_info(title=f"Click to visit: {word}")
102+
# Note: PyMuPDF doesn't support tooltips directly, but we can add a text annotation
103+
tooltip_rect = fitz.Rect(bbox.x0, bbox.y0 - 20, bbox.x1, bbox.y0)
104+
page.add_text_annot(tooltip_rect.tl, f"Click to visit: {word}")
103105

104106
# Add visual styling - blue underline
105107
# Note: PyMuPDF doesn't directly modify text color, but we can add visual indicators
@@ -170,7 +172,7 @@ def create_sample_word_list(filename: str = "word_list.csv") -> None:
170172
print(f"📝 Created sample word list: {filename}")
171173

172174
def main():
173-
if len(sys.argv) != 4:
175+
if len(sys.argv) < 2:
174176
print("Usage: python pdf_hyperlink_adder.py input.pdf word_list.csv output.pdf")
175177
print("\nExample:")
176178
print(" python pdf_hyperlink_adder.py document.pdf word_list.csv document_with_links.pdf")
@@ -182,6 +184,14 @@ def main():
182184
create_sample_word_list()
183185
return
184186

187+
if len(sys.argv) != 4:
188+
print("Usage: python pdf_hyperlink_adder.py input.pdf word_list.csv output.pdf")
189+
print("\nExample:")
190+
print(" python pdf_hyperlink_adder.py document.pdf word_list.csv document_with_links.pdf")
191+
print("\nTo create a sample word list:")
192+
print(" python pdf_hyperlink_adder.py --create-sample")
193+
return
194+
185195
input_pdf = sys.argv[1]
186196
word_list_file = sys.argv[2]
187197
output_pdf = sys.argv[3]

0 commit comments

Comments
 (0)