java Q:如何在pdf中展开文本空白?
有没有办法编辑pdf格式的内容,并根据内容的长度展开文本空白
pypdf2似乎只能合并两个pdf,而不能更改原始pdf
Itext可以根据“文本区域”属性编辑pdf,但我可以只使用pdf中文本空白的位置,直接合并文本
有人能帮我吗?非常感谢
更新4.27 我的代码是:
def createmark(marks):
width = letter[0]
height = letter[1]
markpdf = "mark.pdf"
c = canvas.Canvas(markpdf, pagesize=letter)
c.translate(0, height)
#reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('guofu', os.path.join(DataDir, 'font.ttf')))
for mark in marks:
text = str(mark["text"])
bounding = mark["boundingBoxes"][0]
leftx = bounding[0] * width
leftupy = bounding[1] * height
leftdowny = bounding[-1] * height
gap = leftdowny - leftupy
fontsize = random.uniform(gap / 3, gap / 2)
#c.setFont('guofu', fontsize)
position = random.uniform(leftupy, leftdowny + gap / 4)
#c.drawString(leftx, -leftdowny + gap / 2, text)
c.drawString(leftx, -position, text)
c.setFillAlpha(1)
c.save()
def genpdf(inpdf, markpdf, outpdf):
pdf_output = PdfFileWriter()
input_stream = open(inpdf, 'rb')
pdf_input = PdfFileReader(input_stream, strict=False)
pdf_watermark = PdfFileReader(open(markpdf, 'rb'), strict=False)
page = pdf_input.getPage(0)
page.mergePage(pdf_watermark.getPage(0))
page.compressContentStreams()
pdf_output.addPage(page)
pdf_output.write(open(outpdf, 'wb'))
如果我想使用“pypdf2”向pdf添加一些文本,我必须创建一个“mark.pdf”,其中包含我想首先添加的文本。然后我把两个pdf合并成一个
在某些形式中,我们必须填空,例如姓名、年龄等。但是如果我只是将“标记.pdf”与表单合并,我就不能改变空白的样子,也就是说,如果名称太长,文本将不在名称中。p>
我尝试使用java中的Itext来提供这个功能。但它要求文本空白在生成pdf时具有“文本区域”属性。我使用的pdf格式(由客户提供)可能没有这个属性
所以我想知道有没有一种方法可以用来改变文本空白的长度和宽度,以适应我想要添加的文本
共 (0) 个答案