我想保存pdf文件这样有什么问题吗?一直报错


import requests
import os
import PyPDF2

url = 'https://hunan.zcygov.cn/announcement/lobby/queryPage'

cookies = {
    'districtCode': '439900',
    'districtName': '%E6%B9%96%E5%8D%97%E7%9C%81%E6%9C%AC%E7%BA%A7',
    '_zcy_log_client_uuid': 'd62e0b10-c003-11ed-804c-31bcc0f7c84f',
    'districtType': '010100',
    'SESSION': 'ZTllYTEyNGYtMTYxNy00NzgyLThiOGEtMTI3MzE4OGQxMzNk',
    'acw_tc': 'ac11000116786001487322984e010231f4d624d4bfa9b55baf5618001863ae',
    'ssxmod_itna2': 'QqjxcD2DnDgDBAiDODzPEY4BKvropK8C7AKniD8dPxDIND/Q8rDFE7A9iwowGrqQD67ur=H08auY4eoLEBAmh9f9SEbeqz8PMrv3u3rxc8Oxk/kguzvn9o2n=53rtlfbHvNlrRlpCaCj25b3ayDKiH=QAIicx7z2xob2obm9C+83=itUOAx51a18pH1GSKIfOqk2P5peWwi0t54Q8AKTxfLHrBW4fE16=Ps+lIHPs0=Y7me=6au2f2jxrj+epqGqeYjtz8G=Pkqhbat4EiWUokjcKoyOCW+tK1=W5MAyPkvofmltDw=RTd0AtU8dDnKcddKQ==udMBoU87LkCZf=n07lMzVk+ARzf3ssWY183DWw5m+xMm4jmd8wrj=khNQ7w+E=/o=uCDK2CcAOobx8YFG+Qt7vi3r8Yw18dk0zQ4oUYF1Av+GHEhQ42xelCnkYQiHD6rUDG37mqOf+njer4MlqwwYGTm8WYu71AuHKGGdM6bGregW8YPD7Q6xnFmY6rXFAeNGEHmnePc=7wKyTqiGLDUoLwYWq4iD7m74GY1mo4ApYLeG8m1ep17DKeMelNkj81AhABG6mBODL10ARK4DjKDeLP4D=',
    'ssxmod_itna': 'YuiQBKGK7I8GCzDXbPOx7uxGqKDwH90R22cPDsPDcYxA5D8D6DQeGTbRokzbqzqFgOuxW4HCg0wxfCBxcwiA9joxfPLW6DwNoD84i7DKqibDCqD1D3qDkHB4YYkDt4DTD34DYDixtDfYdNVWTQ7QqGy7MiDtqGnWqGgRMQ2D0PD7oNBl4D+RqDEDqDRWMiuRqDADiUqukPhl0LlDBoDGT=ujdXMQuruWdTk2ayefjDDbxpgtmr9WkbujmXV4C04rWr5we8dNF+Pz4CoSOG=mYL487w5b0w6bB+a3YhezZh=i8Dp/OmPzGddnqx3D',
    'acw_sc__v2': '640d67e290d94d66b9e64b5d6865a3eccfe41264',
}

headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json;charset=UTF-8',
    # 'Cookie': 'districtCode=439900; districtName=%E6%B9%96%E5%8D%97%E7%9C%81%E6%9C%AC%E7%BA%A7; _zcy_log_client_uuid=d62e0b10-c003-11ed-804c-31bcc0f7c84f; districtType=010100; SESSION=ZTllYTEyNGYtMTYxNy00NzgyLThiOGEtMTI3MzE4OGQxMzNk; acw_tc=ac11000116786001487322984e010231f4d624d4bfa9b55baf5618001863ae; ssxmod_itna2=QqjxcD2DnDgDBAiDODzPEY4BKvropK8C7AKniD8dPxDIND/Q8rDFE7A9iwowGrqQD67ur=H08auY4eoLEBAmh9f9SEbeqz8PMrv3u3rxc8Oxk/kguzvn9o2n=53rtlfbHvNlrRlpCaCj25b3ayDKiH=QAIicx7z2xob2obm9C+83=itUOAx51a18pH1GSKIfOqk2P5peWwi0t54Q8AKTxfLHrBW4fE16=Ps+lIHPs0=Y7me=6au2f2jxrj+epqGqeYjtz8G=Pkqhbat4EiWUokjcKoyOCW+tK1=W5MAyPkvofmltDw=RTd0AtU8dDnKcddKQ==udMBoU87LkCZf=n07lMzVk+ARzf3ssWY183DWw5m+xMm4jmd8wrj=khNQ7w+E=/o=uCDK2CcAOobx8YFG+Qt7vi3r8Yw18dk0zQ4oUYF1Av+GHEhQ42xelCnkYQiHD6rUDG37mqOf+njer4MlqwwYGTm8WYu71AuHKGGdM6bGregW8YPD7Q6xnFmY6rXFAeNGEHmnePc=7wKyTqiGLDUoLwYWq4iD7m74GY1mo4ApYLeG8m1ep17DKeMelNkj81AhABG6mBODL10ARK4DjKDeLP4D=; ssxmod_itna=YuiQBKGK7I8GCzDXbPOx7uxGqKDwH90R22cPDsPDcYxA5D8D6DQeGTbRokzbqzqFgOuxW4HCg0wxfCBxcwiA9joxfPLW6DwNoD84i7DKqibDCqD1D3qDkHB4YYkDt4DTD34DYDixtDfYdNVWTQ7QqGy7MiDtqGnWqGgRMQ2D0PD7oNBl4D+RqDEDqDRWMiuRqDADiUqukPhl0LlDBoDGT=ujdXMQuruWdTk2ayefjDDbxpgtmr9WkbujmXV4C04rWr5we8dNF+Pz4CoSOG=mYL487w5b0w6bB+a3YhezZh=i8Dp/OmPzGddnqx3D; acw_sc__v2=640d67e290d94d66b9e64b5d6865a3eccfe41264',
    'Origin': 'https://hunan.zcygov.cn',
    'Referer': 'https://hunan.zcygov.cn/luban/announcement/list?utm=a0017.b0064.3.5.f7fcb4c03c7411ed84984b6678c33275',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
    'sec-ch-ua': '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
}

json_data = {
    'pageSize': 10,
    'pageNo': 1,
    'announcementTypes': [
        10017,
        8018,
        8023,
        8024,
    ],
    'district': '439900',
}

response = requests.post('https://hunan.zcygov.cn/announcement/lobby/queryPage', cookies=cookies, headers=headers, json=json_data)
resp = response.json()['result']['data']
data = []
for r in resp:
    item = {}
    item['title'] = r['title']
    item['link'] = r['outUrl']
    data.append(item)


# 读取文本文件
with open('data.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 创建PDF文件
pdf_file = 'data.pdf'
pdf_writer = PyPDF2.PdfFileWriter()

# 将文本添加到PDF中
pdf_page = PyPDF2.pdf.PageObject.createBlankPage(None, 100, 100)  # 创建一个空白页
pdf_page.mergeTextFields(PyPDF2.pdf.TextField(name='', value=text, page=pdf_page, x=10, y=90, width=80, height=10))
pdf_writer.addPage(pdf_page)

# 保存PDF文件
with open(pdf_file, 'wb') as f:
    pdf_writer.write(f)

print('PDF文件已保存:', os.path.abspath(pdf_file))

看看具体什么报错,是生成pdf错误还是写入错误。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^