Update app.py
Browse files
app.py
CHANGED
@@ -15,6 +15,7 @@ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
|
|
15 |
from reportlab.lib import colors
|
16 |
from reportlab.pdfbase import pdfmetrics
|
17 |
from reportlab.pdfbase.ttfonts import TTFont
|
|
|
18 |
from datetime import datetime
|
19 |
import pytz
|
20 |
from pypdf import PdfReader, PdfWriter
|
@@ -345,7 +346,7 @@ def create_and_link_pdfs(source_pdf="TestSource.pdf", target_pdf="TestTarget.pdf
|
|
345 |
"""Create two PDFs with numbered lists, add links and bookmarks."""
|
346 |
def create_base_pdf(filename):
|
347 |
buffer = io.BytesIO()
|
348 |
-
c = canvas.Canvas(buffer)
|
349 |
c.setFont("Helvetica", 12)
|
350 |
for i, word in enumerate(WORDS, 1):
|
351 |
y = 800 - (i * 20)
|
@@ -375,7 +376,7 @@ def create_and_link_pdfs(source_pdf="TestSource.pdf", target_pdf="TestTarget.pdf
|
|
375 |
for page in reader.pages:
|
376 |
writer.add_page(page)
|
377 |
buffer = io.BytesIO()
|
378 |
-
c = canvas.Canvas(buffer)
|
379 |
c.setFont("Helvetica", 8)
|
380 |
seven_y = 800 - (7 * 20)
|
381 |
c.drawString(90, seven_y - 5, "link")
|
@@ -385,15 +386,13 @@ def create_and_link_pdfs(source_pdf="TestSource.pdf", target_pdf="TestTarget.pdf
|
|
385 |
text_pdf = PdfReader(buffer)
|
386 |
page = writer.pages[0]
|
387 |
page.merge_page(text_pdf.pages[0])
|
388 |
-
# Create a URI action dictionary
|
389 |
uri_action = DictionaryObject({
|
390 |
NameObject("/S"): NameObject("/URI"),
|
391 |
NameObject("/URI"): TextStringObject(f"file://{os.path.abspath(target)}#page=1")
|
392 |
})
|
393 |
-
# Create the link annotation with the URI action
|
394 |
link = Link(
|
395 |
rect=(90, seven_y - 10, 150, seven_y + 10),
|
396 |
-
**{"/A": uri_action}
|
397 |
)
|
398 |
writer.add_annotation(page_number=0, annotation=link)
|
399 |
with open(source, "wb") as f:
|
|
|
15 |
from reportlab.lib import colors
|
16 |
from reportlab.pdfbase import pdfmetrics
|
17 |
from reportlab.pdfbase.ttfonts import TTFont
|
18 |
+
from reportlab.pdfgen import canvas # Ensure this import is present
|
19 |
from datetime import datetime
|
20 |
import pytz
|
21 |
from pypdf import PdfReader, PdfWriter
|
|
|
346 |
"""Create two PDFs with numbered lists, add links and bookmarks."""
|
347 |
def create_base_pdf(filename):
|
348 |
buffer = io.BytesIO()
|
349 |
+
c = canvas.Canvas(buffer) # Correct usage of canvas
|
350 |
c.setFont("Helvetica", 12)
|
351 |
for i, word in enumerate(WORDS, 1):
|
352 |
y = 800 - (i * 20)
|
|
|
376 |
for page in reader.pages:
|
377 |
writer.add_page(page)
|
378 |
buffer = io.BytesIO()
|
379 |
+
c = canvas.Canvas(buffer) # Correct usage of canvas
|
380 |
c.setFont("Helvetica", 8)
|
381 |
seven_y = 800 - (7 * 20)
|
382 |
c.drawString(90, seven_y - 5, "link")
|
|
|
386 |
text_pdf = PdfReader(buffer)
|
387 |
page = writer.pages[0]
|
388 |
page.merge_page(text_pdf.pages[0])
|
|
|
389 |
uri_action = DictionaryObject({
|
390 |
NameObject("/S"): NameObject("/URI"),
|
391 |
NameObject("/URI"): TextStringObject(f"file://{os.path.abspath(target)}#page=1")
|
392 |
})
|
|
|
393 |
link = Link(
|
394 |
rect=(90, seven_y - 10, 150, seven_y + 10),
|
395 |
+
**{"/A": uri_action}
|
396 |
)
|
397 |
writer.add_annotation(page_number=0, annotation=link)
|
398 |
with open(source, "wb") as f:
|