#python-3.x #string #pdf #qr-code #reportlab
Вопрос:
Я пытаюсь извлечь некоторую информацию из PDF-файла, затем создать qr-код и отобразить его в том же pdf-файле с некоторым текстом под этим qr-кодом, проблема в том, что я не смог поместить текст только под qr-кодом b, потому что размер блока не уникален для размера страницы, размера qr-кода и ширины текста.
from reportlab.pdfgen.canvas import Canvas
from reportlab_qrcode import QRCodeImage
from reportlab.pdfbase.pdfmetrics import stringWidth
from PyPDF2 import PdfFileWriter, PdfFileReader
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import mm
from reportlab.rl_config import defaultPageSize
### Paramètres ##########
x = 180.0
y = 600.0
size = 10
font_size = 7
text_to_be_centralized = 'Some text'
can = Canvas('multi_pages.pdf')
qr2 = QRCodeImage('Some information from original PDF', size=size * mm, fill_color=(1, 0, 0))
qr2.drawOn(can, x 28.34, y 28.34)
can.setFont("Times-Roman", font_size)
can.drawString(0, y-7, text_to_be_centralized)
string_width = can.stringWidth(text_to_be_centralized)
print('defaultPageSize : ', defaultPageSize)
print('string_width : ', string_width)
Вывод страницы и строки размера :
page = (595.275, 841.8897)
string_width = 1197....
QR_code_size = 10*10*mm
Между этими размерами нет никакой связи, я попытался ввести текст с тем же размером моей страницы и напечатать string_width, но результат был 1200.
Комментарии:
1. @KJ проблема в том, что у них нет одинакового размера единицы измерения
2. это не работает для меня, потому что я пытался и пытался, и та же проблема, я думаю, что мне нужно определить размер единицы измерения для каждой вещи (страница, qr-код, текст), но я не знал, как это сделать.
3. Вы примерно в миллиметре и общаетесь по существу, но нам нужен размер страницы по существу.