pdf - 在 chrome 中下载的 PDF 大部分是空白的,但在邮递员中是可以的
问题描述
我正在尝试在我的浏览器中下载一个 PDF,我使用我正在运行的烧瓶服务器中的 axios 将文本插入(通过 pdf 表单字段)。
服务器端代码:
def create_form():
# pdf buffer is a BytesIO object that contains the pdf
...
pdf_buffer.seek(0)
return send_file(pdf_buffer, as_attachment=True, attachment_filename='file.pdf', mimetype='application/pdf')
当我在邮递员中使用该save and download
选项测试此端点时,它工作正常,并在提示我下载文件后保存了文件,所有文本都覆盖在原始 pdf 之上。
但是,当我在 chrome 中使用 axios 时,pdf 会自动下载,但 pdf 是空白的,除了我在表单字段中覆盖的新文本。原始的pdf内容完全消失了。这是在chrome中使用axios保存PDF的代码。Firefox 也存在同样的问题。
apiRequest({
apiEndpoint,
data,
responseType: 'blob',
}).then((resp) => {
let blob = new Blob([resp.data], { type: 'application/pdf' })
const url = window.URL.createObjectURL(blob);
let a = document.createElement("a");
a.href = url;
a.download = 'file.pdf';
document.body.appendChild(a);
a.click();
})
为什么这在邮递员中有效,但在 chrome 或 firefox 中无效?我唯一能想到的是邮递员的save and download
功能对待它收到的 PDF 与 axios POST 响应不同。
解决方案
推荐阅读
- c# - 无法加载文件或程序集'e_sqlite3
- android - 如何在scrollView中添加webview滚动
- .net - 无法在自定义端口上打开 dockerized .net core api
- python - Python & BeautifulSoup 4 - 循环返回重复结果
- r - Concat 命名向量列表
- python - 构建 Keras 项目以在 GPU 中实现可重现的结果
- java - 使用 kafka 实现模式注册表时出错
- json - Swift 无法使用枚举初始化程序访问部分 JSON 响应
- blockchain - 在 remix.ethereum.org,blockhash 函数总是将所有变量归零
- php - 将字符串与 PHP 中的字符串列表连接起来