简介:Scratch入门教程.pdf 是一份面向零基础儿童及初学者的编程启蒙电子书。它围绕麻省理工学院媒体实验室开发的积木式编程语言Scratch展开,帮助孩子从被动玩游戏转向主动创作动画、游戏与交互故事,同时培养想象力、创造力和逻辑思维。整个资源包为单份PDF文档,仅205KB,正文以大量图片和实例操作代替枯燥说教,分为Scratch入门、参考指南、编程思想初探三大模块,覆盖界面操作、脚本拼接以及算术、条件、逻辑、顺序、分支、循环、变量、消息、事件等核心编程概念。教程适合家长在家开展亲子共学,也适合中小学教师作为少儿编程课堂的参考材料。目前已有798人学习,对初次接触Scratch的儿童和希望快速上手的初学者都很实用。
1. 别搜了,你的 Scratch 教程 PDF 可以自己造
很多入门者搜“Scratch入门教程.pdf”时,其实不是想找某本特定的电子书,而是想要一份能离线打开、能打印传阅、能随手批注的学习材料。网上的 Scratch 教程内容分散在各篇文章里,今天看一篇、明天翻一页,收藏夹越来越乱,真到用的时候反而找不到对应章节。与其等一个完美的现成 PDF,不如把已知的教程页面转换整理成自己的 PDF 手册——用浏览器打印功能保存网页,用免费工具合并和修正排版,再用 Markdown 生成带书签的中文手册。整套流程不依赖付费软件,也不依赖来源不明的网盘资源,需要的只是 Chrome/Edge、几个命令行工具,以及一点整理内容的耐心。全文会覆盖从页面转 PDF、排版修复、扫描件纠偏到最终验收的完整路径,新手可以按步骤照做,老手也能从中找到批量处理和 OCR 的实用参数。
2. 用浏览器打印功能把 Scratch 教程网页转成 PDF:最短路径与三个踩坑点
2.1 为什么优先用“另存为 PDF”而不是下载整站
Scratch 教程页面大多是标准 HTML 加少量积木截图,用浏览器的打印引擎重新排版后,文字流、图片块和分页符会自动适配 A4 纸张,比 wget 整站抓取得到的 html/css/js 碎片更适合阅读和分发。常见做法是直接在浏览器里按Ctrl+P,把目标打印机换成“另存为 PDF”,就能得到一个单文件,后续拷进 U 盘或发到手机上都方便。
用这个方案有几个隐含优势:保留了网页里的文字层,生成 PDF 后能直接搜索和复制中文内容;不需要安装额外软件;打印预览所见即所得,排版问题在导出前就能发现。缺点是对页面结构很复杂的教程站,比如带有侧边栏和动态折叠区块的导航,打印出来的内容可能夹杂无关菜单,这时候需要先切换浏览器的“阅读模式”再打印。
2.2 Chrome/Edge 打印对话框里的关键参数
进入打印预览后,很多人直接点保存,结果导出的 PDF 出现积木截图发白、代码块被横向截断、页脚带网址等问题。原因就出在参数没调。以下是一组适用于 Scratch 教程网页的推荐设置:
| 参数 | 推荐值 | 原因 |
|---|---|---|
| 目标 | 另存为 PDF | 直接生成文件而不是走真实打印机 |
| 纸张 | A4 | 通用标准,后续合并和打印都方便 |
| 边距 | 无 | 避免代码块和积木截图被左右裁切 |
| 背景图形 | 勾选 | 保留积木的颜色辨识度,黄、蓝、绿积木一目了然 |
| 页眉和页脚 | 取消 | 去掉网址、日期和页码,版式干净 |
| 缩放 | 100 | 放大或缩小都会改变原页面排版比例 |
操作顺序是:打开教程页面、按Ctrl+P、在左侧“目标”里选择“另存为 PDF”、再展开“更多设置”调整上述参数。注意预览区要拉起整个页面的首尾,确认没有出现“第 1 页内容太少、第 2 页几乎空白”的分页情况再导出。
2.3 没有“另存为 PDF”选项时:安装 Microsoft Print to PDF 驱动
某些精简版系统或旧版浏览器里找不到“另存为 PDF”,这时可以启用 Windows 系统自带的虚拟打印机。路径是“设置 → 应用 → 可选功能 → 添加功能”,搜索“Microsoft Print to PDF”并安装。安装后,浏览器打印对话框的目标里会出现这台虚拟打印机,行为表现和“另存为 PDF”基本一致,只是会先走一次打印队列,输出位置由你指定。
需要留意的是,安装完成后如果不重启浏览器,打印列表可能不刷新,此时手动关闭再打开浏览器即可。Linux 桌面环境下没有这个驱动,但 Chrome/Chromium 本身就会在打印目标里提供“保存为 PDF”,不需要额外安装系统组件。
2.4 命令行兜底:一次把多个教程页批量转成 PDF
如果教程分成很多节课,每节课是一个独立页面,手动一页页打印效率太低。我一般用 Chromium 的无头模式批量转换:
# 安装 chromium 后,用 --headless 参数做无窗口转换 chromium --headless --disable-gpu \ --print-to-pdf="./scratch_basics.pdf" \ --no-pdf-header-footer \ "https://example.com/scratch/lesson-1" # 批量处理时,用循环逐个转成独立 PDF for i in 1 2 3 4 5; do chromium --headless --disable-gpu \ --print-to-pdf="./lesson_${i}.pdf" \ --no-pdf-header-footer \ "https://example.com/scratch/lesson_${i}" done参数说明:--headless表示在后台无窗口运行,适合脚本环境;--no-pdf-header-footer对应打印对话框里的“取消页眉页脚”;--print-to-pdf指定输出文件路径;--disable-gpu可以避免部分无显示服务器环境下的渲染异常。如果教程页面依赖本地缓存资源,建议先在普通窗口模式打开一遍页面,再执行上述命令,否则个别图片可能空白。
3. 给教程 PDF 做排版修复:空白页、截断与图片漂白加深
3.1 打印生成后最常见的三件麻烦事
网页转换出来的 PDF 不等于可以直接分发。实际操作中,Scratch 教程最常见的三个问题是:整页多余空白、积木截图发灰或者颜色失真、扫描版教程轻微歪斜。先用一张表定位问题,再分别处理:
| 症状 | 原因 | 处理手段 |
|---|---|---|
| 每章之间多出空白页 | 网页样式里设置了强制分页 | 用 PDF Arranger 删除 |
| 积木块泛白、对比度低 | 原截图是扫描件或背景色被打印引擎忽略 | 用 Pillow 做亮度与对比度校正 |
| 页面轻微倾斜、文字复制不出来 | 教程原稿是扫描图片,没有文字层 | 先做歪斜校正,再做 OCR |
| 左侧菜单内容被一并导出 | 页面布局含导航栏 | 重新用阅读模式打印,或用工具裁剪边缘 |
先定位原因再动手,避免对整份 PDF 做无差别操作。下面逐个给出可复现的命令。
3.2 用 PDF Arranger 合并、删页并统一成品版式
第 2 章批量生成的lesson_1.pdf到lesson_5.pdf,需要合并成一份完整教程。图形界面下推荐 PDF Arranger:
# Debian/Ubuntu 系安装命令 sudo apt install pdfarranger poppler-utils # 启动后把多个 PDF 拖入窗口,左侧会出现每一页的缩略图 pdfarranger在 PDF Arranger 里可以直接拖动页面对顺序重排,选中空白页后按Delete删除,也可以通过“裁剪页面”功能把教程页边缘残留的导航菜单裁掉。导出时选择全部页面,另存为新文件即可。整个过程不会修改原始 PDF,误操作可以重新打开再调整。
如果没有图形界面,用 poppler 自带的pdfunite也能完成最基本的顺序合并:
pdfunite lesson_1.pdf lesson_2.pdf lesson_3.pdf scratch_all.pdfpdfunite按参数顺序拼接文件,适合内容已经是最终形态的情况。它不会处理空白页,所以合并后还要再用 PDF Arranger 或者pdfseparate+ 重新组合的方式清理多余页面。
3.3 用 Pillow 对积木截图做漂白、加深与清晰度校正
如果教程里的积木截图来自纸质教材扫描件,或者打印引擎导出时丢失了背景色,图片会整体发灰、积木边缘模糊。常见做法是先用 Pillow 做全局亮度与对比度增强,再重新生成 PDF。下面是一段可以直接用的批处理脚本:
from PIL import Image, ImageEnhance, ImageFilter, ImageOps from pathlib import Path def clean_doc_image(src, dst, brightness=1.25, contrast=1.4): im = Image.open(src).convert("RGB") # 亮度校正:把偏黄偏暗的扫描页拉回接近白纸的状态 im = ImageEnhance.Brightness(im).enhance(brightness) # 对比度加深:让不同颜色的积木块边界更清晰 im = ImageEnhance.Contrast(im).enhance(contrast) # 轻度锐化:积木上的深色文字更易辨认 im = im.filter(ImageFilter.UnsharpMask(radius=2, percent=80, threshold=2)) # 白底拉纯:对打印版尤其重要,省墨且干净 im = ImageOps.autocontrast(im, cutoff=2) im.save(dst, quality=90) # 批量处理某目录下所有扫描图片 for src in Path("scans").glob("*.jpg"): clean_doc_image(str(src), str(src.with_suffix(".clean.jpg")))参数调整原则:brightness用 1.25 适合偏暗扫描件,原本就是屏幕截图的图片保持 1.0 即可,加太多会让白色背景过曝。contrast通常设在 1.3 到 1.5 之间,超过 2.0 时蓝色和绿色积木块的文字反而会失去层次。UnsharpMask的radius=2、percent=80是轻度锐化的通用值,如果原图已经足够清晰,可以去掉这一行避免出现白边。
处理完图片后,可以用img2pdf把整个目录的图片直接做成一个 PDF 文件:
img2pdf scans/*.clean.jpg -o scratch_images.pdf3.4 扫描版图片的歪斜校正与 OCR 提取可搜索文字
如果教程 PDF 本身就是扫描版,整页图片往往有轻微的旋转,导致打印出来文字是斜的。先做歪斜校正,再做 OCR,是标准处理顺序:
# ImageMagick 内置 deskew,40% 表示最多修正 40 度以内倾斜 convert page_01.jpg -deskew 40% page_01_fixed.jpg # Tesseract 识别中文,生成文本内容 tesseract page_01_fixed.jpg page_01 -l chi_sim --psm 6说明:-deskew后面的百分数代表最大可容忍的倾斜角度比例,日常扫描件倾斜幅度一般在 2% 到 8% 之间,设成40%是为了覆盖手放歪的极端情况。--psm 6适合整页是连续文本的版式;如果页面里有大量分栏积木块,改用--psm 3让 Tesseract 自动检测分栏结构会更稳。OCR 生成的.txt文件不会自动写回 PDF,想要可搜索 PDF 还需要用ocrmypdf这类工具集成,针对纯扫描版教程这是最终解法。网页另存得到的 PDF 已有文字层,跳过 OCR 即可。
4. 自己攒一本 Scratch 入门手册:用 Markdown 与 Pandoc 生成带书签的中文 PDF
4.1 为什么不继续找现成的 Scratch 入门教程 PDF
网上现成的教程 PDF 很多是课程讲义的随手导出,目录层级混乱、积木截图模糊、没有书籍书签,打印出来不好批注。更关键的是,自己组装的教程可以根据实际学习进度调整章节顺序,比如把“事件积木”放在“运动积木”前面,或者单独加一章“角色外观与造型切换”。这个过程不难:用 Markdown 写内容,用 Pandoc 生成 PDF。
这样做还有一个好处:Markdown 源文件可以继续维护,教程内容更新后重新跑一次 Pandoc 命令,新版 PDF 立刻生成,不需要在编辑器里反复调排版。
4.2 素材目录与截图命名规范
在开始写内容之前,先把积木截图准备好。推荐目录结构如下:
scratch-handbook/ ├── images/ │ ├── 01_event_when_flag_clicked.png │ ├── 02_motion_move_10_steps.png │ ├── 03_looks_say_hello.png │ └── 04_control_wait_1_seconds.png └── chapter-01.md截图命名建议遵循“章节序号_积木类别_动作描述”的规则,方便后续在 Markdown 里引用。Scratch 积木区域有颜色可循,截图时尽量把积木完整包含,不要截到脚本区之外的空白。以下是一组常用的积木英文名对照,供写教程时使用:
| 积木类别 | 英文积木名 | 中文说明 |
|---|---|---|
| 事件 | when flag clicked | 当绿旗被点击 |
| 运动 | move 10 steps | 移动 10 步 |
| 外观 | say Hello! for 2 seconds | 说你好 2 秒 |
| 控制 | wait 1 seconds | 等待 1 秒 |
| 声音 | play sound Meow until done | 播放声音直到结束 |
4.3 写最小可用的 Markdown 教程内容
以第一课为例,一个最简章节文件可以写成:
# 第一课:让角色动起来 从“运动”积木区拖出“移动 10 步”,放入脚本区。 点击舞台上方绿旗,角色会向右移动 10 步。  > 提示:把数值改成 -10,角色就会向左移动。Markdown 里同样支持表格、引用和代码块,这些元素在 PDF 中会被自动排版。积木截图用相对路径引用,Pandoc 生成 PDF 时会自动嵌入图片。
4.4 用 Pandoc 生成带目录书签的中文 PDF
# 安装依赖(Debian/Ubuntu 示例) sudo apt install pandoc texlive-xetex fonts-noto-cjk # 将多章内容合并输出单文件 PDF pandoc chapter-01.md chapter-02.md \ -o scratch-handbook.pdf \ --pdf-engine=xelatex \ -V mainfont="Noto Sans CJK SC" \ -V geometry:margin=2cm \ --toc --toc-depth=2参数说明:--pdf-engine=xelatex是中文 PDF 的关键,默认的 pdflatex 引擎遇到中文字符经常直接丢弃,导致输出 PDF 内容缺失。-V mainfont="Noto Sans CJK SC"指定正文字体,Windows 用户可以换成"Microsoft YaHei",macOS 可以换成"PingFang SC"。--toc生成目录,--toc-depth=2让书签包含一级和二级章节,阅读器左侧侧边栏会显示可点击的导航。geometry:margin=2cm控制页边距,按需改成 1.5cm 到 2.5cm 均可。
如果只想先快速预览,也可以先输出 HTML:
pandoc chapter-01.md -o scratch-handbook.html --standalone再用第 2 章的浏览器打印流程把它转成 PDF,适合临时查看而不想编译 LaTeX 的情况。
5. 给 PDF 做最后验收:页数、文字层与传阅兼容性
5.1 用三个命令确认 PDF 健康度
最终交付前,用 poppler 工具做一次完整性检查:
# 查看页数、纸张尺寸与 PDF 版本 pdfinfo scratch-handbook.pdf # 抽取文本层,确认中文可被搜索和复制 pdftotext scratch-handbook.pdf - | head -40 # 检查 PDF 结构是否有损坏 qpdf --check scratch-handbook.pdfpdftotext输出为空时,说明该页面内容实际是图片,文字层缺失,需要回到 OCR 流程补文本。pdfinfo里重点看页面尺寸是否统一为 A4,如果混入了不同尺寸页面,打印时会出现部分页面被缩放的情况。
5.2 统一纸张尺寸与字体转曲兜底
不同来源的 PDF 合在一起后,纸张宽度可能不一致。用pdfjam统一纸张:
pdfjam --paper a4paper scratch-handbook.pdf -o scratch_a4.pdf另外,如果 PDF 要在没有安装中文字体的机器上打开,读取方可能出现字体替换、排版错位。给字体做转曲可以避免这个问题,适合分发场景:
gs -o scratch_outline.pdf -sDEVICE=pdfwrite -dSubsetFonts=true -dEmbedAllFonts=true input.pdf转曲后的 PDF 体积会增大一倍左右,但字不会缺、版式不会乱,适合发到教学电脑上。屏幕阅读保持原文件即可。
5.3 把整个流程固化为脚本,下次只换 URL
整理完一次教程,整个操作链路可以收敛成一段脚本,以后新增课程页时执行一遍即可:
#!/usr/bin/env bash set -euo pipefail # 第一步:无头浏览器把教程页转成原始 PDF chromium --headless --no-sandbox --print-to-pdf="./raw.pdf" --no-pdf-header-footer "$1" # 第二步:统一 A4 纸张并修复结构 pdfjam --paper a4paper raw.pdf -o ready.pdf qpdf --check ready.pdf把脚本放在教程目录下,之后每次新增页面只需要传入 URL,输出的ready.pdf就是一份可以直接分发、打印和归档的 Scratch 入门教程。
本文还有配套的精品资源,点击获取