Python 利用 win32com 库:将 Excel 转换为 A4 横向 PDF 并单独打印首列
```python import win32com.client import os def excel_to_pdf(input_file, output_file): # 确保输入文件存在 if not os.path.exists(input_file): raise FileNotFoundError(f"文件 {input_file} 不存在") # 创建 Excel 应用程序实例 excel = win32com.client.Dispatch("Excel.Application") excel.Visible = False # 不显示 Excel 窗口 try: # 打开 Excel 文件 wb = excel.Workbooks.Open(input_file) # 设置页面布局为 A4 横向,并将第一列单独放一页 for ws in wb.Worksheets: ws.PageSetup.Orientation = 2 # 2 表示横向 ws.PageSetup.PaperSize = 9 # 9 表示 A4 纸张 ws.PageSetup.FitToPagesWide = 1 # 将所有列调整到一页宽度 # ws.PageSetup.FitToPagesTall = 1 # 将所有行调整到一页高度 ws.PageSetup.PrintArea = ws.Columns(1).Address # 设置打印区域为第一列 # 保存为 PDF 文件 wb.ExportAsFixedFormat(0, output_file) # 0 表示 PDF 格式 except Exception as e: print(f"转换失败: {e}") finally: # 关闭工作簿和 Excel 应用程序 wb.Close(SaveChanges=False) excel.Quit() if __name__ == "__main__": base_dir = os.path.dirname(os.path.abspath(__file__)) input_file = os.path.join(base_dir, r"output_with_qrcode_images.xlsx") output_file = os.path.join(base_dir, r"output_with_qrcode_images.pdf") excel_to_pdf(input_file, output_file) print(f"文件已成功转换为 PDF: {output_file}") # 额外注意: # 1. 确保 Excel 版本与使用的 win32com 库兼容。 # 2. 处理可能出现的异常时,尽量详细地记录错误信息以便排查问题。 # 3. 对于打印区域的设置,根据实际需求可能需要进一步调整。 ``` ######[AI写代码神器 | 507点数解答 | 2025-03-10 15:48:12]
- Python 利用 win32com 库:将 Excel 转换为 A4 横向 PDF 并单独打印首列(字节豆包 | 507点数解答 | 2025-03-10 15:48:12)302
- C++程序:输入数字序列拼接成数并将4替换为6(DeepSeek | 395点数解答 | 2025-04-05 11:50:38)265
- 代码探秘:为小宝贝认识数位,将数组特定元素替换为目标值 (GPT | 351点数解答 | 2025-04-05 11:52:06)249
- "Python's win32com.client: Step-by-Step Guide to Combining and Modifying Excel Workbooks"(GPT | 684点数解答 | 2024-06-12 15:25:29)306
- PDF.js 动态导入模块失败:原因剖析与解决方案全揭秘(字节豆包 | 573点数解答 | 2025-07-30 16:04:03)131
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- C++代码:交换向量首尾元素与最值元素位置及代码小问题剖析(字节豆包 | 113点数解答 | 2024-11-04 11:28:05)272
- Python 实现未完成任务重新定价效果评估:成本增加额与新增任务完成量计算(字节豆包 | 612点数解答 | 2025-05-04 22:31:18)133
- Python 实现:未完成任务重新定价效果评估(成本增加额与新增任务完成量计算)(阿里通义 | 578点数解答 | 2025-05-04 22:36:52)167
- Python 实现:打印 -n 到 n 范围内所有整数的代码及详解(字节豆包 | 232点数解答 | 2025-12-07 12:30:06)73
- Python代码:轻松打印 0 到输入整数之间的所有整数(字节豆包 | 126点数解答 | 2025-12-12 18:21:54)38
- C++实现:输入整数打印 0 到该整数间所有整数及代码详解(字节豆包 | 228点数解答 | 2025-12-12 18:22:24)51