PNG
JPG
BMP
TIFF
PDF
如何通过云端 Python SDK 替换 PDF 中的表格
要替换 PDF 中的表格,我们将使用 Aspose.PDF Cloud Python SDK。此云端 SDK 协助 Python 程序员使用 Python 编程语言通过 Aspose.PDF REST API 开发基于云的 PDF 创建、注释、编辑和转换应用程序。只需在 Aspose for Cloud 创建一个账户并获取您的应用信息。一旦您拥有 App SID 和密钥,您就可以开始使用 Aspose.PDF Cloud Python SDK。如果 Python 包托管在 Github 上,您可以直接从 Github 安装:
从 Github 安装
pip install git+https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-python.git
包管理器控制台命令
pip install asposepdfcloud
通过 Python SDK 替换 PDF 中表格的步骤
Aspose.PDF Cloud 开发者可以轻松地在 PDF 中加载和替换表格,只需几行代码。
- 安装 Python SDK
- 将 PDF 文档上传到 Aspose Cloud 服务器
- 从 Aspose Cloud 服务器下载处理后的 PDF 文档
- 在 PDF 文档页面中替换表格
使用 Python 替换 PDF 中的表格
import shutil
import shutil
import json
import logging
from pathlib import Path
from asposepdfcloud import ApiClient, PdfApi, Table, Row, Cell, FontStyles, GraphInfo, TextRect, TextState, Color, BorderInfo
# Configure logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
class Config:
"""Configuration parameters."""
CREDENTIALS_FILE = Path(r"C:\\Projects\\ASPOSE\\Pdf.Cloud\\Credentials\\credentials.json")
LOCAL_FOLDER = Path(r"C:\Samples")
PDF_DOCUMENT_NAME = "sample.pdf"
LOCAL_RESULT_DOCUMENT_NAME = "output_sample.pdf"
TABLE_ID = "GE5TCOZSGAYCYNRQGUWDINZVFQ3DGMA"
class PdfTables:
""" Class for managing PDF tables using Aspose PDF Cloud API. """
def __init__(self, credentials_file: Path = Config.CREDENTIALS_FILE):
self.pdf_api = None
self._init_api(credentials_file)
def _init_api(self, credentials_file: Path):
""" Initialize the API client. """
try:
with credentials_file.open("r", encoding="utf-8") as file:
credentials = json.load(file)
api_key, app_id = credentials.get("key"), credentials.get("id")
if not api_key or not app_id:
raise ValueError("init_api(): Error: Missing API keys in the credentials file.")
self.pdf_api = PdfApi(ApiClient(api_key, app_id))
except (FileNotFoundError, json.JSONDecodeError, ValueError) as e:
logging.error(f"init_api(): Failed to load credentials: {e}")
def upload_document(self):
""" Upload a PDF document to the Aspose Cloud server. """
if self.pdf_api:
file_path = Config.LOCAL_FOLDER / Config.PDF_DOCUMENT_NAME
try:
self.pdf_api.upload_file(Config.PDF_DOCUMENT_NAME, str(file_path))
logging.info(f"upload_document(): File {Config.PDF_DOCUMENT_NAME} uploaded successfully.")
except Exception as e:
logging.error(f"upload_document(): Failed to upload file: {e}")
def download_result(self):
""" Download the processed PDF document from the Aspose Cloud server. """
if self.pdf_api:
try:
temp_file = self.pdf_api.download_file(Config.PDF_DOCUMENT_NAME)
local_path = Config.LOCAL_FOLDER / Config.LOCAL_RESULT_DOCUMENT_NAME
shutil.move(temp_file, str(local_path))
logging.info(f"download_result(): File successfully downloaded: {local_path}")
except Exception as e:
logging.error(f"download_result(): Failed to download file: {e}")
def _init_table (self):
""" Initialize new table """
num_of_cols = 5
num_of_rows = 5
header_text_state = TextState(
font = "Arial Bold",
font_size = 11,
foreground_color = Color( a = 255, r = 255, g = 255, b = 255 ),
font_style = FontStyles.BOLD,
)
common_text_state = TextState (
font = "Arial Bold",
font_size = 11,
foreground_color = Color( a=255, r = 112, g = 112, b = 112 ),
font_style=FontStyles.REGULAR
)
col_widths = ""
for col_index in range(0,num_of_cols):
col_widths += " 70"
table_rows = []
border_table_border = GraphInfo(
color = Color(a = 255, r = 0, g = 255, b = 0 ),
line_width = 0.5
)
for row_index in range(0, num_of_rows):
row_cells = []
for col_index in range(0, num_of_cols):
cell = Cell( default_cell_text_state = common_text_state)
if row_index == 0: # header cells
cell.background_color = Color(a = 255, r = 128, g = 128, b=128)
cell.default_cell_text_state = header_text_state
else:
cell.background_color = Color(a =255, r =255, g =255, b =255)
text_rect = TextRect()
if row_index == 0:
text_rect.text = f"header #{col_index}"
else:
text_rect.text = f"value '({row_index},{col_index})'"
cell.paragraphs = [ text_rect]
row_cells.append(cell)
row = Row(cells=row_cells)
table_rows.append(row)
table = Table(left=150,top=250, column_widths=col_widths, rows=table_rows)
table.default_cell_border = BorderInfo(
top = border_table_border,
right = border_table_border,
bottom = border_table_border,
left = border_table_border,
rounded_border_radius = 2
)
return table
def replace_table (self):
""" Replace table in the PDF document page. """
if self.pdf_api:
try:
new_table = self._init_table()
resultTabs = self.pdf_api.put_table( Config.PDF_DOCUMENT_NAME, Config.TABLE_ID, new_table)
if resultTabs.code == 200:
logging.info(f"replace_table(): Table #'{Config.TABLE_ID}' was replaced in the document '{Config.PDF_DOCUMENT_NAME}'.")
else:
logging.error(f"replace_table(): Failed to replace table in the document '{Config.PDF_DOCUMENT_NAME}'.")
except Exception as e:
logging.error(f"replace_table(): Failed to append table: {e}")
if __name__ == "__main__":
pdf_tables = PdfTables()
pdf_tables.upload_document()
pdf_tables.replace_table()
pdf_tables.download_result()
处理 PDF 中的表格
表格为系统地呈现数据提供了结构化格式,使读者更容易理解和分析信息。它们还增强了文档的视觉吸引力,增添了专业性和组织性。在处理数值或比较数据时,表格通过以易于阅读的格式分组相关信息来提高清晰度。此外,表格可以包含实时或动态生成的内容,例如来自数据库或分析仪表板的数据。 使用 Aspose.PDF Cloud Python SDK 替换 PDF 文档中的表格。
使用我们的 Python 库,您可以:
- 合并 PDF 文档。
- 拆分 PDF 文件。
- 将 PDF 转换为其他格式,反之亦然。
- 操作注释。
- 处理 PDF 中的图像等。
- 您可以尝试我们的免费应用在线测试功能。