徐明的博客

I am a tower crane engineer

🍺使用Wrangler CLI部署Cloudflare pages

一月 28, 2026

Upload methodFile limitFile size
Wrangler20,000 files25 MiB
Drag and drop1,000 files25 MiB

# 安装

npm install -g wrangler

# 登录

wrangler login

# 部署到 Pages

wrangler pages deploy {directory}

# 修改单个文件后再次部署,自动检查文件仅上传修改后的文件

# 指定项目名称

wrangler pages deploy dist --project-name=my-site


# 指定分支

wrangler pages deploy dist --branch=main


# 创建新 Pages 项目

wrangler pages project create my-project


# 列出所有 Pages 项目

wrangler pages project list


# 查看项目详情

wrangler pages project get my-project


# 删除 Pages 项目

wrangler pages project delete my-project


# 查看部署历史

wrangler pages deployment list


# 本地开发(模拟 Pages 环境)

wrangler pages dev dist


# 使用 Functions

wrangler pages dev dist --port 8788

在 PDF 中删除页面时显示错误:“参数错误”

十月 10, 2025

 当您尝试从 PDF 中删除页面时,您会看到错误消息“参数错误”。当您尝试向 PDF 中插入或添加页面时,也可能会出现相同的错误消息。

Acrobat 发现 PDF 文件中的标记的底层结构存在某些问题时,就会出现“参数错误”错误。请尝试以下解决方案。

解决方案 1:将 PDF 与另一个 PDF 合并

  1. 打开 Acrobat。
    (Windows) 选择左上角的汉堡菜单 ,然后选择创建 > 将文件合并为单个 PDF

    (macOS) 从左上角,选择“文件”> 创建 > 将文件合并为单个 PDF

  2. 选择添加文件

  3. 浏览并选择显示错误消息“参数错误”的 PDF 文件,然后选择打开

  4. 合并文件栏中,选择添加文件下拉菜单,然后选择添加文件

  5. 浏览并选择另一个 PDF 文件,最好是一个单页的空白 PDF 文件,然后选择打开

  6. 选择合并合并文件。选定的文件将合并为一个 PDF,并在 Acrobat 中打开该文件 (Binder1.pdf)。

  7. 保存文件。使用“合并文件”操作选择您添加到 PDF 的所有页面(合并文件时您选择的另一个 PDF 的页面)。删除选定的页面:

    • 在新的 Acrobat 中,从全局栏的左上角,选择所有工具 > 组织页面。选择您要删除的页面,然后按删除
    • 在 Acrobat /2017 中,选择视图 > 工具 > 整理页面 > 打开。选择要删除的页面,然后选择删除图标或按 Delete 键。
    • 在 Acrobat XI 中,选择视图 > 工具 > 页面。 选择要删除的页面,然后在右侧窗格中选择删除或按删除
  8. 再次保存文件。要查看是否仍然出现错误,请尝试从 PDF 中删除页面。


原文链接:https://helpx.adobe.com/cn/acrobat/kb/bad-parameter-while-deleting-pages-in-acrobat.html

🤔AI学会了生成图像,人类却丢失了想象

八月 22, 2025

不知从什么时候开始,大量AI生成的图片和视频开始充斥网络世界,有些甚至能达到以假乱真的程度,当然更多的是那种一眼假、一眼AI的。似乎是一场AI技术的狂欢,大家都在比拼谁的技术更强,谁能用AI生成最棒的图片或视频。技术大佬们也在一刻不停的迭代自己的技术,各种AI大厂轮番登场,颇有百家争鸣的景象。不可否认,AI技术的发展为我们带来了很多便利,但是任何事物都有正反两面,在狂欢之余,是不是也该停下来思考一下,我们到底需要AI做什么?

🎮一款网页版红警修改金钱的方法

八月 05, 2025

共和国之辉网页版https://game.gongheguozhihui.com/

修改方法:

进入游戏后,打开浏览器的开发人员工具,打开控制台,输入Game.localPlayer._credits=999999回车,金钱数量999999随你定

🧩九宫格拼图的最少步骤解法|Bing必应拼图游戏

七月 28, 2025

最近使用Edge浏览器,目前有各种攒积分的任务,其中就有拼图游戏,就像这样:

玩过几次后我就思考有没有最优的解法,也就是步骤最少的复原方法。通过网上搜索,发现使用 A*(A-star)搜索算法 来找最短路径,是最常用的 8-puzzle 解法。

借助chatgpt,我这个编程入门选手也可以很快得到一个可执行的程序代码。

from heapq import heappush, heappop

# 目标状态
goal = "12345678_"

# 空格移动方向及其索引变化量
moves = {
    'U': -3,
    'D': 3,
    'L': -1,
    'R': 1,
}

# 特殊情况:哪些位置不能向左/右/上/下移动
invalid_moves = {
    'L': [0, 3, 6],
    'R': [2, 5, 8],
    'U': [0, 1, 2],
    'D': [6, 7, 8],
}

# 启发函数:曼哈顿距离
def manhattan(state):
    distance = 0
    for idx, val in enumerate(state):
        if val != "_":
            goal_idx = goal.index(val)
            distance += abs(idx // 3 - goal_idx // 3) + abs(idx % 3 - goal_idx % 3)
    return distance

# A* 求解函数
def solve_puzzle(start):
    visited = set()
    heap = []
    heappush(heap, (manhattan(start), 0, start, ""))  # (估值, 步数, 状态, 路径)

    while heap:
        priority, steps, state, path = heappop(heap)
        if state == goal:
            return steps, path

        if state in visited:
            continue
        visited.add(state)

        empty_idx = state.index("_")

        for move, delta in moves.items():
            new_idx = empty_idx + delta
            if empty_idx in invalid_moves[move] or not (0 <= new_idx < 9):
                continue
            # 交换空格与相邻数字
            state_list = list(state)
            state_list[empty_idx], state_list[new_idx] = state_list[new_idx], state_list[empty_idx]
            new_state = ''.join(state_list)
            if new_state not in visited:
                heappush(heap, (steps + 1 + manhattan(new_state), steps + 1, new_state, path + move))

    return -1, ""  # 无解

# 示例用法
if __name__ == "__main__":
    initial_state = "3754182_6"
    steps, solution = solve_puzzle(initial_state)
    print(f"最少步数: {steps}")
    print(f"操作路径: {solution}")

得到输出如下:

最少步数: 21
操作路径: ULDRUULDDRURULLDDRURD

🔁 操作说明(空格的移动方向)

每个字母代表一次点击使空格与相邻数字交换:

  • L:空格向左移(即点击其左边的数字)
  • R:空格向右移
  • U:空格向上移
  • D:空格向下移
  • 最近文章