lightpdf-aipdf-mcp 0.1.113__py3-none-any.whl → 0.1.115__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lightpdf_aipdf_mcp/converter.py +3 -0
- lightpdf_aipdf_mcp/editor.py +3 -1
- lightpdf_aipdf_mcp/server.py +2 -8
- {lightpdf_aipdf_mcp-0.1.113.dist-info → lightpdf_aipdf_mcp-0.1.115.dist-info}/METADATA +1 -1
- lightpdf_aipdf_mcp-0.1.115.dist-info/RECORD +11 -0
- lightpdf_aipdf_mcp-0.1.113.dist-info/RECORD +0 -11
- {lightpdf_aipdf_mcp-0.1.113.dist-info → lightpdf_aipdf_mcp-0.1.115.dist-info}/WHEEL +0 -0
- {lightpdf_aipdf_mcp-0.1.113.dist-info → lightpdf_aipdf_mcp-0.1.115.dist-info}/entry_points.txt +0 -0
lightpdf_aipdf_mcp/converter.py
CHANGED
@@ -20,6 +20,7 @@ class InputFormat(str, Enum):
|
|
20
20
|
CAD = "dwg"
|
21
21
|
CAJ = "caj"
|
22
22
|
OFD = "ofd"
|
23
|
+
HTML = "html"
|
23
24
|
|
24
25
|
class OutputFormat(str, Enum):
|
25
26
|
"""支持的输出文件格式"""
|
@@ -46,6 +47,7 @@ INPUT_EXTENSIONS = {
|
|
46
47
|
".dwg": InputFormat.CAD,
|
47
48
|
".caj": InputFormat.CAJ,
|
48
49
|
".ofd": InputFormat.OFD,
|
50
|
+
".html": InputFormat.HTML,
|
49
51
|
}
|
50
52
|
|
51
53
|
# 输入格式到可用输出格式的映射
|
@@ -70,6 +72,7 @@ FORMAT_CONVERSION_MAP = {
|
|
70
72
|
InputFormat.CAD: {OutputFormat.PDF}, # CAD转PDF
|
71
73
|
InputFormat.CAJ: {OutputFormat.PDF}, # CAJ转PDF
|
72
74
|
InputFormat.OFD: {OutputFormat.PDF}, # OFD转PDF
|
75
|
+
InputFormat.HTML: {OutputFormat.PDF}, # HTML转PDF
|
73
76
|
}
|
74
77
|
|
75
78
|
# 扩展FileHandler类的方法
|
lightpdf_aipdf_mcp/editor.py
CHANGED
@@ -235,7 +235,7 @@ class Editor(BaseApiClient):
|
|
235
235
|
# 调用edit_pdf方法处理API请求
|
236
236
|
return await self.edit_pdf(file_path, EditType.COMPRESS, extra_params, password, original_name)
|
237
237
|
|
238
|
-
async def encrypt_pdf(self, file_path: str, password: str, original_password: Optional[str] = None, original_name: Optional[str] = None) -> EditResult:
|
238
|
+
async def encrypt_pdf(self, file_path: str, password: str, original_password: Optional[str] = None, provider: Optional[str] = None, original_name: Optional[str] = None) -> EditResult:
|
239
239
|
"""加密PDF文件
|
240
240
|
|
241
241
|
Args:
|
@@ -260,6 +260,8 @@ class Editor(BaseApiClient):
|
|
260
260
|
extra_params = {
|
261
261
|
"password": password # 新密码
|
262
262
|
}
|
263
|
+
if provider:
|
264
|
+
extra_params["provider"] = provider
|
263
265
|
|
264
266
|
# 记录操作描述
|
265
267
|
await self._log_operation("加密PDF文件")
|
lightpdf_aipdf_mcp/server.py
CHANGED
@@ -184,6 +184,7 @@ async def process_edit_file(
|
|
184
184
|
return await editor.encrypt_pdf(
|
185
185
|
file_path=file_path,
|
186
186
|
password=extra_params.get("password", ""),
|
187
|
+
provider=extra_params.get("provider", ""),
|
187
188
|
original_password=password,
|
188
189
|
original_name=original_name
|
189
190
|
)
|
@@ -418,7 +419,7 @@ async def handle_list_tools() -> list[types.Tool]:
|
|
418
419
|
return [
|
419
420
|
types.Tool(
|
420
421
|
name="convert_document",
|
421
|
-
description="Document format conversion tool.\n\nPDF can be converted to: DOCX/XLSX/PPTX/Images (including long images)/HTML/TXT (for text extraction)/CSV;\nOther formats can be converted to PDF: DOCX/XLSX/PPTX/Images/CAD/CAJ/OFD.\n\nDoes not support creating files from content.",
|
422
|
+
description="Document format conversion tool.\n\nPDF can be converted to: DOCX/XLSX/PPTX/Images (including long images)/HTML/TXT (for text extraction)/CSV;\nOther formats can be converted to PDF: DOCX/XLSX/PPTX/Images/CAD/CAJ/OFD/HTML.\n\nDoes not support creating files from content.",
|
422
423
|
inputSchema={
|
423
424
|
"type": "object",
|
424
425
|
"properties": {
|
@@ -1315,16 +1316,9 @@ async def handle_call_tool(name: str, arguments: dict | None) -> list[types.Text
|
|
1315
1316
|
# 其他参数正常处理
|
1316
1317
|
operation_config["extra_params"][key] = arguments.get(key, DEFAULTS.get(key, ""))
|
1317
1318
|
|
1318
|
-
# 对于protect_pdf工具,需要处理新密码
|
1319
|
-
if name == "protect_pdf" and "password" in arguments:
|
1320
|
-
operation_config["extra_params"]["password"] = arguments.get("password")
|
1321
|
-
|
1322
1319
|
# restrict_printing工具自动加provider参数
|
1323
1320
|
if name == "restrict_printing":
|
1324
1321
|
operation_config["extra_params"]["provider"] = "printpermission"
|
1325
|
-
# 确保password参数传递,与protect_pdf一致
|
1326
|
-
if "password" in arguments:
|
1327
|
-
operation_config["extra_params"]["password"] = arguments["password"]
|
1328
1322
|
|
1329
1323
|
# 特殊处理merge_pdfs工具
|
1330
1324
|
if name == "merge_pdfs":
|
@@ -0,0 +1,11 @@
|
|
1
|
+
lightpdf_aipdf_mcp/__init__.py,sha256=PPnAgpvJLYLVOTxnHDmJAulFnHJD6wuTwS6tRGjqq6s,141
|
2
|
+
lightpdf_aipdf_mcp/common.py,sha256=PhTf7Zg6mEgn1rTmJDHotXp-4xb2gWFf-Dy_t25qNdY,6660
|
3
|
+
lightpdf_aipdf_mcp/converter.py,sha256=A_p3nsIsc4ajFV3Ox8UwZcv5D_qseukZ2cqw9eiKAcE,16406
|
4
|
+
lightpdf_aipdf_mcp/create_pdf.py,sha256=oALIhOBo60D3Gu_li7d7FF0COhFfSTM-BJpc63r9iAs,2465
|
5
|
+
lightpdf_aipdf_mcp/editor.py,sha256=Ph_ZZNkDrsSMGarS8I625lgt0mEDOxr4AfDoSiG9Rvc,30000
|
6
|
+
lightpdf_aipdf_mcp/server.py,sha256=Lwl9kQHLKCQ1szQkkBhw1xcbC3MsWy6fm2_1vBNQGuE,65002
|
7
|
+
lightpdf_aipdf_mcp/translator.py,sha256=NbFDz-mZSD4qCNQVyV0W_0x6xXwbqs_7FiBU13JAxZs,4243
|
8
|
+
lightpdf_aipdf_mcp-0.1.115.dist-info/METADATA,sha256=7gRa27u3I3rh1m3ifAlTqgyqlTUq_-6ByvQ9ehGPcj0,8120
|
9
|
+
lightpdf_aipdf_mcp-0.1.115.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
10
|
+
lightpdf_aipdf_mcp-0.1.115.dist-info/entry_points.txt,sha256=X7TGUe52N4sYH-tYt0YUGApeJgw-efQlZA6uAZmlmr4,63
|
11
|
+
lightpdf_aipdf_mcp-0.1.115.dist-info/RECORD,,
|
@@ -1,11 +0,0 @@
|
|
1
|
-
lightpdf_aipdf_mcp/__init__.py,sha256=PPnAgpvJLYLVOTxnHDmJAulFnHJD6wuTwS6tRGjqq6s,141
|
2
|
-
lightpdf_aipdf_mcp/common.py,sha256=PhTf7Zg6mEgn1rTmJDHotXp-4xb2gWFf-Dy_t25qNdY,6660
|
3
|
-
lightpdf_aipdf_mcp/converter.py,sha256=1SQcPTKXbf6UKqC1zJ4Vi-k7GxGTtPiVKyhGYAvK7DY,16299
|
4
|
-
lightpdf_aipdf_mcp/create_pdf.py,sha256=oALIhOBo60D3Gu_li7d7FF0COhFfSTM-BJpc63r9iAs,2465
|
5
|
-
lightpdf_aipdf_mcp/editor.py,sha256=vPaahaAV6pDZi_eheRGSgHzfZxc6ZqQyxHDgsNfdgjQ,29899
|
6
|
-
lightpdf_aipdf_mcp/server.py,sha256=lqYJg7u0XBx4U1O2eqXCTbuVcMmbctRSttVWAll-ru0,65373
|
7
|
-
lightpdf_aipdf_mcp/translator.py,sha256=NbFDz-mZSD4qCNQVyV0W_0x6xXwbqs_7FiBU13JAxZs,4243
|
8
|
-
lightpdf_aipdf_mcp-0.1.113.dist-info/METADATA,sha256=kLMKx5ypY3aCd8pOj8YVHrM5qtcQk-AE12GJUy1ZJfI,8120
|
9
|
-
lightpdf_aipdf_mcp-0.1.113.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
10
|
-
lightpdf_aipdf_mcp-0.1.113.dist-info/entry_points.txt,sha256=X7TGUe52N4sYH-tYt0YUGApeJgw-efQlZA6uAZmlmr4,63
|
11
|
-
lightpdf_aipdf_mcp-0.1.113.dist-info/RECORD,,
|
File without changes
|
{lightpdf_aipdf_mcp-0.1.113.dist-info → lightpdf_aipdf_mcp-0.1.115.dist-info}/entry_points.txt
RENAMED
File without changes
|