python - 通过在python中追加合并PDF
问题描述
是否可以合并PDF而不覆盖?
例如,在这个取自合并 PDF 文件的代码中:
from PyPDF2 import PdfFileMerger
pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf', 'file4.pdf']
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write("result.pdf") # writing line
merger.close()
在“写作线”中,我们创建了一个全新的 PDF 文件,因此,我们拥有的文件越多,花费的时间就越多,这不是最佳的。我认为,如果我们有现有的 PDF 文件而不是空的PdfFileMerger()
,并将每个新的 PDF 附加到它等等,代码可以优化很多。
是否可以使用 PDF?
解决方案
如果您对其他选项持开放态度,那么您可以使用Aspose.PDF Cloud SDK for Python来附加/合并 PDF 文档,而无需创建新的空 PDF 文件。目前,API 处理来自云存储(Amazon S3、DropBox、Google Drive Storage、Google Cloud Storage、Windows Azure Storage、FTP Storage 和 Aspose Cloud Storage)的文件。但是,在未来,我们计划支持请求正文(流)。
import os
import asposepdfcloud
from asposepdfcloud.apis.pdf_api import PdfApi
from shutil import copyfile
# Get Client ID and Secret from https://cloud.aspose.com
pdf_api_client = asposepdfcloud.api_client.ApiClient(
ClientSecret='xxxxxxxxxxxxxxxxxxxxx',
ClientId='xxxx-xxxx-xxxx-xxxx-xxxxxxxx')
pdf_api = PdfApi(pdf_api_client)
file_name_list = ['4pages.pdf', '02_pages.pdf', 'Sample.pdf']
for file_name in file_name_list:
pdf_api.upload_file(file_name,file_name)
result_name = 'MergingResult.pdf'
i = 0
for el in file_name_list:
file_name_list[i] = el
i += 1
merge_documents = asposepdfcloud.models.MergeDocuments(file_name_list)
opts = {
"merge_documents" : merge_documents
}
response = pdf_api.put_merge_documents(result_name, **opts)
#download PDF file from storage
response_download = pdf_api.download_file(result_name)
copyfile(response_download, result_name)
print(response_download)
PS:我是 Aspose 的开发布道者。
推荐阅读
- python - 将 CSV 上传到 Plotly Dash 并基于 Pandas 数据框呈现条形图
- mysql - phpmyadmin 中无法识别的数据类型错误
- php - 如果多维数组PHP中的另一个数组获取所有键,如何删除数组
- ruby-on-rails - Heroku Sendgrid 附加组件
- java - 如何处理来自片段的点击事件,产生错误 Nullpointer 异常,尝试从空对象引用调用 *setOnClickListener*
- ios - iOS/Obj-C - 将 Google 地图分配给自定义 UIView?
- java - 如何覆盖或修改子 pom 中的父 pom 存储库?
- javascript - 在脚本标签中使用烧瓶 url_for 将参数传递给路由
- unity3d - 触摸操纵杆干扰操作按钮
- c++ - `copy constructor` 和 `move constructor` 之间的区别。谁能通过一些简单的例子说清楚